From 52d099acf6dca3a308a462523986f7ca16fdb0cd Mon Sep 17 00:00:00 2001 From: uzumal Date: Thu, 3 Nov 2022 20:53:57 +0900 Subject: [PATCH] improve unity settings and easy management --- AR-ROS/.vsconfig | 6 - AR-ROS/Assets/Button/Down.cs | 21 - AR-ROS/Assets/Button/Finish.cs | 25 - AR-ROS/Assets/Button/Left.cs | 21 - AR-ROS/Assets/Button/Right.cs | 21 - AR-ROS/Assets/Button/Up.cs | 21 - AR-ROS/Assets/Button/ZoomIn.cs | 20 - AR-ROS/Assets/Button/ZoomOut.cs | 20 - AR-ROS/Assets/Debug.meta | 8 - AR-ROS/Assets/Debug/MeshSplit.meta | 8 - AR-ROS/Assets/Debug/MeshSplit/Editor.meta | 8 - .../Editor/MeshSplitControllerEditor.cs | 30 - .../Editor/MeshSplitControllerEditor.cs.meta | 11 - .../Debug/MeshSplit/MeshSplitController.cs | 150 - .../MeshSplit/MeshSplitController.cs.meta | 11 - .../Debug/MeshSplit/MeshSplitParameters.cs | 36 - .../MeshSplit/MeshSplitParameters.cs.meta | 11 - AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs | 192 - .../Debug/MeshSplit/MeshSplitter.cs.meta | 11 - AR-ROS/Assets/Debug/PointcloudSubscriber.cs | 88 - .../Assets/Debug/PointcloudSubscriber.cs.meta | 11 - AR-ROS/Assets/Debug/Temporarily.cs | 140 - AR-ROS/Assets/Debug/Temporarily.cs.meta | 11 - AR-ROS/Assets/MRTK/Core.meta | 8 - AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs | 7 - AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Attributes.meta | 8 - .../MRTK/Core/Attributes/DocLinkAttribute.cs | 20 - .../Core/Attributes/DocLinkAttribute.cs.meta | 11 - .../Core/Attributes/EnumFlagsAttribute.cs | 21 - .../Attributes/EnumFlagsAttribute.cs.meta | 11 - .../Core/Attributes/ExperimentalAttribute.cs | 35 - .../Attributes/ExperimentalAttribute.cs.meta | 11 - .../MRTK/Core/Attributes/ExtendsAttribute.cs | 41 - .../Core/Attributes/ExtendsAttribute.cs.meta | 11 - .../MRTK/Core/Attributes/HelpAttribute.cs | 45 - .../Core/Attributes/HelpAttribute.cs.meta | 11 - .../Core/Attributes/ImplementsAttribute.cs | 51 - .../Attributes/ImplementsAttribute.cs.meta | 11 - .../MixedRealityControllerAttribute.cs | 64 - .../MixedRealityControllerAttribute.cs.meta | 11 - .../MixedRealityDataProviderAttribute.cs | 31 - .../MixedRealityDataProviderAttribute.cs.meta | 11 - .../MixedRealityExtensionServiceAttribute.cs | 118 - ...edRealityExtensionServiceAttribute.cs.meta | 11 - .../MixedRealityServiceInspectorAttribute.cs | 24 - ...edRealityServiceInspectorAttribute.cs.meta | 11 - .../MixedRealityServiceProfileAttribute.cs | 31 - ...ixedRealityServiceProfileAttribute.cs.meta | 11 - .../Core/Attributes/PhysicsLayerAttribute.cs | 17 - .../Attributes/PhysicsLayerAttribute.cs.meta | 11 - .../MRTK/Core/Attributes/PrefabAttribute.cs | 14 - .../Core/Attributes/PrefabAttribute.cs.meta | 11 - .../MRTK/Core/Attributes/ReadOnlyAttribute.cs | 11 - .../Core/Attributes/ReadOnlyAttribute.cs.meta | 11 - .../Core/Attributes/ScenePickAttribute.cs | 19 - .../Attributes/ScenePickAttribute.cs.meta | 11 - .../Core/Attributes/SystemTypeAttribute.cs | 63 - .../Attributes/SystemTypeAttribute.cs.meta | 11 - .../Core/Attributes/TagPropertyAttribute.cs | 16 - .../Attributes/TagPropertyAttribute.cs.meta | 11 - .../Core/Attributes/Vector3RangeAttribute.cs | 36 - .../Attributes/Vector3RangeAttribute.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Definitions.meta | 8 - .../Definitions/BaseMixedRealityProfile.cs | 22 - .../BaseMixedRealityProfile.cs.meta | 11 - .../MRTK/Core/Definitions/BoundarySystem.meta | 8 - .../BoundarySystem/BoundaryType.cs | 20 - .../BoundarySystem/BoundaryType.cs.meta | 11 - .../Core/Definitions/BoundarySystem/Edge.cs | 45 - .../Definitions/BoundarySystem/Edge.cs.meta | 11 - .../BoundarySystem/InscribedRectangle.cs | 564 - .../BoundarySystem/InscribedRectangle.cs.meta | 11 - ...ixedRealityBoundaryVisualizationProfile.cs | 201 - ...ealityBoundaryVisualizationProfile.cs.meta | 11 - .../MRTK/Core/Definitions/CameraSystem.meta | 8 - .../CameraSystem/BaseCameraSettingsProfile.cs | 16 - .../BaseCameraSettingsProfile.cs.meta | 11 - .../CameraSystem/CameraDisplayType.cs | 24 - .../CameraSystem/CameraDisplayType.cs.meta | 11 - .../CameraSystem/MixedRealityCameraProfile.cs | 140 - .../MixedRealityCameraProfile.cs.meta | 11 - ...MixedRealityCameraSettingsConfiguration.cs | 79 - ...RealityCameraSettingsConfiguration.cs.meta | 11 - .../Assets/MRTK/Core/Definitions/Devices.meta | 8 - .../Devices/ControllerMappingLibrary.cs | 312 - .../Devices/ControllerMappingLibrary.cs.meta | 11 - .../Definitions/Devices/DeviceInputType.cs | 98 - .../Devices/DeviceInputType.cs.meta | 11 - .../Definitions/Devices/GestureInputType.cs | 17 - .../Devices/GestureInputType.cs.meta | 11 - .../MRTK/Core/Definitions/Devices/Headset.cs | 54 - .../Core/Definitions/Devices/Headset.cs.meta | 11 - .../Definitions/Devices/InputSourceType.cs | 18 - .../Devices/InputSourceType.cs.meta | 11 - ...ixedRealityControllerConfigurationFlags.cs | 18 - ...ealityControllerConfigurationFlags.cs.meta | 11 - .../Devices/MixedRealityControllerMapping.cs | 252 - .../MixedRealityControllerMapping.cs.meta | 11 - .../MixedRealityControllerMappingProfile.cs | 231 - ...xedRealityControllerMappingProfile.cs.meta | 11 - ...edRealityControllerVisualizationProfile.cs | 224 - ...lityControllerVisualizationProfile.cs.meta | 11 - ...edRealityControllerVisualizationSetting.cs | 101 - ...lityControllerVisualizationSetting.cs.meta | 11 - .../Devices/MixedRealityEyeTrackingProfile.cs | 24 - .../MixedRealityEyeTrackingProfile.cs.meta | 11 - .../MixedRealityHandTrackingProfile.cs | 139 - .../MixedRealityHandTrackingProfile.cs.meta | 11 - .../Devices/MixedRealityInteractionMapping.cs | 442 - .../MixedRealityInteractionMapping.cs.meta | 11 - .../MRTK/Core/Definitions/Devices/SDKType.cs | 33 - .../Core/Definitions/Devices/SDKType.cs.meta | 11 - .../Devices/SupportedControllerType.cs | 30 - .../Devices/SupportedControllerType.cs.meta | 11 - .../Core/Definitions/Devices/TrackingState.cs | 31 - .../Definitions/Devices/TrackingState.cs.meta | 11 - .../MRTK/Core/Definitions/Diagnostics.meta | 8 - .../MixedRealityDiagnosticsProfile.cs | 122 - .../MixedRealityDiagnosticsProfile.cs.meta | 11 - .../MRTK/Core/Definitions/InputSystem.meta | 8 - .../InputSystem/AnimatedCursorData.cs | 51 - .../InputSystem/AnimatedCursorData.cs.meta | 11 - .../InputSystem/CursorContextEnum.cs | 21 - .../InputSystem/CursorContextEnum.cs.meta | 11 - .../InputSystem/CursorStateEnum.cs | 46 - .../InputSystem/CursorStateEnum.cs.meta | 11 - .../InputSystem/InputActionEventPair.cs | 43 - .../InputSystem/InputActionEventPair.cs.meta | 11 - .../InputSystem/InputActionRuleDigital.cs | 49 - .../InputActionRuleDigital.cs.meta | 11 - .../InputSystem/InputActionRuleDualAxis.cs | 49 - .../InputActionRuleDualAxis.cs.meta | 11 - .../InputSystem/InputActionRulePoseAxis.cs | 50 - .../InputActionRulePoseAxis.cs.meta | 11 - .../InputActionRuleQuaternionAxis.cs | 49 - .../InputActionRuleQuaternionAxis.cs.meta | 11 - .../InputSystem/InputActionRuleSingleAxis.cs | 49 - .../InputActionRuleSingleAxis.cs.meta | 11 - .../InputSystem/InputActionRuleVectorAxis.cs | 49 - .../InputActionRuleVectorAxis.cs.meta | 11 - .../InputSystem/KeywordAndResponse.cs | 45 - .../InputSystem/KeywordAndResponse.cs.meta | 11 - .../InputSystem/MixedRealityGestureMapping.cs | 49 - .../MixedRealityGestureMapping.cs.meta | 11 - .../MixedRealityGesturesProfile.cs | 71 - .../MixedRealityGesturesProfile.cs.meta | 11 - .../InputSystem/MixedRealityInputAction.cs | 96 - .../MixedRealityInputAction.cs.meta | 11 - .../MixedRealityInputActionRulesProfile.cs | 60 - ...ixedRealityInputActionRulesProfile.cs.meta | 11 - .../MixedRealityInputActionsProfile.cs | 94 - .../MixedRealityInputActionsProfile.cs.meta | 11 - .../MixedRealityInputSystemProfile.cs | 231 - .../MixedRealityInputSystemProfile.cs.meta | 11 - .../InputSystem/MixedRealityPointerProfile.cs | 132 - .../MixedRealityPointerProfile.cs.meta | 11 - .../InputSystem/MixedRealityRaycastHit.cs | 65 - .../MixedRealityRaycastHit.cs.meta | 11 - .../MixedRealitySpeechCommandsProfile.cs | 43 - .../MixedRealitySpeechCommandsProfile.cs.meta | 11 - .../InputSystem/PointerBehavior.cs | 27 - .../InputSystem/PointerBehavior.cs.meta | 11 - .../Definitions/InputSystem/PointerOption.cs | 55 - .../InputSystem/PointerOption.cs.meta | 11 - .../Definitions/InputSystem/SpeechCommands.cs | 96 - .../InputSystem/SpeechCommands.cs.meta | 11 - .../InputSystem/TouchableEventType.cs | 14 - .../InputSystem/TouchableEventType.cs.meta | 11 - .../InputSystem/WindowsGestureSettings.cs | 64 - .../WindowsGestureSettings.cs.meta | 11 - .../Assets/MRTK/Core/Definitions/Lines.meta | 8 - .../Core/Definitions/Lines/DistortionMode.cs | 20 - .../Definitions/Lines/DistortionMode.cs.meta | 11 - .../Definitions/Lines/InterpolationMode.cs | 24 - .../Lines/InterpolationMode.cs.meta | 11 - .../Definitions/Lines/InterpolationType.cs | 15 - .../Lines/InterpolationType.cs.meta | 11 - .../Lines/LinePointTransformMode.cs | 20 - .../Lines/LinePointTransformMode.cs.meta | 11 - .../Definitions/Lines/LineRotationMode.cs | 24 - .../Lines/LineRotationMode.cs.meta | 11 - .../Lines/PointDistributionMode.cs | 28 - .../Lines/PointDistributionMode.cs.meta | 11 - .../MRTK/Core/Definitions/Lines/StepMode.cs | 20 - .../Core/Definitions/Lines/StepMode.cs.meta | 11 - ...edRealityInputDataProviderConfiguration.cs | 72 - ...lityInputDataProviderConfiguration.cs.meta | 11 - ...ealityRegisteredServiceProvidersProfile.cs | 20 - ...yRegisteredServiceProvidersProfile.cs.meta | 11 - .../MixedRealityServiceConfiguration.cs | 76 - .../MixedRealityServiceConfiguration.cs.meta | 11 - ...ixedRealitySpatialObserverConfiguration.cs | 72 - ...ealitySpatialObserverConfiguration.cs.meta | 11 - ...MixedRealityToolkitConfigurationProfile.cs | 362 - ...RealityToolkitConfigurationProfile.cs.meta | 11 - .../Assets/MRTK/Core/Definitions/Physics.meta | 8 - .../Physics/ComparableRaycastResult.cs | 19 - .../Physics/ComparableRaycastResult.cs.meta | 11 - .../Core/Definitions/Physics/FocusDetails.cs | 49 - .../Definitions/Physics/FocusDetails.cs.meta | 11 - .../MRTK/Core/Definitions/Physics/RayStep.cs | 181 - .../Core/Definitions/Physics/RayStep.cs.meta | 11 - .../Definitions/Physics/SceneQueryType.cs | 31 - .../Physics/SceneQueryType.cs.meta | 11 - .../Physics/TeleportSurfaceResult.cs | 16 - .../Physics/TeleportSurfaceResult.cs.meta | 11 - .../MRTK/Core/Definitions/SceneSystem.meta | 8 - .../LightingSceneTransitionType.cs | 15 - .../LightingSceneTransitionType.cs.meta | 11 - .../MixedRealitySceneSystemProfile.cs | 391 - .../MixedRealitySceneSystemProfile.cs.meta | 11 - .../SceneSystem/RuntimeLightingSettings.cs | 51 - .../RuntimeLightingSettings.cs.meta | 11 - .../SceneSystem/RuntimeRenderSettings.cs | 90 - .../SceneSystem/RuntimeRenderSettings.cs.meta | 11 - .../SceneSystem/RuntimeSunlightSettings.cs | 49 - .../RuntimeSunlightSettings.cs.meta | 11 - .../SceneSystem/SceneActivationToken.cs | 31 - .../SceneSystem/SceneActivationToken.cs.meta | 11 - .../Core/Definitions/SceneSystem/SceneInfo.cs | 81 - .../Definitions/SceneSystem/SceneInfo.cs.meta | 11 - .../Core/Definitions/SpatialAwareness.meta | 8 - .../BaseSpatialAwarenessObject.cs | 37 - .../BaseSpatialAwarenessObject.cs.meta | 11 - .../BaseSpatialAwarenessObserverProfile.cs | 61 - ...aseSpatialAwarenessObserverProfile.cs.meta | 11 - ...litySpatialAwarenessMeshObserverProfile.cs | 96 - ...patialAwarenessMeshObserverProfile.cs.meta | 11 - ...xedRealitySpatialAwarenessSystemProfile.cs | 26 - ...alitySpatialAwarenessSystemProfile.cs.meta | 11 - .../SpatialAwarenessMeshLevelOfDetail.cs | 35 - .../SpatialAwarenessMeshLevelOfDetail.cs.meta | 11 - .../SpatialAwarenessMeshObject.cs | 114 - .../SpatialAwarenessMeshObject.cs.meta | 11 - .../SpatialAwarenessPlanarObject.cs | 42 - .../SpatialAwarenessPlanarObject.cs.meta | 11 - .../SpatialAwarenessSurfaceTypes.cs | 41 - .../SpatialAwarenessSurfaceTypes.cs.meta | 11 - .../SpatialMeshDisplayOptions.cs | 26 - .../SpatialMeshDisplayOptions.cs.meta | 11 - .../MRTK/Core/Definitions/Utilities.meta | 8 - .../Utilities/AnimatorParameter.cs | 97 - .../Utilities/AnimatorParameter.cs.meta | 11 - .../Utilities/ArticulatedHandPose.cs | 343 - .../Utilities/ArticulatedHandPose.cs.meta | 11 - .../Utilities/AutoStartBehavior.cs | 22 - .../Utilities/AutoStartBehavior.cs.meta | 11 - .../Core/Definitions/Utilities/AxisFlags.cs | 16 - .../Definitions/Utilities/AxisFlags.cs.meta | 11 - .../Core/Definitions/Utilities/AxisType.cs | 45 - .../Definitions/Utilities/AxisType.cs.meta | 11 - .../Definitions/Utilities/CollationOrder.cs | 32 - .../Utilities/CollationOrder.cs.meta | 11 - .../Definitions/Utilities/ExperienceScale.cs | 33 - .../Utilities/ExperienceScale.cs.meta | 11 - .../Core/Definitions/Utilities/Handedness.cs | 42 - .../Definitions/Utilities/Handedness.cs.meta | 11 - .../Utilities/ManipulationHandFlags.cs | 15 - .../Utilities/ManipulationHandFlags.cs.meta | 11 - .../Utilities/ManipulationProximityFlags.cs | 15 - .../ManipulationProximityFlags.cs.meta | 11 - .../Utilities/MixedRealityCapability.cs | 56 - .../Utilities/MixedRealityCapability.cs.meta | 11 - .../Definitions/Utilities/MixedRealityPose.cs | 135 - .../Utilities/MixedRealityPose.cs.meta | 11 - .../Utilities/MixedRealityTransform.cs | 153 - .../Utilities/MixedRealityTransform.cs.meta | 11 - .../Utilities/MovementConstraintType.cs | 11 - .../Utilities/MovementConstraintType.cs.meta | 11 - .../Definitions/Utilities/OrientationType.cs | 48 - .../Utilities/OrientationType.cs.meta | 11 - .../Core/Definitions/Utilities/PivotAxis.cs | 23 - .../Definitions/Utilities/PivotAxis.cs.meta | 11 - .../Definitions/Utilities/ProcessResult.cs | 39 - .../Utilities/ProcessResult.cs.meta | 11 - .../Utilities/ProfileMenuItemIndices.cs | 35 - .../Utilities/ProfileMenuItemIndices.cs.meta | 11 - .../Utilities/RadialViewReferenceDirection.cs | 24 - .../RadialViewReferenceDirection.cs.meta | 11 - .../Utilities/RecognitionConfidenceLevel.cs | 16 - .../RecognitionConfidenceLevel.cs.meta | 11 - .../Utilities/RotationConstraintType.cs | 37 - .../Utilities/RotationConstraintType.cs.meta | 11 - .../Core/Definitions/Utilities/ScaleState.cs | 12 - .../Definitions/Utilities/ScaleState.cs.meta | 11 - .../Utilities/SceneAssetReferenceAttribute.cs | 11 - .../SceneAssetReferenceAttribute.cs.meta | 11 - .../Utilities/SolverOrientationType.cs | 33 - .../Utilities/SolverOrientationType.cs.meta | 11 - .../Utilities/SupportedApplicationModes.cs | 27 - .../SupportedApplicationModes.cs.meta | 11 - .../Utilities/SupportedPlatforms.cs | 26 - .../Utilities/SupportedPlatforms.cs.meta | 11 - .../Core/Definitions/Utilities/SystemType.cs | 162 - .../Definitions/Utilities/SystemType.cs.meta | 11 - .../Definitions/Utilities/TrackedHandJoint.cs | 118 - .../Utilities/TrackedHandJoint.cs.meta | 11 - .../Utilities/TrackedObjectType.cs | 49 - .../Utilities/TrackedObjectType.cs.meta | 11 - .../Definitions/Utilities/TransformFlags.cs | 16 - .../Utilities/TransformFlags.cs.meta | 11 - .../Definitions/Utilities/TypeGrouping.cs | 33 - .../Utilities/TypeGrouping.cs.meta | 11 - .../Definitions/Utilities/Vector3Smoothed.cs | 33 - .../Utilities/Vector3Smoothed.cs.meta | 11 - .../Core/Definitions/Utilities/VolumeType.cs | 31 - .../Definitions/Utilities/VolumeType.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/EventDatum.meta | 8 - .../Assets/MRTK/Core/EventDatum/Boundary.meta | 8 - .../EventDatum/Boundary/BoundaryEventData.cs | 62 - .../Boundary/BoundaryEventData.cs.meta | 11 - .../MRTK/Core/EventDatum/Diagnostics.meta | 8 - .../Diagnostics/DiagnosticsEventData.cs | 25 - .../Diagnostics/DiagnosticsEventData.cs.meta | 11 - .../Core/EventDatum/GenericBaseEventData.cs | 54 - .../EventDatum/GenericBaseEventData.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/EventDatum/Input.meta | 8 - .../EventDatum/Input/BaseInputEventData.cs | 51 - .../Input/BaseInputEventData.cs.meta | 11 - .../EventDatum/Input/DictationEventData.cs | 37 - .../Input/DictationEventData.cs.meta | 11 - .../Core/EventDatum/Input/FocusEventData.cs | 53 - .../EventDatum/Input/FocusEventData.cs.meta | 11 - .../Input/HandTrackingInputEventData.cs | 34 - .../Input/HandTrackingInputEventData.cs.meta | 11 - .../Core/EventDatum/Input/InputEventData.cs | 55 - .../EventDatum/Input/InputEventData.cs.meta | 11 - .../Input/MixedRealityPointerEventData.cs | 55 - .../MixedRealityPointerEventData.cs.meta | 11 - .../EventDatum/Input/SourcePoseEventData.cs | 31 - .../Input/SourcePoseEventData.cs.meta | 11 - .../EventDatum/Input/SourceStateEventData.cs | 29 - .../Input/SourceStateEventData.cs.meta | 11 - .../Core/EventDatum/Input/SpeechEventData.cs | 50 - .../EventDatum/Input/SpeechEventData.cs.meta | 11 - .../Core/EventDatum/PlacementEventData.cs | 31 - .../EventDatum/PlacementEventData.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/EventDatum/README.md | 5 - .../MRTK/Core/EventDatum/README.md.meta | 7 - .../Core/EventDatum/SpatialAwareness.meta | 8 - .../MixedRealitySpatialAwarenessEventData.cs | 61 - ...edRealitySpatialAwarenessEventData.cs.meta | 11 - .../Assets/MRTK/Core/EventDatum/Teleport.meta | 8 - .../EventDatum/Teleport/TeleportEventData.cs | 40 - .../Teleport/TeleportEventData.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Extensions.meta | 8 - .../Extensions/AnimationCurveExtensions.cs | 28 - .../AnimationCurveExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/ArrayExtensions.cs | 32 - .../Core/Extensions/ArrayExtensions.cs.meta | 11 - .../Core/Extensions/AssemblyExtensions.cs | 28 - .../Extensions/AssemblyExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/BoundsExtensions.cs | 777 - .../Core/Extensions/BoundsExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/CameraExtensions.cs | 90 - .../Core/Extensions/CameraExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/CanvasExtensions.cs | 208 - .../Core/Extensions/CanvasExtensions.cs.meta | 11 - .../Core/Extensions/CollectionsExtensions.cs | 165 - .../Extensions/CollectionsExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/Color32Extensions.cs | 65 - .../Core/Extensions/Color32Extensions.cs.meta | 11 - .../Core/Extensions/ComparerExtensions.cs | 42 - .../Extensions/ComparerExtensions.cs.meta | 11 - .../Core/Extensions/ComponentExtensions.cs | 67 - .../Extensions/ComponentExtensions.cs.meta | 11 - .../Core/Extensions/DateTimeExtensions.cs | 41 - .../Extensions/DateTimeExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/DoubleExtensions.cs | 26 - .../Core/Extensions/DoubleExtensions.cs.meta | 11 - .../Extensions/EditorClassExtensions.meta | 8 - .../EditorClassExtensions/AssemblyInfo.cs | 7 - .../AssemblyInfo.cs.meta | 11 - .../EditorLayerExtensions.cs | 88 - .../EditorLayerExtensions.cs.meta | 11 - .../MRTK.Editor.ClassExtensions.asmdef | 14 - .../MRTK.Editor.ClassExtensions.asmdef.meta | 7 - .../ScriptableObjectExtensions.cs | 91 - .../ScriptableObjectExtensions.cs.meta | 11 - .../Core/Extensions/EnumerableExtensions.cs | 42 - .../Extensions/EnumerableExtensions.cs.meta | 11 - .../Core/Extensions/EventSystemExtensions.cs | 79 - .../Extensions/EventSystemExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/FloatExtensions.cs | 26 - .../Core/Extensions/FloatExtensions.cs.meta | 11 - .../Core/Extensions/GameObjectExtensions.cs | 209 - .../Extensions/GameObjectExtensions.cs.meta | 11 - .../Core/Extensions/HandednessExtensions.cs | 69 - .../Extensions/HandednessExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/LayerExtensions.cs | 84 - .../Core/Extensions/LayerExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/MathfExtensions.cs | 70 - .../Core/Extensions/MathfExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/ProcessExtensions.cs | 153 - .../Core/Extensions/ProcessExtensions.cs.meta | 11 - .../Core/Extensions/QuaternionExtensions.cs | 32 - .../Extensions/QuaternionExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/RayExtensions.cs | 23 - .../Core/Extensions/RayExtensions.cs.meta | 11 - .../Core/Extensions/ReflectionExtensions.cs | 199 - .../Extensions/ReflectionExtensions.cs.meta | 11 - .../Extensions/StringBuilderExtensions.cs | 23 - .../StringBuilderExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/StringExtensions.cs | 88 - .../Core/Extensions/StringExtensions.cs.meta | 11 - .../Extensions/SystemNumericsExtensions.cs | 50 - .../SystemNumericsExtensions.cs.meta | 11 - .../Core/Extensions/Texture2DExtensions.cs | 86 - .../Extensions/Texture2DExtensions.cs.meta | 11 - .../Core/Extensions/TransformExtensions.cs | 274 - .../Extensions/TransformExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/TypeExtensions.cs | 43 - .../Core/Extensions/TypeExtensions.cs.meta | 11 - .../Core/Extensions/UnityObjectExtensions.cs | 66 - .../Extensions/UnityObjectExtensions.cs.meta | 11 - .../MRTK/Core/Extensions/VectorExtensions.cs | 255 - .../Core/Extensions/VectorExtensions.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Inspectors.meta | 8 - .../MRTK/Core/Inspectors/AssemblyInfo.cs | 7 - .../MRTK/Core/Inspectors/AssemblyInfo.cs.meta | 11 - .../Core/Inspectors/ClippingBoxInspector.cs | 31 - .../Inspectors/ClippingBoxInspector.cs.meta | 11 - .../Core/Inspectors/ClippingPlaneInspector.cs | 31 - .../Inspectors/ClippingPlaneInspector.cs.meta | 11 - .../Inspectors/ClippingPrimitiveInspector.cs | 69 - .../ClippingPrimitiveInspector.cs.meta | 11 - .../Inspectors/ClippingSphereInspector.cs | 31 - .../ClippingSphereInspector.cs.meta | 11 - .../Core/Inspectors/ControllerPopupWindow.cs | 796 - .../Inspectors/ControllerPopupWindow.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Inspectors/Data.meta | 8 - .../Data/ControllerInputActionOption.cs | 21 - .../Data/ControllerInputActionOption.cs.meta | 11 - .../Data/ControllerInputActionOptions.cs | 17 - .../Data/ControllerInputActionOptions.cs.meta | 11 - .../Inspectors/Data/EditorWindowOptions.json | 538 - .../Data/EditorWindowOptions.json.meta | 7 - .../Core/Inspectors/HoverLightInspector.cs | 36 - .../Inspectors/HoverLightInspector.cs.meta | 11 - .../Core/Inspectors/MRTK.Inspectors.asmdef | 21 - .../Inspectors/MRTK.Inspectors.asmdef.meta | 7 - .../Core/Inspectors/MixedRealityShaderGUI.cs | 418 - .../Inspectors/MixedRealityShaderGUI.cs.meta | 11 - .../MixedRealityStandardShaderGUI.cs | 823 - .../MixedRealityStandardShaderGUI.cs.meta | 11 - .../MixedRealityTextMeshProShaderGUI.cs | 48 - .../MixedRealityTextMeshProShaderGUI.cs.meta | 11 - .../MixedRealityToolkitFacadeHandler.cs | 131 - .../MixedRealityToolkitFacadeHandler.cs.meta | 11 - .../MixedRealityToolkitInspector.cs | 81 - .../MixedRealityToolkitInspector.cs.meta | 11 - .../MixedRealityToolkitShaderGUIUtilities.cs | 54 - ...edRealityToolkitShaderGUIUtilities.cs.meta | 11 - .../MixedRealityWireframeShaderGUI.cs | 105 - .../MixedRealityWireframeShaderGUI.cs.meta | 11 - .../Assets/MRTK/Core/Inspectors/Profiles.meta | 8 - .../BaseMixedRealityProfileInspector.cs | 205 - .../BaseMixedRealityProfileInspector.cs.meta | 11 - ...ityToolkitConfigurationProfileInspector.cs | 280 - ...olkitConfigurationProfileInspector.cs.meta | 11 - .../DataProviderAccessServiceInspector.cs | 210 - ...DataProviderAccessServiceInspector.cs.meta | 11 - ...tyBoundaryVisualizationProfileInspector.cs | 145 - ...ndaryVisualizationProfileInspector.cs.meta | 11 - .../MixedRealityCameraProfileInspector.cs | 168 - ...MixedRealityCameraProfileInspector.cs.meta | 11 - ...ealityControllerMappingProfileInspector.cs | 361 - ...yControllerMappingProfileInspector.cs.meta | 11 - ...ControllerVisualizationProfileInspector.cs | 285 - ...ollerVisualizationProfileInspector.cs.meta | 11 - ...ealityDiagnosticsSystemProfileInspector.cs | 94 - ...yDiagnosticsSystemProfileInspector.cs.meta | 11 - ...MixedRealityEyeTrackingProfileInspector.cs | 50 - ...RealityEyeTrackingProfileInspector.cs.meta | 11 - .../MixedRealityGesturesProfileInspector.cs | 256 - ...xedRealityGesturesProfileInspector.cs.meta | 11 - ...ixedRealityHandTrackingProfileInspector.cs | 68 - ...ealityHandTrackingProfileInspector.cs.meta | 11 - .../MixedRealityInputActionRulesInspector.cs | 566 - ...edRealityInputActionRulesInspector.cs.meta | 11 - ...ixedRealityInputActionsProfileInspector.cs | 111 - ...ealityInputActionsProfileInspector.cs.meta | 11 - ...MixedRealityInputSystemProfileInspector.cs | 229 - ...RealityInputSystemProfileInspector.cs.meta | 11 - .../MixedRealityMouseInputProfileInspector.cs | 55 - ...dRealityMouseInputProfileInspector.cs.meta | 11 - .../MixedRealityPointerProfileInspector.cs | 169 - ...ixedRealityPointerProfileInspector.cs.meta | 12 - .../MixedRealityProfileCloneWindow.cs | 417 - .../MixedRealityProfileCloneWindow.cs.meta | 11 - ...gisteredServiceProviderProfileInspector.cs | 201 - ...redServiceProviderProfileInspector.cs.meta | 11 - ...MixedRealitySceneSystemProfileInspector.cs | 315 - ...RealitySceneSystemProfileInspector.cs.meta | 11 - ...alAwarenessMeshObserverProfileInspector.cs | 142 - ...renessMeshObserverProfileInspector.cs.meta | 11 - ...ySpatialAwarenessSystemProfileInspector.cs | 87 - ...ialAwarenessSystemProfileInspector.cs.meta | 11 - ...edRealitySpeechCommandsProfileInspector.cs | 178 - ...litySpeechCommandsProfileInspector.cs.meta | 11 - ...ityToolkitConfigurationProfileInspector.cs | 496 - ...olkitConfigurationProfileInspector.cs.meta | 12 - .../MRTK/Core/Inspectors/PropertyDrawers.meta | 8 - .../EnumFlagsAttributeDrawer.cs | 21 - .../EnumFlagsAttributeDrawer.cs.meta | 11 - .../PropertyDrawers/ExperimentalDrawer.cs | 47 - .../ExperimentalDrawer.cs.meta | 11 - .../Inspectors/PropertyDrawers/HelpDrawer.cs | 75 - .../PropertyDrawers/HelpDrawer.cs.meta | 11 - .../InputActionPropertyDrawer.cs | 89 - .../InputActionPropertyDrawer.cs.meta | 11 - .../MixedRealityPosePropertyDrawer.cs | 50 - .../MixedRealityPosePropertyDrawer.cs.meta | 11 - .../PhysicsLayerAttributeDrawer.cs | 36 - .../PhysicsLayerAttributeDrawer.cs.meta | 11 - .../PropertyDrawers/PrefabPropertyDrawer.cs | 41 - .../PrefabPropertyDrawer.cs.meta | 11 - .../SceneAssetReferenceAttributeDrawer.cs | 25 - ...SceneAssetReferenceAttributeDrawer.cs.meta | 11 - .../PropertyDrawers/SceneInfoDrawer.cs | 269 - .../PropertyDrawers/SceneInfoDrawer.cs.meta | 11 - .../PropertyDrawers/SceneInfoUtils.cs | 408 - .../PropertyDrawers/SceneInfoUtils.cs.meta | 11 - .../ScenePickPropertyDrawer.cs | 119 - .../ScenePickPropertyDrawer.cs.meta | 11 - .../SelectRepairedTypeWindow.cs | 57 - .../SelectRepairedTypeWindow.cs.meta | 11 - .../SpeechCommandPropertyDrawer.cs | 29 - .../SpeechCommandPropertyDrawer.cs.meta | 11 - .../PropertyDrawers/TagPropertyDrawer.cs | 38 - .../PropertyDrawers/TagPropertyDrawer.cs.meta | 11 - .../TypeReferencePropertyDrawer.cs | 361 - .../TypeReferencePropertyDrawer.cs.meta | 11 - .../Vector3RangePropertyDrawer.cs | 47 - .../Vector3RangePropertyDrawer.cs.meta | 11 - .../Inspectors/ProximityLightInspector.cs | 36 - .../ProximityLightInspector.cs.meta | 11 - .../Core/Inspectors/ServiceInspectors.meta | 8 - .../ServiceInspectors/AssemblyInfo.cs | 7 - .../ServiceInspectors/AssemblyInfo.cs.meta | 11 - .../BaseMixedRealityServiceInspector.cs | 21 - .../BaseMixedRealityServiceInspector.cs.meta | 11 - .../FocusProviderInspector.cs | 51 - .../FocusProviderInspector.cs.meta | 11 - .../HandJointServiceInspector.cs | 271 - .../HandJointServiceInspector.cs.meta | 11 - .../IMixedRealityServiceInspector.cs | 40 - .../IMixedRealityServiceInspector.cs.meta | 11 - .../MRTK.ServiceInspectors.asmdef | 20 - .../MRTK.ServiceInspectors.asmdef.meta | 7 - .../ServiceInspectors/SceneSystemInspector.cs | 325 - .../SceneSystemInspector.cs.meta | 11 - .../ServiceFacadeInspector.cs | 384 - .../ServiceFacadeInspector.cs.meta | 11 - .../SpatialAwarenessSystemInspector.cs | 151 - .../SpatialAwarenessSystemInspector.cs.meta | 11 - .../TeleportSystemInspector.cs | 43 - .../TeleportSystemInspector.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Inspectors/Setup.meta | 8 - .../Setup/MixedRealityEditorSettings.cs | 152 - .../Setup/MixedRealityEditorSettings.cs.meta | 11 - .../MixedRealityProjectConfiguratorWindow.cs | 308 - ...edRealityProjectConfiguratorWindow.cs.meta | 11 - .../Setup/ProjectPreferencesInspector.cs | 18 - .../Setup/ProjectPreferencesInspector.cs.meta | 11 - .../MRTK/Core/Inspectors/Utilities.meta | 8 - .../Utilities/InspectorFieldsUtility.cs | 351 - .../Utilities/InspectorFieldsUtility.cs.meta | 11 - .../Utilities/InspectorUIUtility.cs | 766 - .../Utilities/InspectorUIUtility.cs.meta | 11 - .../MRTK/Core/Inspectors/Utilities/Lines.meta | 8 - .../Utilities/Lines/DataProviders.meta | 8 - .../BaseLineDataProviderInspector.cs | 364 - .../BaseLineDataProviderInspector.cs.meta | 11 - .../BezierDataProviderInspector.cs | 102 - .../BezierDataProviderInspector.cs.meta | 11 - .../EllipseLineDataProviderInspector.cs | 75 - .../EllipseLineDataProviderInspector.cs.meta | 11 - ...rabolaPhysicalLineDataProviderInspector.cs | 52 - ...aPhysicalLineDataProviderInspector.cs.meta | 11 - ...licConstrainedLineDataProviderInspector.cs | 77 - ...nstrainedLineDataProviderInspector.cs.meta | 11 - .../RectangleLineDataProviderInspector.cs | 88 - ...RectangleLineDataProviderInspector.cs.meta | 11 - .../SimpleLineDataProviderInspector.cs | 74 - .../SimpleLineDataProviderInspector.cs.meta | 11 - .../SplineDataProviderInspector.cs | 333 - .../SplineDataProviderInspector.cs.meta | 11 - .../Utilities/MixedRealityInspectorUtility.cs | 610 - .../MixedRealityInspectorUtility.cs.meta | 11 - .../Utilities/MixedRealityProfileUtility.cs | 170 - .../MixedRealityProfileUtility.cs.meta | 11 - .../Utilities/MixedRealityStylesUtility.cs | 62 - .../MixedRealityStylesUtility.cs.meta | 11 - .../Core/Inspectors/Utilities/Search.meta | 8 - .../Utilities/Search/FieldSearchResult.cs | 16 - .../Search/FieldSearchResult.cs.meta | 11 - .../MixedRealitySearchInspectorUtility.cs | 196 - ...MixedRealitySearchInspectorUtility.cs.meta | 11 - .../Search/MixedRealitySearchUtility.cs | 285 - .../Search/MixedRealitySearchUtility.cs.meta | 11 - .../Utilities/Search/ProfileSearchResult.cs | 18 - .../Search/ProfileSearchResult.cs.meta | 11 - .../Utilities/Search/SearchConfig.cs | 19 - .../Utilities/Search/SearchConfig.cs.meta | 11 - .../Inspectors/Utilities/Text3DShaderGUI.cs | 40 - .../Utilities/Text3DShaderGUI.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Interfaces.meta | 8 - AR-ROS/Assets/MRTK/Core/Interfaces/Audio.meta | 8 - .../Core/Interfaces/Audio/IAudioInfluencer.cs | 25 - .../Interfaces/Audio/IAudioInfluencer.cs.meta | 11 - .../MRTK/Core/Interfaces/BoundarySystem.meta | 8 - .../IMixedRealityBoundaryHandler.cs | 15 - .../IMixedRealityBoundaryHandler.cs.meta | 11 - .../IMixedRealityBoundarySystem.cs | 157 - .../IMixedRealityBoundarySystem.cs.meta | 11 - .../MRTK/Core/Interfaces/CameraSystem.meta | 8 - .../IMixedRealityCameraSettingsProvider.cs | 21 - ...MixedRealityCameraSettingsProvider.cs.meta | 11 - .../CameraSystem/IMixedRealityCameraSystem.cs | 23 - .../IMixedRealityCameraSystem.cs.meta | 11 - .../Assets/MRTK/Core/Interfaces/Devices.meta | 8 - .../Devices/IMixedRealityController.cs | 77 - .../Devices/IMixedRealityController.cs.meta | 11 - ...IMixedRealityControllerPoseSynchronizer.cs | 46 - ...dRealityControllerPoseSynchronizer.cs.meta | 11 - .../IMixedRealityControllerVisualizer.cs | 25 - .../IMixedRealityControllerVisualizer.cs.meta | 11 - .../Devices/IMixedRealityDictationSystem.cs | 55 - .../IMixedRealityDictationSystem.cs.meta | 11 - .../Interfaces/Devices/IMixedRealityHand.cs | 22 - .../Devices/IMixedRealityHand.cs.meta | 11 - .../Devices/IMixedRealityHandJointService.cs | 21 - .../IMixedRealityHandJointService.cs.meta | 11 - .../Devices/IMixedRealityHandVisualizer.cs | 22 - .../IMixedRealityHandVisualizer.cs.meta | 11 - .../IMixedRealityInputDeviceManager.cs | 16 - .../IMixedRealityInputDeviceManager.cs.meta | 11 - .../Devices/IMixedRealitySpeechSystem.cs | 28 - .../Devices/IMixedRealitySpeechSystem.cs.meta | 11 - .../MRTK/Core/Interfaces/Diagnostics.meta | 8 - .../IMixedRealityDiagnosticsHandler.cs | 12 - .../IMixedRealityDiagnosticsHandler.cs.meta | 11 - .../IMixedRealityDiagnosticsSystem.cs | 46 - .../IMixedRealityDiagnosticsSystem.cs.meta | 11 - .../MRTK/Core/Interfaces/EventSystem.meta | 8 - .../Core/Interfaces/EventSystem/Handlers.meta | 8 - .../Handlers/IMixedRealityEventHandler.cs | 15 - .../IMixedRealityEventHandler.cs.meta | 11 - .../EventSystem/IMixedRealityEventSource.cs | 23 - .../IMixedRealityEventSource.cs.meta | 11 - .../EventSystem/IMixedRealityEventSystem.cs | 71 - .../IMixedRealityEventSystem.cs.meta | 11 - .../IMixedRealityServiceConfiguration.cs | 39 - .../IMixedRealityServiceConfiguration.cs.meta | 11 - .../MRTK/Core/Interfaces/InputSystem.meta | 8 - .../Core/Interfaces/InputSystem/Handlers.meta | 8 - .../Handlers/IMixedRealityBaseInputHandler.cs | 15 - .../IMixedRealityBaseInputHandler.cs.meta | 11 - .../Handlers/IMixedRealityDictationHandler.cs | 21 - .../IMixedRealityDictationHandler.cs.meta | 11 - .../IMixedRealityFocusChangedHandler.cs | 40 - .../IMixedRealityFocusChangedHandler.cs.meta | 11 - .../Handlers/IMixedRealityFocusHandler.cs | 39 - .../IMixedRealityFocusHandler.cs.meta | 11 - .../Handlers/IMixedRealityGestureHandler.cs | 56 - .../IMixedRealityGestureHandler.cs.meta | 11 - .../Handlers/IMixedRealityHandJointHandler.cs | 17 - .../IMixedRealityHandJointHandler.cs.meta | 11 - .../Handlers/IMixedRealityHandMeshHandler.cs | 52 - .../IMixedRealityHandMeshHandler.cs.meta | 11 - .../IMixedRealityInputActionHandler.cs | 27 - .../IMixedRealityInputActionHandler.cs.meta | 11 - .../Handlers/IMixedRealityInputHandler.cs | 43 - .../IMixedRealityInputHandler.cs.meta | 11 - .../Handlers/IMixedRealityPointerHandler.cs | 33 - .../IMixedRealityPointerHandler.cs.meta | 11 - .../IMixedRealitySourcePoseHandler.cs | 39 - .../IMixedRealitySourcePoseHandler.cs.meta | 11 - .../IMixedRealitySourceStateHandler.cs | 23 - .../IMixedRealitySourceStateHandler.cs.meta | 11 - .../Handlers/IMixedRealitySpeechHandler.cs | 15 - .../IMixedRealitySpeechHandler.cs.meta | 11 - .../Handlers/IMixedRealityTouchHandler.cs | 41 - .../IMixedRealityTouchHandler.cs.meta | 11 - .../Interfaces/InputSystem/ICursorModifier.cs | 90 - .../InputSystem/ICursorModifier.cs.meta | 11 - .../InputSystem/IInputActionRule.cs | 28 - .../InputSystem/IInputActionRule.cs.meta | 11 - .../InputSystem/IMixedRealityCursor.cs | 73 - .../InputSystem/IMixedRealityCursor.cs.meta | 11 - .../IMixedRealityEyeGazeDataProvider.cs | 15 - .../IMixedRealityEyeGazeDataProvider.cs.meta | 11 - .../IMixedRealityEyeGazeProvider.cs | 69 - .../IMixedRealityEyeGazeProvider.cs.meta | 11 - .../IMixedRealityEyeSaccadeProvider.cs | 28 - .../IMixedRealityEyeSaccadeProvider.cs.meta | 11 - .../InputSystem/IMixedRealityFocusProvider.cs | 106 - .../IMixedRealityFocusProvider.cs.meta | 11 - .../InputSystem/IMixedRealityGazeProvider.cs | 94 - .../IMixedRealityGazeProvider.cs.meta | 11 - .../IMixedRealityGazeProviderHeadOverride.cs | 23 - ...xedRealityGazeProviderHeadOverride.cs.meta | 11 - .../InputSystem/IMixedRealityInputSource.cs | 22 - .../IMixedRealityInputSource.cs.meta | 11 - .../InputSystem/IMixedRealityInputSystem.cs | 433 - .../IMixedRealityInputSystem.cs.meta | 11 - .../IMixedRealityMouseDeviceManager.cs | 29 - .../IMixedRealityMouseDeviceManager.cs.meta | 11 - .../InputSystem/IMixedRealityMousePointer.cs | 26 - .../IMixedRealityMousePointer.cs.meta | 11 - .../InputSystem/IMixedRealityNearPointer.cs | 56 - .../IMixedRealityNearPointer.cs.meta | 11 - .../InputSystem/IMixedRealityPointer.cs | 137 - .../InputSystem/IMixedRealityPointer.cs.meta | 11 - .../IMixedRealityPointerMediator.cs | 30 - .../IMixedRealityPointerMediator.cs.meta | 11 - .../IMixedRealityPrimaryPointerSelector.cs | 39 - ...MixedRealityPrimaryPointerSelector.cs.meta | 11 - .../IMixedRealityRaycastProvider.cs | 38 - .../IMixedRealityRaycastProvider.cs.meta | 11 - .../IMixedRealityTeleportPointer.cs | 25 - .../IMixedRealityTeleportPointer.cs.meta | 11 - .../InputSystem/IMixedRealityTouchPointer.cs | 23 - .../IMixedRealityTouchPointer.cs.meta | 11 - .../InputSystem/IPointerPreferences.cs | 50 - .../InputSystem/IPointerPreferences.cs.meta | 11 - .../Interfaces/InputSystem/IPointerResult.cs | 39 - .../InputSystem/IPointerResult.cs.meta | 11 - .../Assets/MRTK/Core/Interfaces/Physics.meta | 8 - .../Interfaces/Physics/IBaseRayStabilizer.cs | 16 - .../Physics/IBaseRayStabilizer.cs.meta | 11 - .../MRTK/Core/Interfaces/Registrars.meta | 8 - .../IMixedRealityServiceRegistrar.cs | 81 - .../IMixedRealityServiceRegistrar.cs.meta | 11 - .../MRTK/Core/Interfaces/Rendering.meta | 8 - .../Rendering/IMaterialInstanceOwner.cs | 19 - .../Rendering/IMaterialInstanceOwner.cs.meta | 11 - .../MRTK/Core/Interfaces/SceneSystem.meta | 8 - .../SceneSystem/IMixedRealitySceneSystem.cs | 297 - .../IMixedRealitySceneSystem.cs.meta | 11 - .../IMixedRealitySceneSystemEditor.cs | 43 - .../IMixedRealitySceneSystemEditor.cs.meta | 11 - .../Assets/MRTK/Core/Interfaces/Services.meta | 8 - .../Services/IMixedRealityCapabilityCheck.cs | 16 - .../IMixedRealityCapabilityCheck.cs.meta | 11 - .../Services/IMixedRealityDataProvider.cs | 14 - .../IMixedRealityDataProvider.cs.meta | 11 - .../IMixedRealityDataProviderAccess.cs | 55 - .../IMixedRealityDataProviderAccess.cs.meta | 11 - .../Services/IMixedRealityExtensionService.cs | 13 - .../IMixedRealityExtensionService.cs.meta | 11 - .../Services/IMixedRealityService.cs | 67 - .../Services/IMixedRealityService.cs.meta | 11 - .../Core/Interfaces/SpatialAwareness.meta | 8 - .../Interfaces/SpatialAwareness/Handlers.meta | 8 - ...alitySpatialAwarenessObservationHandler.cs | 28 - ...SpatialAwarenessObservationHandler.cs.meta | 11 - .../IMixedRealitySpatialAwarenessObject.cs | 30 - ...MixedRealitySpatialAwarenessObject.cs.meta | 11 - .../IMixedRealitySpatialAwarenessSystem.cs | 136 - ...MixedRealitySpatialAwarenessSystem.cs.meta | 11 - .../SpatialAwareness/Observers.meta | 8 - ...ixedRealitySpatialAwarenessMeshObserver.cs | 72 - ...ealitySpatialAwarenessMeshObserver.cs.meta | 11 - .../IMixedRealitySpatialAwarenessObserver.cs | 89 - ...xedRealitySpatialAwarenessObserver.cs.meta | 11 - .../ISpatialAwarenessPhysicsProperties.cs | 19 - ...ISpatialAwarenessPhysicsProperties.cs.meta | 3 - .../MRTK/Core/Interfaces/TeleportSystem.meta | 8 - .../Interfaces/TeleportSystem/Handlers.meta | 8 - .../Handlers/IMixedRealityTeleportHandler.cs | 33 - .../IMixedRealityTeleportHandler.cs.meta | 11 - .../IMixedRealityTeleportHotspot.cs | 44 - .../IMixedRealityTeleportHotspot.cs.meta | 11 - .../IMixedRealityTeleportSystem.cs | 40 - .../IMixedRealityTeleportSystem.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/License.txt | 21 - AR-ROS/Assets/MRTK/Core/License.txt.meta | 7 - AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef | 15 - AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef.meta | 7 - AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel | 0 .../Assets/MRTK/Core/MRTK.Core.sentinel.meta | 7 - .../MRTK/Core/MixedReality.Toolkit.targets | 68 - .../Core/MixedReality.Toolkit.targets.meta | 7 - AR-ROS/Assets/MRTK/Core/Providers.meta | 8 - .../Providers/BaseCameraSettingsProvider.cs | 54 - .../BaseCameraSettingsProvider.cs.meta | 11 - .../MRTK/Core/Providers/BaseController.cs | 333 - .../Core/Providers/BaseController.cs.meta | 11 - .../Core/Providers/BaseGenericInputSource.cs | 93 - .../Providers/BaseGenericInputSource.cs.meta | 11 - .../Core/Providers/BaseInputDeviceManager.cs | 366 - .../Providers/BaseInputDeviceManager.cs.meta | 11 - .../Core/Providers/BaseSpatialMeshObserver.cs | 339 - .../Providers/BaseSpatialMeshObserver.cs.meta | 11 - .../Core/Providers/BaseSpatialObserver.cs | 246 - .../Providers/BaseSpatialObserver.cs.meta | 11 - .../MRTK/Core/Providers/GenericPointer.cs | 185 - .../Core/Providers/GenericPointer.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Providers/Hands.meta | 8 - .../MRTK/Core/Providers/Hands/BaseHand.cs | 128 - .../Core/Providers/Hands/BaseHand.cs.meta | 11 - .../Providers/Hands/BaseHandVisualizer.cs | 213 - .../Hands/BaseHandVisualizer.cs.meta | 11 - .../MRTK/Core/Providers/Hands/HandBounds.cs | 186 - .../Core/Providers/Hands/HandBounds.cs.meta | 11 - .../Core/Providers/Hands/HandJointService.cs | 192 - .../Providers/Hands/HandJointService.cs.meta | 11 - .../Core/Providers/Hands/HandJointUtils.cs | 66 - .../Providers/Hands/HandJointUtils.cs.meta | 11 - .../MRTK/Core/Providers/Hands/HandRay.meta | 8 - .../Core/Providers/Hands/HandRay/HandRay.cs | 114 - .../Providers/Hands/HandRay/HandRay.cs.meta | 11 - .../Core/Providers/Hands/HandRay/IHandRay.cs | 34 - .../Providers/Hands/HandRay/IHandRay.cs.meta | 11 - .../MRTK/Core/Providers/Hands/README.md | 19 - .../MRTK/Core/Providers/Hands/README.md.meta | 7 - .../MRTK/Core/Providers/InputAnimation.meta | 8 - .../Providers/InputAnimation/AssemblyInfo.cs | 7 - .../InputAnimation/AssemblyInfo.cs.meta | 11 - .../IMixedRealityInputRecordingService.cs | 68 - ...IMixedRealityInputRecordingService.cs.meta | 11 - .../InputAnimation/InputAnimation.cs | 733 - .../InputAnimation/InputAnimation.cs.meta | 11 - .../InputAnimationSerializationUtils.cs | 231 - .../InputAnimationSerializationUtils.cs.meta | 11 - .../InputAnimation/InputRecordingService.cs | 325 - .../InputRecordingService.cs.meta | 11 - .../InputAnimation/MRTK.InputAnimation.asmdef | 10 - .../MRTK.InputAnimation.asmdef.meta | 7 - .../MixedRealityInputRecordingProfile.cs | 36 - .../MixedRealityInputRecordingProfile.cs.meta | 11 - .../MRTK/Core/Providers/InputSimulation.meta | 8 - .../InputSimulation/ArticulatedHandPoses.meta | 8 - .../ArticulatedHandPose_Flat.json | 436 - .../ArticulatedHandPose_Flat.json.meta | 7 - .../ArticulatedHandPose_Grab.json | 436 - .../ArticulatedHandPose_Grab.json.meta | 7 - .../ArticulatedHandPose_Open.json | 436 - .../ArticulatedHandPose_Open.json.meta | 7 - ...ticulatedHandPose_OpenSteadyGrabPoint.json | 436 - ...atedHandPose_OpenSteadyGrabPoint.json.meta | 7 - .../ArticulatedHandPose_Pinch.json | 436 - .../ArticulatedHandPose_Pinch.json.meta | 7 - .../ArticulatedHandPose_PinchSteadyWrist.json | 436 - ...culatedHandPose_PinchSteadyWrist.json.meta | 7 - .../ArticulatedHandPose_Poke.json | 436 - .../ArticulatedHandPose_Poke.json.meta | 7 - .../ArticulatedHandPose_ThumbsUp.json | 436 - .../ArticulatedHandPose_ThumbsUp.json.meta | 7 - .../ArticulatedHandPose_Victory.json | 436 - .../ArticulatedHandPose_Victory.json.meta | 7 - .../Providers/InputSimulation/AssemblyInfo.cs | 7 - .../InputSimulation/AssemblyInfo.cs.meta | 11 - .../BaseInputSimulationService.cs | 246 - .../BaseInputSimulationService.cs.meta | 11 - .../Providers/InputSimulation/Editor.meta | 8 - .../InputSimulation/Editor/AssemblyInfo.cs | 7 - .../Editor/AssemblyInfo.cs.meta | 11 - .../Editor/InputSimulationWindow.cs | 477 - .../Editor/InputSimulationWindow.cs.meta | 11 - .../Editor/KeyBindingInspector.cs | 144 - .../Editor/KeyBindingInspector.cs.meta | 11 - .../Editor/MRTK.InputSimulation.Editor.asmdef | 21 - .../MRTK.InputSimulation.Editor.asmdef.meta | 7 - ...dRealityInputSimulationProfileInspector.cs | 230 - ...ityInputSimulationProfileInspector.cs.meta | 11 - .../IInputSimulationService.cs | 157 - .../IInputSimulationService.cs.meta | 11 - .../IMixedRealityInputPlaybackService.cs | 52 - .../IMixedRealityInputPlaybackService.cs.meta | 11 - .../InputSimulation/InputPlaybackService.cs | 222 - .../InputPlaybackService.cs.meta | 11 - .../InputSimulation/InputSimulationEnum.cs | 103 - .../InputSimulationEnum.cs.meta | 11 - .../InputSimulationHelpGuide.cs | 74 - .../InputSimulationHelpGuide.cs.meta | 11 - .../InputSimulation/InputSimulationService.cs | 680 - .../InputSimulationService.cs.meta | 11 - .../Providers/InputSimulation/KeyBinding.cs | 374 - .../InputSimulation/KeyBinding.cs.meta | 11 - .../MRTK.InputSimulation.asmdef | 16 - .../MRTK.InputSimulation.asmdef.meta | 7 - .../InputSimulation/ManualCameraControl.cs | 147 - .../ManualCameraControl.cs.meta | 11 - .../MixedRealityInputSimulationProfile.cs | 444 - ...MixedRealityInputSimulationProfile.cs.meta | 11 - .../InputSimulation/MouseRotationProvider.cs | 153 - .../MouseRotationProvider.cs.meta | 11 - .../SimulatedArticulatedHand.cs | 129 - .../SimulatedArticulatedHand.cs.meta | 11 - .../SimulatedArticulatedHandPoses.cs | 4053 -- .../SimulatedArticulatedHandPoses.cs.meta | 11 - .../SimulatedControllerDataProvider.cs | 234 - .../SimulatedControllerDataProvider.cs.meta | 11 - .../InputSimulation/SimulatedGestureHand.cs | 336 - .../SimulatedGestureHand.cs.meta | 11 - .../InputSimulation/SimulatedHand.cs | 127 - .../InputSimulation/SimulatedHand.cs.meta | 11 - .../SimulatedHandDataProvider.cs | 322 - .../SimulatedHandDataProvider.cs.meta | 11 - .../InputSimulation/SimulatedHandUtils.cs | 121 - .../SimulatedHandUtils.cs.meta | 11 - .../SimulatedMotionController.cs | 174 - .../SimulatedMotionController.cs.meta | 11 - .../SimulatedMotionControllerButtonState.cs | 56 - ...mulatedMotionControllerButtonState.cs.meta | 11 - .../SimulatedMotionControllerDataProvider.cs | 155 - ...ulatedMotionControllerDataProvider.cs.meta | 11 - .../Core/Providers/ObjectMeshObserver.meta | 8 - .../ObjectMeshObserver/AssemblyInfo.cs | 7 - .../ObjectMeshObserver/AssemblyInfo.cs.meta | 11 - .../MRTK.ObjectMeshObserver.asmdef | 18 - .../MRTK.ObjectMeshObserver.asmdef.meta | 7 - .../ObjectMeshObserver/Profiles.meta | 8 - .../DefaultObjectMeshObserverProfile.asset | 28 - ...efaultObjectMeshObserverProfile.asset.meta | 8 - .../ObjectMeshObserver/RoomFileFormat.meta | 8 - .../RoomFileFormat/RoomFileImporter.cs | 68 - .../RoomFileFormat/RoomFileImporter.cs.meta | 11 - .../RoomFileFormat/RoomFileSerializer.cs | 118 - .../RoomFileFormat/RoomFileSerializer.cs.meta | 11 - .../SpatialObjectMeshObserver.cs | 260 - .../SpatialObjectMeshObserver.cs.meta | 11 - .../SpatialObjectMeshObserverProfile.cs | 25 - .../SpatialObjectMeshObserverProfile.cs.meta | 11 - ...atialObjectMeshObserverProfileInspector.cs | 159 - ...ObjectMeshObserverProfileInspector.cs.meta | 11 - .../MRTK/Core/Providers/UnityInput.meta | 8 - .../UnityInput/GenericJoystickController.cs | 281 - .../GenericJoystickController.cs.meta | 11 - .../MixedRealityMouseInputProfile.cs | 40 - .../MixedRealityMouseInputProfile.cs.meta | 11 - .../Providers/UnityInput/MouseController.cs | 155 - .../UnityInput/MouseController.cs.meta | 11 - .../UnityInput/MouseDeviceManager.cs | 195 - .../UnityInput/MouseDeviceManager.cs.meta | 11 - .../UnityInput/UnityJoystickManager.cs | 252 - .../UnityInput/UnityJoystickManager.cs.meta | 11 - .../UnityInput/UnityTouchController.cs | 246 - .../UnityInput/UnityTouchController.cs.meta | 11 - .../UnityInput/UnityTouchDeviceManager.cs | 206 - .../UnityTouchDeviceManager.cs.meta | 11 - .../Providers/UnityInput/XboxController.cs | 49 - .../UnityInput/XboxController.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Services.meta | 8 - .../MRTK/Core/Services/BaseBoundarySystem.cs | 948 - .../Core/Services/BaseBoundarySystem.cs.meta | 11 - .../MRTK/Core/Services/BaseCoreSystem.cs | 39 - .../MRTK/Core/Services/BaseCoreSystem.cs.meta | 11 - .../MRTK/Core/Services/BaseDataProvider.cs | 86 - .../Core/Services/BaseDataProvider.cs.meta | 11 - .../BaseDataProviderAccessCoreSystem.cs | 322 - .../BaseDataProviderAccessCoreSystem.cs.meta | 11 - .../MRTK/Core/Services/BaseEventSystem.cs | 463 - .../Core/Services/BaseEventSystem.cs.meta | 11 - .../Core/Services/BaseExtensionService.cs | 54 - .../Services/BaseExtensionService.cs.meta | 11 - .../Assets/MRTK/Core/Services/BaseService.cs | 89 - .../MRTK/Core/Services/BaseService.cs.meta | 11 - .../MRTK/Core/Services/MixedRealityToolkit.cs | 1565 - .../Core/Services/MixedRealityToolkit.cs.meta | 12 - AR-ROS/Assets/MRTK/Core/Utilities.meta | 8 - AR-ROS/Assets/MRTK/Core/Utilities/Async.meta | 10 - .../MRTK/Core/Utilities/Async/AssemblyInfo.cs | 7 - .../Core/Utilities/Async/AssemblyInfo.cs.meta | 11 - .../Async/AwaitYieldInstructions.meta | 10 - .../WaitForBackgroundThread.cs | 35 - .../WaitForBackgroundThread.cs.meta | 11 - .../AwaitYieldInstructions/WaitForUpdate.cs | 35 - .../WaitForUpdate.cs.meta | 11 - .../Core/Utilities/Async/AwaiterExtensions.cs | 396 - .../Utilities/Async/AwaiterExtensions.cs.meta | 11 - .../MRTK/Core/Utilities/Async/Internal.meta | 9 - .../Async/Internal/AsyncCoroutineRunner.cs | 137 - .../Internal/AsyncCoroutineRunner.cs.meta | 11 - .../Async/Internal/SyncContextUtility.cs | 83 - .../Async/Internal/SyncContextUtility.cs.meta | 11 - .../MRTK/Core/Utilities/Async/License.md | 21 - .../MRTK/Core/Utilities/Async/License.md.meta | 9 - .../Core/Utilities/Async/MRTK.Async.asmdef | 12 - .../Utilities/Async/MRTK.Async.asmdef.meta | 7 - .../MRTK/Core/Utilities/Async/ReadMe.md | 3 - .../MRTK/Core/Utilities/Async/ReadMe.md.meta | 9 - .../MRTK/Core/Utilities/BuildAndDeploy.meta | 8 - .../Utilities/BuildAndDeploy/AssemblyInfo.cs | 7 - .../BuildAndDeploy/AssemblyInfo.cs.meta | 11 - .../BuildAndDeploy/BuildDeployPreferences.cs | 61 - .../BuildDeployPreferences.cs.meta | 11 - .../Utilities/BuildAndDeploy/BuildInfo.cs | 100 - .../BuildAndDeploy/BuildInfo.cs.meta | 11 - .../BuildAndDeploy/BuildInfoExtensions.cs | 132 - .../BuildInfoExtensions.cs.meta | 11 - .../Utilities/BuildAndDeploy/IBuildInfo.cs | 95 - .../BuildAndDeploy/IBuildInfo.cs.meta | 11 - .../BuildAndDeploy/MRTK.BuildAndDeploy.asmdef | 17 - .../MRTK.BuildAndDeploy.asmdef.meta | 7 - .../BuildAndDeploy/UnityPlayerBuildTools.cs | 290 - .../UnityPlayerBuildTools.cs.meta | 11 - .../BuildAndDeploy/UwpAppxBuildTools.cs | 685 - .../BuildAndDeploy/UwpAppxBuildTools.cs.meta | 11 - .../UwpBuildDeployPreferences.cs | 198 - .../UwpBuildDeployPreferences.cs.meta | 11 - .../Utilities/BuildAndDeploy/UwpBuildInfo.cs | 62 - .../BuildAndDeploy/UwpBuildInfo.cs.meta | 11 - .../BuildAndDeploy/UwpPlayerBuildTools.cs | 130 - .../UwpPlayerBuildTools.cs.meta | 11 - .../Assets/MRTK/Core/Utilities/CameraCache.cs | 60 - .../MRTK/Core/Utilities/CameraCache.cs.meta | 11 - .../MRTK/Core/Utilities/CameraEventRouter.cs | 25 - .../Core/Utilities/CameraEventRouter.cs.meta | 11 - .../MRTK/Core/Utilities/CameraFOVChecker.cs | 104 - .../Core/Utilities/CameraFOVChecker.cs.meta | 11 - .../MRTK/Core/Utilities/CoreServices.cs | 172 - .../MRTK/Core/Utilities/CoreServices.cs.meta | 11 - .../MRTK/Core/Utilities/DebugUtilities.cs | 202 - .../Core/Utilities/DebugUtilities.cs.meta | 11 - .../MRTK/Core/Utilities/DeviceUtility.cs | 37 - .../MRTK/Core/Utilities/DeviceUtility.cs.meta | 11 - .../MRTK/Core/Utilities/EdgeUtilities.cs | 110 - .../MRTK/Core/Utilities/EdgeUtilities.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Utilities/Editor.meta | 8 - .../Utilities/Editor/AssemblyDefinition.cs | 293 - .../Editor/AssemblyDefinition.cs.meta | 11 - .../Core/Utilities/Editor/AssemblyInfo.cs | 7 - .../Utilities/Editor/AssemblyInfo.cs.meta | 11 - .../Editor/EditorAssemblyReloadManager.cs | 51 - .../EditorAssemblyReloadManager.cs.meta | 11 - .../Editor/EditorProjectUtilities.cs | 267 - .../Editor/EditorProjectUtilities.cs.meta | 11 - .../Core/Utilities/Editor/FileUtilities.cs | 77 - .../Utilities/Editor/FileUtilities.cs.meta | 11 - .../Utilities/Editor/GUIEnabledWrapper.cs | 40 - .../Editor/GUIEnabledWrapper.cs.meta | 11 - .../Core/Utilities/Editor/InputManagerAxis.cs | 27 - .../Utilities/Editor/InputManagerAxis.cs.meta | 11 - .../Utilities/Editor/InputManagerAxisType.cs | 15 - .../Editor/InputManagerAxisType.cs.meta | 11 - .../Editor/InputMappingAxisUtility.cs | 221 - .../Editor/InputMappingAxisUtility.cs.meta | 11 - .../Editor/MRTK.Editor.Utilities.asmdef | 18 - .../Editor/MRTK.Editor.Utilities.asmdef.meta | 7 - .../Editor/MixedRealityOptimizeUtils.cs | 229 - .../Editor/MixedRealityOptimizeUtils.cs.meta | 11 - .../Core/Utilities/Editor/Preferences.meta | 8 - .../Editor/Preferences/EditorPreferences.cs | 114 - .../Preferences/EditorPreferences.cs.meta | 11 - .../MixedRealityProjectPreferences.cs | 222 - .../MixedRealityProjectPreferences.cs.meta | 11 - .../Editor/Preferences/ProjectPreferences.cs | 213 - .../Preferences/ProjectPreferences.cs.meta | 11 - .../Preferences/SerializableDictionary.cs | 52 - .../SerializableDictionary.cs.meta | 11 - .../Core/Utilities/Editor/ScriptUtilities.cs | 51 - .../Utilities/Editor/ScriptUtilities.cs.meta | 11 - .../Editor/ScriptedImporterAssetReimporter.cs | 58 - .../ScriptedImporterAssetReimporter.cs.meta | 11 - .../MRTK/Core/Utilities/Editor/Setup.meta | 8 - .../Editor/Setup/MixedRealityToolkitFiles.cs | 599 - .../Setup/MixedRealityToolkitFiles.cs.meta | 11 - .../MixedRealityToolkitPreserveSettings.cs | 79 - ...ixedRealityToolkitPreserveSettings.cs.meta | 11 - .../Core/Utilities/Editor/SizeUtilities.cs | 88 - .../Utilities/Editor/SizeUtilities.cs.meta | 11 - .../Utilities/Editor/SpatializerUtilities.cs | 108 - .../Editor/SpatializerUtilities.cs.meta | 11 - .../MRTK/Core/Utilities/Editor/USB.meta | 10 - .../Utilities/Editor/USB/USBDeviceInfo.cs | 30 - .../Editor/USB/USBDeviceInfo.cs.meta | 11 - .../Utilities/Editor/USB/USBDeviceListener.cs | 40 - .../Editor/USB/USBDeviceListener.cs.meta | 11 - .../Utilities/Editor/XRSettingsUtilities.cs | 96 - .../Editor/XRSettingsUtilities.cs.meta | 11 - .../Assets/MRTK/Core/Utilities/Facades.meta | 8 - .../Core/Utilities/Facades/ServiceFacade.cs | 70 - .../Utilities/Facades/ServiceFacade.cs.meta | 11 - .../MRTK/Core/Utilities/FastSimplexNoise.cs | 501 - .../Core/Utilities/FastSimplexNoise.cs.meta | 11 - .../Core/Utilities/GameObjectManagement.meta | 8 - .../GameObjectManagement/GameObjectCreator.cs | 56 - .../GameObjectCreator.cs.meta | 11 - .../GameObjectManagement/GameObjectPool.cs | 190 - .../GameObjectPool.cs.meta | 11 - .../GenericPrefabInstanceCreator.cs | 30 - .../GenericPrefabInstanceCreator.cs.meta | 11 - .../IGameObjectCreatorListener.cs | 25 - .../IGameObjectCreatorListener.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Utilities/Gltf.meta | 8 - .../MRTK/Core/Utilities/Gltf/AssemblyInfo.cs | 11 - .../Core/Utilities/Gltf/AssemblyInfo.cs.meta | 11 - .../MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef | 14 - .../Core/Utilities/Gltf/MRTK.Gltf.asmdef.meta | 7 - .../MRTK/Core/Utilities/Gltf/Schema.meta | 8 - .../Utilities/Gltf/Schema/Extensions.meta | 8 - .../Gltf/Schema/Extensions/GltfExtension.cs | 10 - .../Schema/Extensions/GltfExtension.cs.meta | 11 - .../KHR_Materials_PbrSpecularGlossiness.cs | 17 - ...HR_Materials_PbrSpecularGlossiness.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfAccessor.cs | 104 - .../Gltf/Schema/GltfAccessor.cs.meta | 11 - .../Gltf/Schema/GltfAccessorAttributeType.cs | 20 - .../Schema/GltfAccessorAttributeType.cs.meta | 11 - .../Gltf/Schema/GltfAccessorSparse.cs | 34 - .../Gltf/Schema/GltfAccessorSparse.cs.meta | 11 - .../Gltf/Schema/GltfAccessorSparseIndices.cs | 35 - .../Schema/GltfAccessorSparseIndices.cs.meta | 11 - .../Gltf/Schema/GltfAccessorSparseValues.cs | 26 - .../Schema/GltfAccessorSparseValues.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfAlphaMode.cs | 16 - .../Gltf/Schema/GltfAlphaMode.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfAnimation.cs | 28 - .../Gltf/Schema/GltfAnimation.cs.meta | 11 - .../Gltf/Schema/GltfAnimationChannel.cs | 26 - .../Gltf/Schema/GltfAnimationChannel.cs.meta | 11 - .../Gltf/Schema/GltfAnimationChannelPath.cs | 20 - .../Schema/GltfAnimationChannelPath.cs.meta | 11 - .../Gltf/Schema/GltfAnimationChannelTarget.cs | 25 - .../Schema/GltfAnimationChannelTarget.cs.meta | 11 - .../Gltf/Schema/GltfAnimationSampler.cs | 39 - .../Gltf/Schema/GltfAnimationSampler.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfAssetInfo.cs | 35 - .../Gltf/Schema/GltfAssetInfo.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfBuffer.cs | 30 - .../Utilities/Gltf/Schema/GltfBuffer.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfBufferView.cs | 52 - .../Gltf/Schema/GltfBufferView.cs.meta | 11 - .../Gltf/Schema/GltfBufferViewTarget.cs | 16 - .../Gltf/Schema/GltfBufferViewTarget.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfCamera.cs | 35 - .../Utilities/Gltf/Schema/GltfCamera.cs.meta | 11 - .../Gltf/Schema/GltfCameraOrthographic.cs | 36 - .../Schema/GltfCameraOrthographic.cs.meta | 11 - .../Gltf/Schema/GltfCameraPerspective.cs | 43 - .../Gltf/Schema/GltfCameraPerspective.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfCameraType.cs | 15 - .../Gltf/Schema/GltfCameraType.cs.meta | 11 - .../Gltf/Schema/GltfChildOfRootProperty.cs | 21 - .../Schema/GltfChildOfRootProperty.cs.meta | 11 - .../Gltf/Schema/GltfComponentType.cs | 21 - .../Gltf/Schema/GltfComponentType.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfDrawMode.cs | 20 - .../Gltf/Schema/GltfDrawMode.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfImage.cs | 45 - .../Utilities/Gltf/Schema/GltfImage.cs.meta | 11 - .../Gltf/Schema/GltfInterpolationType.cs | 17 - .../Gltf/Schema/GltfInterpolationType.cs.meta | 11 - .../Schema/GltfMagnificationFilterMode.cs | 16 - .../GltfMagnificationFilterMode.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfMaterial.cs | 91 - .../Gltf/Schema/GltfMaterial.cs.meta | 11 - .../Gltf/Schema/GltfMaterialCommonConstant.cs | 29 - .../Schema/GltfMaterialCommonConstant.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfMesh.cs | 35 - .../Utilities/Gltf/Schema/GltfMesh.cs.meta | 11 - .../Gltf/Schema/GltfMeshPrimitive.cs | 63 - .../Gltf/Schema/GltfMeshPrimitive.cs.meta | 11 - .../Schema/GltfMeshPrimitiveAttributes.cs | 115 - .../GltfMeshPrimitiveAttributes.cs.meta | 11 - .../Gltf/Schema/GltfMinFilterMode.cs | 20 - .../Gltf/Schema/GltfMinFilterMode.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfNode.cs | 80 - .../Utilities/Gltf/Schema/GltfNode.cs.meta | 11 - .../Gltf/Schema/GltfNormalTextureInfo.cs | 21 - .../Gltf/Schema/GltfNormalTextureInfo.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfObject.cs | 143 - .../Utilities/Gltf/Schema/GltfObject.cs.meta | 11 - .../Gltf/Schema/GltfOcclusionTextureInfo.cs | 25 - .../Schema/GltfOcclusionTextureInfo.cs.meta | 11 - .../Gltf/Schema/GltfPbrMetallicRoughness.cs | 59 - .../Schema/GltfPbrMetallicRoughness.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfProperty.cs | 20 - .../Gltf/Schema/GltfProperty.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfSampler.cs | 36 - .../Utilities/Gltf/Schema/GltfSampler.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfScene.cs | 20 - .../Utilities/Gltf/Schema/GltfScene.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfSkin.cs | 34 - .../Utilities/Gltf/Schema/GltfSkin.cs.meta | 11 - .../Core/Utilities/Gltf/Schema/GltfTexture.cs | 31 - .../Utilities/Gltf/Schema/GltfTexture.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfTextureInfo.cs | 26 - .../Gltf/Schema/GltfTextureInfo.cs.meta | 11 - .../Utilities/Gltf/Schema/GltfWrapMode.cs | 17 - .../Gltf/Schema/GltfWrapMode.cs.meta | 11 - .../Core/Utilities/Gltf/Serialization.meta | 8 - .../Gltf/Serialization/ColliderType.cs | 13 - .../Gltf/Serialization/ColliderType.cs.meta | 11 - .../Gltf/Serialization/ConstructGltf.cs | 684 - .../Gltf/Serialization/ConstructGltf.cs.meta | 11 - .../Utilities/Gltf/Serialization/GltfAsset.cs | 29 - .../Gltf/Serialization/GltfAsset.cs.meta | 11 - .../Gltf/Serialization/GltfChunkType.cs | 11 - .../Gltf/Serialization/GltfChunkType.cs.meta | 11 - .../Gltf/Serialization/GltfConversions.cs | 524 - .../Serialization/GltfConversions.cs.meta | 11 - .../Gltf/Serialization/GltfUtility.cs | 455 - .../Gltf/Serialization/GltfUtility.cs.meta | 11 - .../Gltf/Serialization/Importers.meta | 8 - .../Serialization/Importers/AssemblyInfo.cs | 7 - .../Importers/AssemblyInfo.cs.meta | 11 - .../Importers/GlbAssetImporter.cs | 20 - .../Importers/GlbAssetImporter.cs.meta | 11 - .../Importers/GltfAssetImporter.cs | 20 - .../Importers/GltfAssetImporter.cs.meta | 11 - .../Importers/GltfEditorImporter.cs | 103 - .../Importers/GltfEditorImporter.cs.meta | 11 - .../Importers/MRTK.Gltf.Importers.asmdef | 19 - .../Importers/MRTK.Gltf.Importers.asmdef.meta | 7 - .../MRTK/Core/Utilities/InspectorFields.meta | 8 - .../InspectorFields/InspectorField.cs | 255 - .../InspectorFields/InspectorField.cs.meta | 11 - .../InspectorFields/InspectorFieldData.cs | 18 - .../InspectorFieldData.cs.meta | 11 - .../InspectorFields/InspectorGenericFields.cs | 89 - .../InspectorGenericFields.cs.meta | 11 - .../InspectorPropertySettings.cs | 38 - .../InspectorPropertySettings.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Utilities/Lines.meta | 10 - .../Core/Utilities/Lines/DataProviders.meta | 8 - .../BaseMixedRealityLineDataProvider.cs | 670 - .../BaseMixedRealityLineDataProvider.cs.meta | 11 - .../Lines/DataProviders/BezierDataProvider.cs | 130 - .../DataProviders/BezierDataProvider.cs.meta | 11 - .../Lines/DataProviders/BezierInertia.cs | 71 - .../Lines/DataProviders/BezierInertia.cs.meta | 11 - .../DataProviders/EllipseLineDataProvider.cs | 99 - .../EllipseLineDataProvider.cs.meta | 11 - .../ParabolaConstrainedLineDataProvider.cs | 96 - ...arabolaConstrainedLineDataProvider.cs.meta | 11 - .../DataProviders/ParabolaLineDataProvider.cs | 46 - .../ParabolaLineDataProvider.cs.meta | 11 - .../ParabolaPhysicalLineDataProvider.cs | 110 - .../ParabolaPhysicalLineDataProvider.cs.meta | 11 - .../RectangleLineDataProvider.cs | 185 - .../RectangleLineDataProvider.cs.meta | 11 - .../DataProviders/SimpleLineDataProvider.cs | 94 - .../SimpleLineDataProvider.cs.meta | 11 - .../Lines/DataProviders/SplineDataProvider.cs | 278 - .../DataProviders/SplineDataProvider.cs.meta | 11 - .../MRTK/Core/Utilities/Lines/LineFollower.cs | 126 - .../Core/Utilities/Lines/LineFollower.cs.meta | 11 - .../MRTK/Core/Utilities/Lines/LineUtility.cs | 221 - .../Core/Utilities/Lines/LineUtility.cs.meta | 11 - .../MRTK/Core/Utilities/Lines/Renderers.meta | 8 - .../Renderers/BaseMixedRealityLineRenderer.cs | 338 - .../BaseMixedRealityLineRenderer.cs.meta | 11 - .../Lines/Renderers/MeshLineRenderer.cs | 154 - .../Lines/Renderers/MeshLineRenderer.cs.meta | 11 - .../Renderers/MixedRealityLineRenderer.cs | 257 - .../MixedRealityLineRenderer.cs.meta | 14 - .../Renderers/ParticleSystemLineRenderer.cs | 234 - .../ParticleSystemLineRenderer.cs.meta | 11 - .../Lines/Renderers/StripMeshLineRenderer.cs | 209 - .../Renderers/StripMeshLineRenderer.cs.meta | 11 - .../Utilities/MaintainBorderLightWidth.cs | 78 - .../MaintainBorderLightWidth.cs.meta | 11 - .../MRTK/Core/Utilities/MathUtilities.cs | 550 - .../MRTK/Core/Utilities/MathUtilities.cs.meta | 11 - .../Assets/MRTK/Core/Utilities/Migration.meta | 8 - .../Utilities/Migration/IMigrationHandler.cs | 24 - .../Migration/IMigrationHandler.cs.meta | 11 - .../Core/Utilities/MixedRealityPlayspace.cs | 298 - .../Utilities/MixedRealityPlayspace.cs.meta | 11 - .../Utilities/MixedRealityServiceRegistry.cs | 434 - .../MixedRealityServiceRegistry.cs.meta | 11 - .../MRTK/Core/Utilities/OBJWriterUtility.cs | 139 - .../Core/Utilities/OBJWriterUtility.cs.meta | 11 - .../Assets/MRTK/Core/Utilities/Physics.meta | 8 - .../Utilities/Physics/BaseRayStabilizer.cs | 46 - .../Physics/BaseRayStabilizer.cs.meta | 11 - .../Core/Utilities/Physics/Distorters.meta | 10 - .../Utilities/Physics/Distorters/Distorter.cs | 92 - .../Physics/Distorters/Distorter.cs.meta | 11 - .../Physics/Distorters/DistorterBulge.cs | 122 - .../Physics/Distorters/DistorterBulge.cs.meta | 11 - .../Physics/Distorters/DistorterGravity.cs | 95 - .../Distorters/DistorterGravity.cs.meta | 11 - .../Physics/Distorters/DistorterSimplex.cs | 101 - .../Distorters/DistorterSimplex.cs.meta | 11 - .../Physics/Distorters/DistorterSphere.cs | 52 - .../Distorters/DistorterSphere.cs.meta | 11 - .../Physics/Distorters/DistorterWiggly.cs | 107 - .../Distorters/DistorterWiggly.cs.meta | 11 - .../Core/Utilities/Physics/GazeStabilizer.cs | 121 - .../Utilities/Physics/GazeStabilizer.cs.meta | 11 - .../Physics/InterpolationUtilities.cs | 56 - .../Physics/InterpolationUtilities.cs.meta | 11 - .../Core/Utilities/Physics/Interpolator.cs | 455 - .../Utilities/Physics/Interpolator.cs.meta | 11 - .../Physics/MixedRealityRaycaster.cs | 264 - .../Physics/MixedRealityRaycaster.cs.meta | 11 - .../Physics/RaycastResultComparer.cs | 79 - .../Physics/RaycastResultComparer.cs.meta | 11 - .../Physics/VectorRollingStatistics.cs | 216 - .../Physics/VectorRollingStatistics.cs.meta | 11 - .../MRTK/Core/Utilities/PlatformUtility.cs | 139 - .../Core/Utilities/PlatformUtility.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Utilities/README.md | 3 - .../Assets/MRTK/Core/Utilities/README.md.meta | 7 - .../Assets/MRTK/Core/Utilities/Rendering.meta | 8 - .../Rendering/DepthBufferRenderer.cs | 86 - .../Rendering/DepthBufferRenderer.cs.meta | 11 - .../Utilities/Rendering/MaterialInstance.cs | 352 - .../Rendering/MaterialInstance.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Utilities/Scenes.meta | 8 - .../Core/Utilities/Scenes/EditorSceneUtils.cs | 501 - .../Utilities/Scenes/EditorSceneUtils.cs.meta | 11 - .../Utilities/Scenes/RuntimeSceneUtils.cs | 87 - .../Scenes/RuntimeSceneUtils.cs.meta | 11 - .../Utilities/Scenes/SerializedObjectUtils.cs | 179 - .../Scenes/SerializedObjectUtils.cs.meta | 11 - .../MRTK/Core/Utilities/ScriptingUtilities.cs | 70 - .../Core/Utilities/ScriptingUtilities.cs.meta | 11 - .../MRTK/Core/Utilities/StabilizedRay.cs | 102 - .../MRTK/Core/Utilities/StabilizedRay.cs.meta | 11 - .../MRTK/Core/Utilities/StandardShader.meta | 8 - .../StandardShader/BaseMeshOutline.cs | 72 - .../StandardShader/BaseMeshOutline.cs.meta | 11 - .../Utilities/StandardShader/ClippingBox.cs | 68 - .../StandardShader/ClippingBox.cs.meta | 11 - .../Utilities/StandardShader/ClippingPlane.cs | 63 - .../StandardShader/ClippingPlane.cs.meta | 11 - .../StandardShader/ClippingPrimitive.cs | 325 - .../StandardShader/ClippingPrimitive.cs.meta | 11 - .../StandardShader/ClippingSphere.cs | 72 - .../StandardShader/ClippingSphere.cs.meta | 11 - .../Utilities/StandardShader/HoverLight.cs | 184 - .../StandardShader/HoverLight.cs.meta | 11 - .../Utilities/StandardShader/MeshOutline.cs | 147 - .../StandardShader/MeshOutline.cs.meta | 11 - .../StandardShader/MeshOutlineHierarchy.cs | 87 - .../MeshOutlineHierarchy.cs.meta | 11 - .../Utilities/StandardShader/MeshSmoother.cs | 242 - .../StandardShader/MeshSmoother.cs.meta | 11 - .../StandardShader/ProximityLight.cs | 316 - .../StandardShader/ProximityLight.cs.meta | 11 - .../StandardShader/StandardShaderUtility.cs | 61 - .../StandardShaderUtility.cs.meta | 11 - .../MRTK/Core/Utilities/TypeCacheUtility.cs | 50 - .../Core/Utilities/TypeCacheUtility.cs.meta | 11 - .../MRTK/Core/Utilities/WebRequestRest.meta | 10 - .../Core/Utilities/WebRequestRest/Response.cs | 58 - .../Utilities/WebRequestRest/Response.cs.meta | 11 - .../Core/Utilities/WebRequestRest/Rest.cs | 285 - .../Utilities/WebRequestRest/Rest.cs.meta | 11 - .../MRTK/Core/Utilities/WindowsApiChecker.cs | 136 - .../Core/Utilities/WindowsApiChecker.cs.meta | 11 - .../Core/Utilities/WindowsDevicePortal.meta | 10 - .../WindowsDevicePortal/DataStructures.meta | 10 - .../DataStructures/ActivePowerSchemeInfo.cs | 13 - .../ActivePowerSchemeInfo.cs.meta | 11 - .../DataStructures/AdapterInfo.cs | 20 - .../DataStructures/AdapterInfo.cs.meta | 11 - .../DataStructures/ApplicationInfo.cs | 18 - .../DataStructures/ApplicationInfo.cs.meta | 11 - .../DataStructures/AvailableWiFiNetworks.cs | 13 - .../AvailableWiFiNetworks.cs.meta | 11 - .../DataStructures/BatteryInfo.cs | 46 - .../DataStructures/BatteryInfo.cs.meta | 11 - .../DataStructures/DHCPInfo.cs | 15 - .../DataStructures/DHCPInfo.cs.meta | 11 - .../DataStructures/DeviceInfo.cs | 99 - .../DataStructures/DeviceInfo.cs.meta | 11 - .../DataStructures/DeviceOsInfo.cs | 17 - .../DataStructures/DeviceOsInfo.cs.meta | 11 - .../DataStructures/DevicePortalConnections.cs | 38 - .../DevicePortalConnections.cs.meta | 11 - .../DataStructures/FileInfo.cs | 32 - .../DataStructures/FileInfo.cs.meta | 11 - .../DataStructures/FileList.cs | 13 - .../DataStructures/FileList.cs.meta | 11 - .../DataStructures/InstallStatus.cs | 16 - .../DataStructures/InstallStatus.cs.meta | 11 - .../DataStructures/InstalledApps.cs | 13 - .../DataStructures/InstalledApps.cs.meta | 11 - .../DataStructures/InterfaceInfo.cs | 16 - .../DataStructures/InterfaceInfo.cs.meta | 11 - .../DataStructures/IpAddressInfo.cs | 14 - .../DataStructures/IpAddressInfo.cs.meta | 11 - .../DataStructures/IpConfigInfo.cs | 13 - .../DataStructures/IpConfigInfo.cs.meta | 11 - .../DataStructures/MachineName.cs | 13 - .../DataStructures/MachineName.cs.meta | 11 - .../DataStructures/NetworkInterfaces.cs | 13 - .../DataStructures/NetworkInterfaces.cs.meta | 11 - .../DataStructures/NetworkProfileInfo.cs | 15 - .../DataStructures/NetworkProfileInfo.cs.meta | 11 - .../DataStructures/PowerStateInfo.cs | 14 - .../DataStructures/PowerStateInfo.cs.meta | 11 - .../DataStructures/ProcessInfo.cs | 21 - .../DataStructures/ProcessInfo.cs.meta | 11 - .../DataStructures/ProcessList.cs | 13 - .../DataStructures/ProcessList.cs.meta | 11 - .../DataStructures/WirelessNetworkInfo.cs | 31 - .../WirelessNetworkInfo.cs.meta | 11 - .../WindowsDevicePortal/DevicePortal.cs | 908 - .../WindowsDevicePortal/DevicePortal.cs.meta | 11 - .../MRTK/Core/Utilities/XRSubsystemHelpers.cs | 116 - .../Core/Utilities/XRSubsystemHelpers.cs.meta | 11 - AR-ROS/Assets/MRTK/Core/Version.txt | 1 - AR-ROS/Assets/MRTK/Core/Version.txt.meta | 7 - AR-ROS/Assets/MRTK/Core/WhereToStart.txt | 3 - AR-ROS/Assets/MRTK/Core/WhereToStart.txt.meta | 7 - AR-ROS/Assets/MRTK/Core/toc.yml | 11 - AR-ROS/Assets/MRTK/Core/toc.yml.meta | 7 - AR-ROS/Assets/MRTK/Providers.meta | 8 - AR-ROS/Assets/MRTK/Providers/LeapMotion.meta | 8 - .../MRTK/Providers/LeapMotion/AssemblyInfo.cs | 7 - .../Providers/LeapMotion/AssemblyInfo.cs.meta | 11 - .../Providers/LeapMotion/Definitions.meta | 8 - .../Definitions/LeapControllerOrientation.cs | 22 - .../LeapControllerOrientation.cs.meta | 11 - .../Definitions/LeapVRDeviceOffsetMode.cs | 30 - .../LeapVRDeviceOffsetMode.cs.meta | 11 - .../MRTK/Providers/LeapMotion/Editor.meta | 8 - .../LeapMotion/Editor/AssemblyInfo.cs | 7 - .../LeapMotion/Editor/AssemblyInfo.cs.meta | 11 - .../Editor/LeapMotionConfigurationChecker.cs | 464 - .../LeapMotionConfigurationChecker.cs.meta | 11 - ...LeapMotionDeviceManagerProfileInspector.cs | 140 - ...otionDeviceManagerProfileInspector.cs.meta | 11 - .../LeapMotion/Editor/LeapMotionUtilities.cs | 36 - .../Editor/LeapMotionUtilities.cs.meta | 11 - .../Editor/MRTK.LeapMotion.Editor.asmdef | 19 - .../Editor/MRTK.LeapMotion.Editor.asmdef.meta | 7 - .../LeapMotion/LeapMotionArticulatedHand.cs | 298 - .../LeapMotionArticulatedHand.cs.meta | 11 - .../LeapMotion/LeapMotionDeviceManager.cs | 335 - .../LeapMotionDeviceManager.cs.meta | 11 - .../LeapMotionDeviceManagerProfile.cs | 163 - .../LeapMotionDeviceManagerProfile.cs.meta | 11 - .../LeapMotion/MRTK.LeapMotion.asmdef | 21 - .../LeapMotion/MRTK.LeapMotion.asmdef.meta | 7 - .../MRTK/Providers/LeapMotion/Profiles.meta | 8 - ...efaultLeapMotionConfigurationProfile.asset | 56 - ...tLeapMotionConfigurationProfile.asset.meta | 8 - .../DefaultLeapMotionInputSystemProfile.asset | 113 - ...ultLeapMotionInputSystemProfile.asset.meta | 8 - .../LeapMotionDeviceManagerProfile.asset | 24 - .../LeapMotionDeviceManagerProfile.asset.meta | 8 - AR-ROS/Assets/MRTK/Providers/License.txt | 21 - AR-ROS/Assets/MRTK/Providers/License.txt.meta | 7 - .../MRTK/Providers/MRTK.Providers.sentinel | 0 .../Providers/MRTK.Providers.sentinel.meta | 7 - AR-ROS/Assets/MRTK/Providers/Oculus.meta | 8 - .../Assets/MRTK/Providers/Oculus/XRSDK.meta | 8 - .../Providers/Oculus/XRSDK/AssemblyInfo.cs | 7 - .../Oculus/XRSDK/AssemblyInfo.cs.meta | 11 - .../Providers/Oculus/XRSDK/Controllers.meta | 8 - .../Controllers/OculusXRSDKTouchController.cs | 133 - .../OculusXRSDKTouchController.cs.meta | 11 - .../Providers/Oculus/XRSDK/MRTK-Quest.meta | 8 - .../Oculus/XRSDK/MRTK-Quest/Art.meta | 8 - .../Oculus/XRSDK/MRTK-Quest/Art/Branding.meta | 8 - .../Art/Branding/MRTK-Quest_Logo.png | Bin 67107 -> 0 bytes .../Art/Branding/MRTK-Quest_Logo.png.meta | 92 - .../XRSDK/MRTK-Quest/Art/Materials.meta | 8 - .../Art/Materials/HandMeshOutline.mat | 97 - .../Art/Materials/HandMeshOutline.mat.meta | 8 - .../Oculus/XRSDK/MRTK-Quest/Art/Shaders.meta | 8 - .../MRTK-Quest/Art/Shaders/RimOutline.shader | 114 - .../Art/Shaders/RimOutline.shader.meta | 9 - .../Oculus/XRSDK/MRTK-Quest/Editor.meta | 8 - .../XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs | 7 - .../MRTK-Quest/Editor/AssemblyInfo.cs.meta | 11 - .../Editor/MRTK.Oculus.Hands.Editor.asmdef | 22 - .../MRTK.Oculus.Hands.Editor.asmdef.meta | 7 - ...usXRSDKHandtrackingConfigurationChecker.cs | 271 - ...DKHandtrackingConfigurationChecker.cs.meta | 11 - .../Oculus/XRSDK/MRTK-Quest/License.txt | 81 - .../Oculus/XRSDK/MRTK-Quest/License.txt.meta | 7 - .../Oculus/XRSDK/MRTK-Quest/Prefabs.meta | 8 - .../Prefabs/MRTK-Quest_HandsPrefab.prefab | 69 - .../MRTK-Quest_HandsPrefab.prefab.meta | 7 - .../Prefabs/MRTK-Quest_LocalAvatar.prefab | 95 - .../MRTK-Quest_LocalAvatar.prefab.meta | 7 - .../Prefabs/MRTK-Quest_OVRCameraRig.prefab | 380 - .../MRTK-Quest_OVRCameraRig.prefab.meta | 7 - .../Oculus/XRSDK/MRTK-Quest/Scripts.meta | 8 - .../XRSDK/MRTK-Quest/Scripts/Input.meta | 8 - .../MRTK-Quest/Scripts/Input/Controllers.meta | 8 - .../Scripts/Input/Controllers/OculusHand.cs | 585 - .../Input/Controllers/OculusHand.cs.meta | 11 - .../Providers/Oculus/XRSDK/MRTK.Oculus.asmdef | 33 - .../Oculus/XRSDK/MRTK.Oculus.asmdef.meta | 7 - .../Oculus/XRSDK/OculusXRSDKDeviceManager.cs | 348 - .../XRSDK/OculusXRSDKDeviceManager.cs.meta | 11 - .../XRSDK/OculusXRSDKDeviceManagerProfile.cs | 247 - .../OculusXRSDKDeviceManagerProfile.cs.meta | 14 - .../MRTK/Providers/Oculus/XRSDK/Profiles.meta | 8 - AR-ROS/Assets/MRTK/Providers/OpenVR.meta | 8 - .../MRTK/Providers/OpenVR/AssemblyInfo.cs | 7 - .../Providers/OpenVR/AssemblyInfo.cs.meta | 11 - .../OpenVR/GenericOpenVRController.cs | 304 - .../OpenVR/GenericOpenVRController.cs.meta | 11 - .../Assets/MRTK/Providers/OpenVR/Headers.meta | 8 - .../Providers/OpenVR/Headers/openvr_api.cs | 6300 --- .../OpenVR/Headers/openvr_api.cs.meta | 11 - .../MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef | 20 - .../Providers/OpenVR/MRTK.OpenVR.asmdef.meta | 7 - .../OpenVR/OculusRemoteController.cs | 32 - .../OpenVR/OculusRemoteController.cs.meta | 11 - .../Providers/OpenVR/OculusTouchController.cs | 66 - .../OpenVR/OculusTouchController.cs.meta | 11 - .../Providers/OpenVR/OpenVRDeviceManager.cs | 209 - .../OpenVR/OpenVRDeviceManager.cs.meta | 11 - .../Providers/OpenVR/OpenVRRenderModel.cs | 446 - .../OpenVR/OpenVRRenderModel.cs.meta | 11 - .../OpenVR/ViveKnucklesController.cs | 62 - .../OpenVR/ViveKnucklesController.cs.meta | 11 - .../Providers/OpenVR/ViveWandController.cs | 52 - .../OpenVR/ViveWandController.cs.meta | 11 - ...ndowsMixedRealityOpenVRMotionController.cs | 65 - ...MixedRealityOpenVRMotionController.cs.meta | 11 - AR-ROS/Assets/MRTK/Providers/UnityAR.meta | 8 - .../MRTK/Providers/UnityAR/AssemblyInfo.cs | 7 - .../Providers/UnityAR/AssemblyInfo.cs.meta | 11 - .../MRTK/Providers/UnityAR/Definitions.meta | 8 - .../UnityAR/Definitions/ArTrackedPose.cs | 46 - .../UnityAR/Definitions/ArTrackedPose.cs.meta | 11 - .../UnityAR/Definitions/ArTrackingType.cs | 26 - .../Definitions/ArTrackingType.cs.meta | 11 - .../UnityAR/Definitions/ArUpdateType.cs | 26 - .../UnityAR/Definitions/ArUpdateType.cs.meta | 11 - .../Assets/MRTK/Providers/UnityAR/Editor.meta | 8 - .../Providers/UnityAR/Editor/AssemblyInfo.cs | 7 - .../UnityAR/Editor/AssemblyInfo.cs.meta | 11 - .../UnityAR/Editor/MRTK.UnityAR.Editor.asmdef | 19 - .../Editor/MRTK.UnityAR.Editor.asmdef.meta | 7 - .../UnityARCameraSettingsProfileInspector.cs | 61 - ...tyARCameraSettingsProfileInspector.cs.meta | 11 - .../Editor/UnityARConfigurationChecker.cs | 45 - .../UnityARConfigurationChecker.cs.meta | 11 - .../Providers/UnityAR/MRTK.UnityAR.asmdef | 22 - .../UnityAR/MRTK.UnityAR.asmdef.meta | 7 - ...edReality.Toolkit.Providers.UnityAR.nuspec | 32 - ...lity.Toolkit.Providers.UnityAR.nuspec.meta | 7 - .../MRTK/Providers/UnityAR/Profiles.meta | 8 - .../DefaultUnityARCameraSettingsProfile.asset | 18 - ...ultUnityARCameraSettingsProfile.asset.meta | 8 - .../Assets/MRTK/Providers/UnityAR/README.md | 3 - .../MRTK/Providers/UnityAR/README.md.meta | 7 - .../UnityAR/UnityARCameraSettings.cs | 219 - .../UnityAR/UnityARCameraSettings.cs.meta | 11 - .../UnityAR/UnityARCameraSettingsProfile.cs | 47 - .../UnityARCameraSettingsProfile.cs.meta | 11 - .../MRTK/Providers/UnityAR/Utilities.meta | 8 - .../UnityAR/Utilities/ArEnumConversion.cs | 95 - .../Utilities/ArEnumConversion.cs.meta | 11 - AR-ROS/Assets/MRTK/Providers/Version.txt | 1 - AR-ROS/Assets/MRTK/Providers/Version.txt.meta | 7 - AR-ROS/Assets/MRTK/Providers/Windows.meta | 8 - .../MRTK/Providers/Windows/AssemblyInfo.cs | 7 - .../Providers/Windows/AssemblyInfo.cs.meta | 11 - .../Windows/MRTK.WindowsVoice.asmdef | 20 - .../Windows/MRTK.WindowsVoice.asmdef.meta | 7 - .../Windows/WindowsDictationInputProvider.cs | 431 - .../WindowsDictationInputProvider.cs.meta | 11 - .../Windows/WindowsSpeechInputProvider.cs | 242 - .../WindowsSpeechInputProvider.cs.meta | 11 - .../MRTK/Providers/WindowsMixedReality.meta | 8 - .../Providers/WindowsMixedReality/Shared.meta | 8 - .../Shared/AssemblyInfo.cs | 7 - .../Shared/AssemblyInfo.cs.meta | 11 - .../BaseWindowsMixedRealityCameraSettings.cs | 106 - ...eWindowsMixedRealityCameraSettings.cs.meta | 11 - .../Shared/Definitions.meta | 8 - .../HolographicDepthReprojectionMethod.cs | 21 - ...HolographicDepthReprojectionMethod.cs.meta | 11 - .../IWindowsMixedRealityUtilitiesProvider.cs | 28 - ...ndowsMixedRealityUtilitiesProvider.cs.meta | 11 - .../WindowsMixedReality/Shared/Editor.meta | 8 - .../Shared/Editor/AssemblyInfo.cs | 7 - .../Shared/Editor/AssemblyInfo.cs.meta | 11 - .../Shared/Editor/MRTK.WMR.Editor.asmdef | 20 - .../Shared/Editor/MRTK.WMR.Editor.asmdef.meta | 7 - ...edRealityCameraSettingsProfileInspector.cs | 75 - ...lityCameraSettingsProfileInspector.cs.meta | 11 - ...WindowsMixedRealityConfigurationChecker.cs | 35 - ...wsMixedRealityConfigurationChecker.cs.meta | 11 - .../Shared/Extensions.meta | 8 - .../Shared/Extensions/WindowsExtensions.cs | 42 - .../Extensions/WindowsExtensions.cs.meta | 11 - .../Shared/MRTK.WMR.Shared.asmdef | 19 - .../Shared/MRTK.WMR.Shared.asmdef.meta | 7 - .../WindowsMixedReality/Shared/Profiles.meta | 8 - ...owsMixedRealityCameraSettingsProfile.asset | 17 - ...xedRealityCameraSettingsProfile.asset.meta | 8 - ...wsMixedRealityArticulatedHandDefinition.cs | 197 - ...edRealityArticulatedHandDefinition.cs.meta | 11 - ...indowsMixedRealityCameraSettingsProfile.cs | 39 - ...sMixedRealityCameraSettingsProfile.cs.meta | 11 - .../WindowsMixedRealityHandMeshProvider.cs | 197 - ...indowsMixedRealityHandMeshProvider.cs.meta | 11 - .../Shared/WindowsMixedRealityHandRecorder.cs | 87 - .../WindowsMixedRealityHandRecorder.cs.meta | 11 - .../WindowsMixedRealityReprojectionUpdater.cs | 77 - ...owsMixedRealityReprojectionUpdater.cs.meta | 11 - .../Shared/WindowsMixedRealityUtilities.cs | 137 - .../WindowsMixedRealityUtilities.cs.meta | 11 - .../Providers/WindowsMixedReality/XR2018.meta | 8 - .../XR2018/AssemblyInfo.cs | 7 - .../XR2018/AssemblyInfo.cs.meta | 11 - .../XR2018/Controllers.meta | 8 - .../BaseWindowsMixedRealitySource.cs | 387 - .../BaseWindowsMixedRealitySource.cs.meta | 11 - .../WindowsMixedRealityArticulatedHand.cs | 264 - ...WindowsMixedRealityArticulatedHand.cs.meta | 11 - .../WindowsMixedRealityController.cs | 379 - .../WindowsMixedRealityController.cs.meta | 11 - .../Controllers/WindowsMixedRealityGGVHand.cs | 30 - .../WindowsMixedRealityGGVHand.cs.meta | 11 - .../XR2018/Definitions.meta | 8 - .../Definitions/HolographicFrameNativeData.cs | 41 - .../HolographicFrameNativeData.cs.meta | 11 - .../XR2018/Extensions.meta | 8 - .../Extensions/GestureRecognizerExtensions.cs | 27 - .../GestureRecognizerExtensions.cs.meta | 11 - .../Extensions/InteractionSourceExtensions.cs | 54 - .../InteractionSourceExtensions.cs.meta | 11 - .../XR2018/MRTK.WMR.asmdef | 21 - .../XR2018/MRTK.WMR.asmdef.meta | 7 - .../WindowsMixedRealityCameraSettings.cs | 44 - .../WindowsMixedRealityCameraSettings.cs.meta | 11 - .../WindowsMixedRealityDeviceManager.cs | 977 - .../WindowsMixedRealityDeviceManager.cs.meta | 11 - .../WindowsMixedRealityEyeGazeDataProvider.cs | 331 - ...owsMixedRealityEyeGazeDataProvider.cs.meta | 11 - .../WindowsMixedRealitySpatialMeshObserver.cs | 718 - ...owsMixedRealitySpatialMeshObserver.cs.meta | 11 - .../WindowsMixedRealityUtilitiesProvider.cs | 37 - ...ndowsMixedRealityUtilitiesProvider.cs.meta | 11 - .../WindowsMixedReality/XR2018/csc.rsp | 1 - .../WindowsMixedReality/XR2018/csc.rsp.meta | 7 - .../Providers/WindowsMixedReality/XRSDK.meta | 8 - .../WindowsMixedReality/XRSDK/AssemblyInfo.cs | 7 - .../XRSDK/AssemblyInfo.cs.meta | 11 - .../XRSDK/Controllers.meta | 8 - .../BaseWindowsMixedRealityXRSDKSource.cs | 69 - ...BaseWindowsMixedRealityXRSDKSource.cs.meta | 11 - ...WindowsMixedRealityXRSDKArticulatedHand.cs | 188 - ...wsMixedRealityXRSDKArticulatedHand.cs.meta | 11 - .../WindowsMixedRealityXRSDKGGVHand.cs | 30 - .../WindowsMixedRealityXRSDKGGVHand.cs.meta | 11 - ...indowsMixedRealityXRSDKMotionController.cs | 135 - ...sMixedRealityXRSDKMotionController.cs.meta | 11 - .../XRSDK/MRTK.WMR.XRSDK.asmdef | 31 - .../XRSDK/MRTK.WMR.XRSDK.asmdef.meta | 7 - .../WindowsMixedRealityCameraSettings.cs | 42 - .../WindowsMixedRealityCameraSettings.cs.meta | 11 - .../XRSDK/WindowsMixedRealityDeviceManager.cs | 193 - .../WindowsMixedRealityDeviceManager.cs.meta | 11 - .../WindowsMixedRealitySpatialMeshObserver.cs | 75 - ...owsMixedRealitySpatialMeshObserver.cs.meta | 11 - ...SDKWindowsMixedRealityUtilitiesProvider.cs | 34 - ...ndowsMixedRealityUtilitiesProvider.cs.meta | 11 - AR-ROS/Assets/MRTK/Providers/XRSDK.meta | 8 - .../MRTK/Providers/XRSDK/AssemblyInfo.cs | 7 - .../MRTK/Providers/XRSDK/AssemblyInfo.cs.meta | 11 - .../MRTK/Providers/XRSDK/Controllers.meta | 8 - .../Controllers/GenericXRSDKController.cs | 360 - .../GenericXRSDKController.cs.meta | 11 - .../MRTK/Providers/XRSDK/CustomUsages.cs | 25 - .../MRTK/Providers/XRSDK/CustomUsages.cs.meta | 11 - .../XRSDK/GenericXRSDKCameraSettings.cs | 75 - .../XRSDK/GenericXRSDKCameraSettings.cs.meta | 11 - .../XRSDK/GenericXRSDKSpatialMeshObserver.cs | 548 - .../GenericXRSDKSpatialMeshObserver.cs.meta | 11 - .../MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef | 24 - .../Providers/XRSDK/MRTK.XRSDK.asmdef.meta | 7 - .../Assets/MRTK/Providers/XRSDK/Profiles.meta | 8 - .../Providers/XRSDK/XRSDKBoundarySystem.cs | 101 - .../XRSDK/XRSDKBoundarySystem.cs.meta | 11 - .../Providers/XRSDK/XRSDKDeviceManager.cs | 252 - .../XRSDK/XRSDKDeviceManager.cs.meta | 11 - .../Providers/XRSDK/XRSDKSubsystemHelpers.cs | 31 - .../XRSDK/XRSDKSubsystemHelpers.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK.meta | 8 - AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs | 7 - AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Editor.meta | 8 - AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs | 7 - .../MRTK/SDK/Editor/AssemblyInfo.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Editor/Inspectors.meta | 8 - .../MRTK/SDK/Editor/Inspectors/Dwell.meta | 8 - .../Inspectors/Dwell/DwellHandlerInspector.cs | 35 - .../Dwell/DwellHandlerInspector.cs.meta | 11 - .../MRTK/SDK/Editor/Inspectors/Input.meta | 8 - .../SDK/Editor/Inspectors/Input/Handlers.meta | 8 - .../Handlers/BaseInputHandlerInspector.cs | 54 - .../BaseInputHandlerInspector.cs.meta | 11 - .../ControllerPoseSynchronizerInspector.cs | 84 - ...ontrollerPoseSynchronizerInspector.cs.meta | 11 - ...xedRealityControllerVisualizerInspector.cs | 10 - ...alityControllerVisualizerInspector.cs.meta | 12 - .../Handlers/SpeechInputHandlerInspector.cs | 223 - .../SpeechInputHandlerInspector.cs.meta | 11 - .../Assets/MRTK/SDK/Editor/Inspectors/UX.meta | 8 - .../SDK/Editor/Inspectors/UX/BoundingBox.meta | 8 - .../UX/BoundingBox/BoundingBoxInspector.cs | 53 - .../BoundingBox/BoundingBoxInspector.cs.meta | 11 - .../Editor/Inspectors/UX/BoundsControl.meta | 8 - .../BoundsControl/BoundsControlInspector.cs | 221 - .../BoundsControlInspector.cs.meta | 11 - .../SDK/Editor/Inspectors/UX/Collections.meta | 8 - .../UX/Collections/BaseCollectionInspector.cs | 44 - .../BaseCollectionInspector.cs.meta | 11 - .../GridObjectCollectionInspector.cs | 106 - .../GridObjectCollectionInspector.cs.meta | 11 - .../SDK/Editor/Inspectors/UX/Constraints.meta | 8 - .../Constraints/ConstraintManagerInspector.cs | 366 - .../ConstraintManagerInspector.cs.meta | 11 - .../Editor/Inspectors/UX/Interactable.meta | 8 - .../ButtonConfigHelperInspector.cs | 399 - .../ButtonConfigHelperInspector.cs.meta | 11 - .../InteractableEventInspector.cs | 121 - .../InteractableEventInspector.cs.meta | 11 - .../UX/Interactable/InteractableInspector.cs | 628 - .../InteractableInspector.cs.meta | 13 - .../InteractableOnFocusInspector.cs | 97 - .../InteractableOnFocusInspector.cs.meta | 11 - .../InteractableReceiverInspector.cs | 32 - .../InteractableReceiverInspector.cs.meta | 11 - .../InteractableReceiverListInspector.cs | 66 - .../InteractableReceiverListInspector.cs.meta | 11 - .../InteractableToggleCollectionInspector.cs | 65 - ...eractableToggleCollectionInspector.cs.meta | 11 - .../Interactable/PressableButtonInspector.cs | 453 - .../PressableButtonInspector.cs.meta | 11 - .../Inspectors/UX/ManipulationHandler.meta | 8 - .../ManipulationHandlerInspector.cs | 173 - .../ManipulationHandlerInspector.cs.meta | 11 - .../Inspectors/UX/ObjectManipulator.meta | 8 - .../ObjectManipulatorInspector.cs | 197 - .../ObjectManipulatorInspector.cs.meta | 11 - .../SDK/Editor/Inspectors/UX/Pointers.meta | 8 - .../BaseControllerPointerInspector.cs | 92 - .../BaseControllerPointerInspector.cs.meta | 11 - .../UX/Pointers/BaseMousePointerInspector.cs | 52 - .../BaseMousePointerInspector.cs.meta | 11 - .../UX/Pointers/LinePointerInspector.cs | 67 - .../UX/Pointers/LinePointerInspector.cs.meta | 11 - .../ParabolicTeleportPointerInspector.cs | 48 - .../ParabolicTeleportPointerInspector.cs.meta | 11 - .../UX/Pointers/SpherePointerInspector.cs | 68 - .../Pointers/SpherePointerInspector.cs.meta | 11 - .../UX/Pointers/TeleportPointerInspector.cs | 84 - .../Pointers/TeleportPointerInspector.cs.meta | 11 - .../UX/ScrollingObjectCollection.meta | 8 - .../ScrollingObjectCollectionInspector.cs | 550 - ...ScrollingObjectCollectionInspector.cs.meta | 11 - .../SDK/Editor/Inspectors/UX/Sliders.meta | 8 - .../UX/Sliders/PinchSliderInspector.cs | 80 - .../UX/Sliders/PinchSliderInspector.cs.meta | 11 - .../SDK/Editor/Inspectors/UX/Tooltips.meta | 8 - .../UX/Tooltips/ToolTipConnectorInspector.cs | 280 - .../ToolTipConnectorInspector.cs.meta | 11 - .../UX/Tooltips/ToolTipInspector.cs | 311 - .../UX/Tooltips/ToolTipInspector.cs.meta | 11 - .../Editor/Inspectors/UX/VisualThemes.meta | 8 - .../UX/VisualThemes/StatesInspector.cs | 105 - .../UX/VisualThemes/StatesInspector.cs.meta | 13 - .../UX/VisualThemes/ThemeInspector.cs | 630 - .../UX/VisualThemes/ThemeInspector.cs.meta | 13 - .../MRTK/SDK/Editor/Inspectors/Utilities.meta | 8 - .../Editor/Inspectors/Utilities/Solvers.meta | 8 - .../Solvers/ControllerFinderInspector.cs | 35 - .../Solvers/ControllerFinderInspector.cs.meta | 11 - .../Utilities/Solvers/InBetweenInspector.cs | 55 - .../Solvers/InBetweenInspector.cs.meta | 11 - .../Solvers/SolverHandlerInspector.cs | 95 - .../Solvers/SolverHandlerInspector.cs.meta | 11 - .../Utilities/Solvers/SolverInspector.cs | 47 - .../Utilities/Solvers/SolverInspector.cs.meta | 11 - .../Solvers/SurfaceMagnetismInspector.cs | 137 - .../Solvers/SurfaceMagnetismInspector.cs.meta | 11 - .../Utilities/Solvers/TapToPlaceInspector.cs | 126 - .../Solvers/TapToPlaceInspector.cs.meta | 11 - .../MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef | 19 - .../SDK/Editor/MRTK.SDK.Editor.asmdef.meta | 7 - AR-ROS/Assets/MRTK/SDK/Editor/Migration.meta | 8 - .../BoundsControlMigrationHandler.cs | 313 - .../BoundsControlMigrationHandler.cs.meta | 11 - .../ButtonConfigHelperMigrationHandler.cs | 28 - ...ButtonConfigHelperMigrationHandler.cs.meta | 11 - .../ObjectManipulatorMigrationHandler.cs | 195 - .../ObjectManipulatorMigrationHandler.cs.meta | 11 - .../MRTK/SDK/Editor/Migration/Tools.meta | 8 - .../Editor/Migration/Tools/MigrationTool.cs | 499 - .../Migration/Tools/MigrationTool.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Experimental.meta | 8 - .../MRTK/SDK/Experimental/ColorPicker.meta | 8 - .../Experimental/ColorPicker/ColorPicker.cs | 345 - .../ColorPicker/ColorPicker.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Experimental/Dock.meta | 8 - .../Assets/MRTK/SDK/Experimental/Dock/Dock.cs | 157 - .../MRTK/SDK/Experimental/Dock/Dock.cs.meta | 11 - .../SDK/Experimental/Dock/DockPosition.cs | 76 - .../Experimental/Dock/DockPosition.cs.meta | 11 - .../MRTK/SDK/Experimental/Dock/Dockable.cs | 311 - .../SDK/Experimental/Dock/Dockable.cs.meta | 11 - .../SDK/Experimental/Dock/DockingState.cs | 16 - .../Experimental/Dock/DockingState.cs.meta | 11 - .../Assets/MRTK/SDK/Experimental/Editor.meta | 8 - .../SDK/Experimental/Editor/AssemblyInfo.cs | 7 - .../Experimental/Editor/AssemblyInfo.cs.meta | 11 - .../SDK/Experimental/Editor/Inspectors.meta | 8 - .../Editor/Inspectors/NonNativeKeyboard.meta | 8 - .../SliderInputFieldInspector.cs | 27 - .../SliderInputFieldInspector.cs.meta | 11 - .../MRTK.SDK.Experimental.Editor.asmdef | 20 - .../MRTK.SDK.Experimental.Editor.asmdef.meta | 7 - .../Assets/MRTK/SDK/Experimental/Elastic.meta | 8 - .../SDK/Experimental/Elastic/Scripts.meta | 8 - .../Elastic/Scripts/ElasticConfiguration.cs | 40 - .../Scripts/ElasticConfiguration.cs.meta | 11 - .../Elastic/Scripts/ElasticTypes.cs | 156 - .../Elastic/Scripts/ElasticTypes.cs.meta | 11 - .../Elastic/Scripts/ElasticsManager.cs | 239 - .../Elastic/Scripts/ElasticsManager.cs.meta | 11 - .../Elastic/Scripts/IElasticSystem.cs | 40 - .../Elastic/Scripts/IElasticSystem.cs.meta | 11 - .../Elastic/Scripts/LinearElasticSystem.cs | 101 - .../Scripts/LinearElasticSystem.cs.meta | 11 - .../Scripts/QuaternionElasticSystem.cs | 139 - .../Scripts/QuaternionElasticSystem.cs.meta | 11 - .../Elastic/Scripts/VolumeElasticSystem.cs | 96 - .../Scripts/VolumeElasticSystem.cs.meta | 11 - .../MRTK/SDK/Experimental/Features.meta | 8 - .../SDK/Experimental/Features/Utilities.meta | 8 - .../Utilities/StabilizationPlaneModifier.cs | 444 - .../StabilizationPlaneModifier.cs.meta | 11 - .../Features/Utilities/WorldAnchorManager.cs | 637 - .../Utilities/WorldAnchorManager.cs.meta | 11 - .../MRTK/SDK/Experimental/Joystick.meta | 8 - .../Joystick/JoystickController.cs | 192 - .../Joystick/JoystickController.cs.meta | 11 - .../SDK/Experimental/Joystick/JoystickMode.cs | 15 - .../Joystick/JoystickMode.cs.meta | 11 - .../Joystick/JoystickPrefab.prefab | 861 - .../Joystick/JoystickPrefab.prefab.meta | 7 - .../Experimental/MixedRealityKeyboard.meta | 8 - .../KeyboardInputFieldBase.cs | 76 - .../KeyboardInputFieldBase.cs.meta | 11 - .../MixedRealityKeyboard.cs | 28 - .../MixedRealityKeyboard.cs.meta | 11 - .../MixedRealityKeyboardBase.cs | 334 - .../MixedRealityKeyboardBase.cs.meta | 11 - .../MixedRealityKeyboard/Prefabs.meta | 8 - .../Prefabs/MRKeyboardInputField_TMP.prefab | 551 - .../MRKeyboardInputField_TMP.prefab.meta | 7 - .../Prefabs/MRKeyboardInputField_UGUI.prefab | 313 - .../MRKeyboardInputField_UGUI.prefab.meta | 7 - .../README_MixedRealityKeyboard.md | 24 - .../README_MixedRealityKeyboard.md.meta | 7 - .../TMP_KeyboardInputField.cs | 21 - .../TMP_KeyboardInputField.cs.meta | 11 - .../UI_KeyboardInputField.cs | 20 - .../UI_KeyboardInputField.cs.meta | 11 - .../MixedRealityKeyboardPreview.meta | 8 - .../Materials.meta | 8 - .../MixedRealityKeyboardPreviewBackPlate.mat | 172 - ...edRealityKeyboardPreviewBackPlate.mat.meta | 8 - ...dRealityKeyboardPreviewButtonBackPlate.mat | 191 - ...ityKeyboardPreviewButtonBackPlate.mat.meta | 8 - .../MixedRealityKeyboardPreviewCaret.mat | 171 - .../MixedRealityKeyboardPreviewCaret.mat.meta | 8 - .../MixedRealityKeyboardPreviewTextRect.mat | 171 - ...xedRealityKeyboardPreviewTextRect.mat.meta | 8 - .../MixedRealityKeyboardPreview.cs | 213 - .../MixedRealityKeyboardPreview.cs.meta | 11 - .../MixedRealityKeyboardPreview/Prefabs.meta | 8 - .../MixedRealityKeyboardPreview.prefab | 1027 - .../MixedRealityKeyboardPreview.prefab.meta | 7 - .../SDK/Experimental/NonNativeKeyboard.meta | 8 - .../Experimental/NonNativeKeyboard/Icons.meta | 8 - .../Icons/KeyboardKeyGlyphs_Backspace.png | Bin 5452 -> 0 bytes .../KeyboardKeyGlyphs_Backspace.png.meta | 99 - .../Icons/KeyboardKeyGlyphs_Close.png | Bin 5473 -> 0 bytes .../Icons/KeyboardKeyGlyphs_Close.png.meta | 99 - .../Icons/KeyboardKeyGlyphs_Dictation.png | Bin 8449 -> 0 bytes .../KeyboardKeyGlyphs_Dictation.png.meta | 99 - .../Icons/KeyboardKeyGlyphs_Down.png | Bin 4229 -> 0 bytes .../Icons/KeyboardKeyGlyphs_Down.png.meta | 99 - .../Icons/KeyboardKeyGlyphs_Left.png | Bin 4492 -> 0 bytes .../Icons/KeyboardKeyGlyphs_Left.png.meta | 99 - .../Icons/KeyboardKeyGlyphs_Right.png | Bin 4438 -> 0 bytes .../Icons/KeyboardKeyGlyphs_Right.png.meta | 99 - .../Icons/KeyboardKeyGlyphs_Shift_Symbols.png | Bin 16073 -> 0 bytes .../KeyboardKeyGlyphs_Shift_Symbols.png.meta | 99 - .../KeyboardKeyGlyphs_UnShift_Symbols.png | Bin 16185 -> 0 bytes ...KeyboardKeyGlyphs_UnShift_Symbols.png.meta | 99 - .../Icons/KeyboardKeyGlyphs_Up.png | Bin 4184 -> 0 bytes .../Icons/KeyboardKeyGlyphs_Up.png.meta | 99 - .../NonNativeKeyboardSprites.spriteatlas | 49 - .../NonNativeKeyboardSprites.spriteatlas.meta | 8 - .../NonNativeKeyboard/Icons/Placeholder.png | Bin 18829 -> 0 bytes .../Icons/Placeholder.png.meta | 132 - .../NonNativeKeyboard/Prefabs.meta | 8 - .../Prefabs/NonNativeKeyboard.prefab | 34602 ---------------- .../Prefabs/NonNativeKeyboard.prefab.meta | 8 - .../NonNativeKeyboard/Scripts.meta | 8 - .../NonNativeKeyboard/Scripts/AxisSlider.cs | 91 - .../Scripts/AxisSlider.cs.meta | 12 - .../Scripts/CapsLockHighlight.cs | 60 - .../Scripts/CapsLockHighlight.cs.meta | 12 - .../Scripts/KeyboardKeyFunc.cs | 66 - .../Scripts/KeyboardKeyFunc.cs.meta | 12 - .../Scripts/KeyboardValueKey.cs | 84 - .../Scripts/KeyboardValueKey.cs.meta | 12 - .../Scripts/NonNativeKeyboard.cs | 1081 - .../Scripts/NonNativeKeyboard.cs.meta | 12 - .../NonNativeKeyboardTouchAssistant.cs | 50 - .../NonNativeKeyboardTouchAssistant.cs.meta | 11 - .../Scripts/SliderInputField.cs | 22 - .../Scripts/SliderInputField.cs.meta | 12 - .../Scripts/SymbolDisableHighlight.cs | 87 - .../Scripts/SymbolDisableHighlight.cs.meta | 12 - .../Scripts/SymbolKeyboard.cs | 27 - .../Scripts/SymbolKeyboard.cs.meta | 12 - .../NonNativeKeyboard/Scripts/UICollection.cs | 234 - .../Scripts/UICollection.cs.meta | 12 - .../SDK/Experimental/ServiceManagers.meta | 8 - .../ServiceManagers/Boundary.meta | 8 - .../ServiceManagers/Boundary/Prefabs.meta | 8 - .../Boundary/Prefabs/BoundarySystem.prefab | 50 - .../Prefabs/BoundarySystem.prefab.meta | 7 - .../ServiceManagers/Boundary/Scripts.meta | 8 - .../Boundary/Scripts/BoundarySystemManager.cs | 61 - .../Scripts/BoundarySystemManager.cs.meta | 11 - .../Experimental/ServiceManagers/Camera.meta | 8 - .../ServiceManagers/Camera/Prefabs.meta | 8 - .../Camera/Prefabs/CameraSystem.prefab | 49 - .../Camera/Prefabs/CameraSystem.prefab.meta | 7 - .../ServiceManagers/Camera/Scripts.meta | 8 - .../Camera/Scripts/CameraSystemManager.cs | 56 - .../Scripts/CameraSystemManager.cs.meta | 11 - .../ServiceManagers/Diagnostics.meta | 8 - .../ServiceManagers/Diagnostics/Prefabs.meta | 8 - .../Prefabs/DiagnosticsSystem.prefab | 49 - .../Prefabs/DiagnosticsSystem.prefab.meta | 7 - .../ServiceManagers/Diagnostics/Scripts.meta | 8 - .../Scripts/DiagnosticsSystemManager.cs | 56 - .../Scripts/DiagnosticsSystemManager.cs.meta | 11 - .../Experimental/ServiceManagers/Input.meta | 8 - .../ServiceManagers/Input/Prefabs.meta | 8 - .../Input/Prefabs/InputSystem.prefab | 48 - .../Input/Prefabs/InputSystem.prefab.meta | 7 - .../ServiceManagers/Input/Scripts.meta | 8 - .../Input/Scripts/InputSystemManager.cs | 92 - .../Input/Scripts/InputSystemManager.cs.meta | 11 - .../ServiceManagers/SpatialAwareness.meta | 8 - .../SpatialAwareness/Prefabs.meta | 8 - .../Prefabs/SpatialAwarenessSystem.prefab | 49 - .../SpatialAwarenessSystem.prefab.meta | 7 - .../SpatialAwareness/Scripts.meta | 8 - .../Scripts/SpatialAwarenessSystemManager.cs | 55 - .../SpatialAwarenessSystemManager.cs.meta | 11 - .../Experimental/ServiceManagers/Support.meta | 8 - .../ServiceManagers/Support/Scripts.meta | 8 - .../Support/Scripts/BaseServiceManager.cs | 272 - .../Scripts/BaseServiceManager.cs.meta | 11 - .../ServiceManagers/Teleport.meta | 8 - .../ServiceManagers/Teleport/Prefabs.meta | 8 - .../Teleport/Prefabs/TeleportSystem.prefab | 48 - .../Prefabs/TeleportSystem.prefab.meta | 7 - .../ServiceManagers/Teleport/Scripts.meta | 8 - .../Teleport/Scripts/TeleportSystemManager.cs | 49 - .../Scripts/TeleportSystemManager.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Features.meta | 8 - AR-ROS/Assets/MRTK/SDK/Features/Audio.meta | 8 - .../MRTK/SDK/Features/Audio/Influencers.meta | 8 - .../Influencers/AudioInfluencerController.cs | 259 - .../AudioInfluencerController.cs.meta | 11 - .../Audio/Influencers/AudioLoFiEffect.cs | 213 - .../Audio/Influencers/AudioLoFiEffect.cs.meta | 11 - .../Influencers/AudioLoFiSourceQuality.cs | 45 - .../AudioLoFiSourceQuality.cs.meta | 11 - .../Audio/Influencers/AudioOccluder.cs | 114 - .../Audio/Influencers/AudioOccluder.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Features/Input.meta | 8 - .../MRTK/SDK/Features/Input/Events.meta | 8 - .../Features/Input/Events/HandPanEventData.cs | 18 - .../Input/Events/HandPanEventData.cs.meta | 11 - .../Input/Events/InputActionUnityEvent.cs | 13 - .../Events/InputActionUnityEvent.cs.meta | 11 - .../Input/Events/ManipulationEvent.cs | 13 - .../Input/Events/ManipulationEvent.cs.meta | 11 - .../Input/Events/ManipulationEventData.cs | 44 - .../Events/ManipulationEventData.cs.meta | 11 - .../Features/Input/Events/PanUnityEvent.cs | 13 - .../Input/Events/PanUnityEvent.cs.meta | 11 - .../Input/Events/PointerUnityEvent.cs | 13 - .../Input/Events/PointerUnityEvent.cs.meta | 11 - .../SDK/Features/Input/Events/TouchEvent.cs | 14 - .../Features/Input/Events/TouchEvent.cs.meta | 11 - .../MRTK/SDK/Features/Input/Handlers.meta | 8 - .../Input/Handlers/BaseEyeFocusHandler.cs | 100 - .../Handlers/BaseEyeFocusHandler.cs.meta | 11 - .../Input/Handlers/BaseFocusHandler.cs | 72 - .../Input/Handlers/BaseFocusHandler.cs.meta | 11 - .../Input/Handlers/BaseInputHandler.cs | 78 - .../Input/Handlers/BaseInputHandler.cs.meta | 11 - .../Features/Input/Handlers/Constraints.meta | 8 - .../Handlers/Constraints/ConstraintManager.cs | 168 - .../Constraints/ConstraintManager.cs.meta | 11 - .../Constraints/FaceUserConstraint.cs | 47 - .../Constraints/FaceUserConstraint.cs.meta | 11 - .../Constraints/FixedDistanceConstraint.cs | 76 - .../FixedDistanceConstraint.cs.meta | 11 - .../FixedRotationToUserConstraint.cs | 45 - .../FixedRotationToUserConstraint.cs.meta | 11 - .../FixedRotationToWorldConstraint.cs | 32 - .../FixedRotationToWorldConstraint.cs.meta | 11 - .../MaintainApparentSizeConstraint.cs | 46 - .../MaintainApparentSizeConstraint.cs.meta | 11 - .../Constraints/MoveAxisConstraint.cs | 102 - .../Constraints/MoveAxisConstraint.cs.meta | 11 - .../Constraints/RotationAxisConstraint.cs | 78 - .../RotationAxisConstraint.cs.meta | 11 - .../Constraints/TransformConstraint.cs | 108 - .../Constraints/TransformConstraint.cs.meta | 11 - .../Handlers/ControllerPoseSynchronizer.cs | 217 - .../ControllerPoseSynchronizer.cs.meta | 11 - .../CursorContextManipulationHandler.cs | 64 - .../CursorContextManipulationHandler.cs.meta | 11 - .../CursorContextObjectManipulator.cs | 69 - .../CursorContextObjectManipulator.cs.meta | 11 - .../Input/Handlers/DictationHandler.cs | 159 - .../Input/Handlers/DictationHandler.cs.meta | 11 - .../Input/Handlers/EyeTrackingTarget.cs | 357 - .../Input/Handlers/EyeTrackingTarget.cs.meta | 11 - .../Features/Input/Handlers/FocusHandler.cs | 82 - .../Input/Handlers/FocusHandler.cs.meta | 11 - .../Input/Handlers/InputActionHandler.cs | 73 - .../Input/Handlers/InputActionHandler.cs.meta | 11 - .../Features/Input/Handlers/Manipulation.meta | 8 - .../Manipulation/ManipulationHandler.cs | 991 - .../Manipulation/ManipulationHandler.cs.meta | 11 - .../Manipulation/ManipulationMoveLogic.cs | 95 - .../ManipulationMoveLogic.cs.meta | 11 - .../Manipulation/TwoHandRotateLogic.cs | 52 - .../Manipulation/TwoHandRotateLogic.cs.meta | 11 - .../Manipulation/TwoHandScaleLogic.cs | 64 - .../Manipulation/TwoHandScaleLogic.cs.meta | 11 - .../Input/Handlers/ObjectManipulator.cs | 1001 - .../Input/Handlers/ObjectManipulator.cs.meta | 11 - .../Input/Handlers/PointerClickHandler.cs | 89 - .../Handlers/PointerClickHandler.cs.meta | 11 - .../Features/Input/Handlers/PointerHandler.cs | 103 - .../Input/Handlers/PointerHandler.cs.meta | 11 - .../Input/Handlers/SpeechInputHandler.cs | 151 - .../Input/Handlers/SpeechInputHandler.cs.meta | 11 - .../Input/Handlers/TeleportHotspot.cs | 88 - .../Input/Handlers/TeleportHotspot.cs.meta | 11 - .../Features/Input/Handlers/TouchHandler.cs | 34 - .../Input/Handlers/TouchHandler.cs.meta | 11 - .../Input/InputSimulationIndicators.cs | 145 - .../Input/InputSimulationIndicators.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Features/README.md | 5 - .../Assets/MRTK/SDK/Features/README.md.meta | 7 - AR-ROS/Assets/MRTK/SDK/Features/UX.meta | 8 - .../MRTK/SDK/Features/UX/Animations.meta | 8 - .../SDK/Features/UX/Animations/Cursors.meta | 8 - .../UX/Animations/Cursors/DefaultCursor.meta | 8 - .../Cursors/DefaultCursor/Contextual.meta | 8 - .../Contextual/DefaultCursorMoveCross.anim | 368 - .../DefaultCursorMoveCross.anim.meta | 8 - .../Contextual/DefaultCursorMoveEastWest.anim | 368 - .../DefaultCursorMoveEastWest.anim.meta | 8 - .../DefaultCursorMoveNorthSouth.anim | 368 - .../DefaultCursorMoveNorthSouth.anim.meta | 8 - .../DefaultCursorMoveNortheastSouthwest.anim | 368 - ...aultCursorMoveNortheastSouthwest.anim.meta | 8 - .../DefaultCursorMoveNorthwestSoutheast.anim | 368 - ...aultCursorMoveNorthwestSoutheast.anim.meta | 8 - .../Contextual/DefaultCursorNoContext.anim | 368 - .../DefaultCursorNoContext.anim.meta | 8 - .../DefaultCursorRotateHorizontal.anim | 368 - .../DefaultCursorRotateHorizontal.anim.meta | 8 - .../DefaultCursorRotateVertical.anim | 368 - .../DefaultCursorRotateVertical.anim.meta | 8 - .../DefaultCursor/DefaultCursor.controller | 1030 - .../DefaultCursor.controller.meta | 8 - .../DefaultCursor/DefaultCursorIdleAnim.anim | 188 - .../DefaultCursorIdleAnim.anim.meta | 8 - .../DefaultCursorIdleRingAnim.anim | 188 - .../DefaultCursorIdleRingAnim.anim.meta | 8 - .../DefaultCursorPressedAnim.anim | 188 - .../DefaultCursorPressedAnim.anim.meta | 8 - .../DefaultCursorWaitingAnim.anim | 53 - .../DefaultCursorWaitingAnim.anim.meta | 8 - .../UX/Animations/Cursors/TeleportCursor.meta | 8 - .../TeleportCursorController.controller | 442 - .../TeleportCursorController.controller.meta | 8 - .../TeleportCursorDisabled.anim | 421 - .../TeleportCursorDisabled.anim.meta | 8 - .../Cursors/TeleportCursor/TeleportIdle.anim | 199 - .../TeleportCursor/TeleportIdle.anim.meta | 8 - .../TeleportCursor/TeleportInvalid.anim | 619 - .../TeleportCursor/TeleportInvalid.anim.meta | 8 - .../Cursors/TeleportCursor/TeleportValid.anim | 583 - .../TeleportCursor/TeleportValid.anim.meta | 8 - .../SDK/Features/UX/Animations/Sliders.meta | 8 - ...ider_Button_AnimationController.controller | 226 - ...Button_AnimationController.controller.meta | 8 - .../Sliders/Slider_Button_Default.anim | 421 - .../Sliders/Slider_Button_Default.anim.meta | 8 - .../Sliders/Slider_Button_Grab.anim | 421 - .../Sliders/Slider_Button_Grab.anim.meta | 8 - .../Sliders/Slider_Button_Hover.anim | 412 - .../Sliders/Slider_Button_Hover.anim.meta | 8 - .../Animations/SpeechConfirmationLabel.meta | 8 - .../SpeechConfirmationLabel.anim | 789 - .../SpeechConfirmationLabel.anim.meta | 8 - .../SpeechConfirmationLabel.controller | 198 - .../SpeechConfirmationLabel.controller.meta | 8 - .../Assets/MRTK/SDK/Features/UX/Buttons.meta | 8 - .../Features/UX/Buttons/DefaultIconSet.asset | 64 - .../UX/Buttons/DefaultIconSet.asset.meta | 8 - .../MRTK/SDK/Features/UX/Interactable.meta | 8 - .../Features/UX/Interactable/Animations.meta | 8 - .../AnimatiorButtonController.controller | 3425 -- .../AnimatiorButtonController.controller.meta | 8 - .../Features/UX/Interactable/Materials.meta | 8 - .../UX/Interactable/Materials/Background.mat | 178 - .../Materials/Background.mat.meta | 8 - .../Materials/ButtonBackground.mat | 179 - .../Materials/ButtonBackground.mat.meta | 8 - .../Materials/CarryModeOutline.mat | 189 - .../Materials/CarryModeOutline.mat.meta | 8 - .../UX/Interactable/Materials/ColorButton.mat | 142 - .../Materials/ColorButton.mat.meta | 8 - .../Materials/ColorButtonProximity.mat | 133 - .../Materials/ColorButtonProximity.mat.meta | 8 - .../Interactable/Materials/DefaultButton.mat | 179 - .../Materials/DefaultButton.mat.meta | 8 - .../UX/Interactable/Materials/Foreground.mat | 179 - .../Materials/Foreground.mat.meta | 8 - .../UX/Interactable/Materials/Ground.mat | 178 - .../UX/Interactable/Materials/Ground.mat.meta | 8 - .../Materials/HolographicBackPlate.mat | 191 - .../Materials/HolographicBackPlate.mat.meta | 8 - .../HolographicBackPlateBorderOnly.mat | 193 - .../HolographicBackPlateBorderOnly.mat.meta | 8 - .../HolographicBackPlateCircular.mat | 191 - .../HolographicBackPlateCircular.mat.meta | 8 - .../HolographicBackPlateGrabbable.mat | 191 - .../HolographicBackPlateGrabbable.mat.meta | 8 - ...HolographicBackPlateGrabbableProximity.mat | 191 - ...raphicBackPlateGrabbableProximity.mat.meta | 8 - .../Materials/HolographicBackPlateGrabbed.mat | 190 - .../HolographicBackPlateGrabbed.mat.meta | 8 - .../Materials/HolographicBackPlateHover.mat | 190 - .../HolographicBackPlateHover.mat.meta | 8 - .../Materials/HolographicBackPlateLabel.mat | 191 - .../HolographicBackPlateLabel.mat.meta | 8 - .../HolographicBackPlateNoBorder.mat | 190 - .../HolographicBackPlateNoBorder.mat.meta | 8 - .../HolographicBackPlateRecordingState.mat | 193 - ...olographicBackPlateRecordingState.mat.meta | 8 - .../HolographicBackPlateThickBorder.mat | 190 - .../HolographicBackPlateThickBorder.mat.meta | 8 - .../HolographicBackPlateToggleState.mat | 190 - .../HolographicBackPlateToggleState.mat.meta | 8 - .../Interactable/Materials/HolographicBox.mat | 120 - .../Materials/HolographicBox.mat.meta | 8 - .../Materials/HolographicButtonContent.mat | 151 - .../HolographicButtonContent.mat.meta | 8 - .../HolographicButtonContentCage.mat | 191 - .../HolographicButtonContentCage.mat.meta | 8 - .../HolographicButtonContentCageProximity.mat | 194 - ...graphicButtonContentCageProximity.mat.meta | 8 - ...phicButtonContentCageProximityCircular.mat | 131 - ...uttonContentCageProximityCircular.mat.meta | 8 - ...tonContentCageProximityCircularUnityUI.mat | 133 - ...ntentCageProximityCircularUnityUI.mat.meta | 8 - ...aphicButtonContentCageProximityUnityUI.mat | 194 - ...ButtonContentCageProximityUnityUI.mat.meta | 8 - .../Materials/HolographicButtonIconAdd.mat | 179 - .../HolographicButtonIconAdd.mat.meta | 8 - .../Materials/HolographicButtonIconCamera.mat | 179 - .../HolographicButtonIconCamera.mat.meta | 8 - .../HolographicButtonIconCheckBoxOff.mat | 182 - .../HolographicButtonIconCheckBoxOff.mat.meta | 8 - .../HolographicButtonIconCheckBoxOn.mat | 182 - .../HolographicButtonIconCheckBoxOn.mat.meta | 8 - .../Materials/HolographicButtonIconClose.mat | 180 - .../HolographicButtonIconClose.mat.meta | 8 - .../HolographicButtonIconFollowMe.mat | 180 - .../HolographicButtonIconFollowMe.mat.meta | 8 - .../HolographicButtonIconFontMaterial.mat | 180 - ...HolographicButtonIconFontMaterial.mat.meta | 8 - .../HolographicButtonIconGrabAreaDouble.mat | 177 - ...lographicButtonIconGrabAreaDouble.mat.meta | 8 - ...aphicButtonIconGrabAreaDoubleProximity.mat | 177 - ...ButtonIconGrabAreaDoubleProximity.mat.meta | 8 - .../HolographicButtonIconGrabAreaVertical.mat | 177 - ...graphicButtonIconGrabAreaVertical.mat.meta | 8 - .../HolographicButtonIconHandJoint.mat | 177 - .../HolographicButtonIconHandJoint.mat.meta | 8 - .../HolographicButtonIconHandMesh.mat | 177 - .../HolographicButtonIconHandMesh.mat.meta | 8 - .../HolographicButtonIconHandRay.mat | 177 - .../HolographicButtonIconHandRay.mat.meta | 8 - .../Materials/HolographicButtonIconHome.mat | 179 - .../HolographicButtonIconHome.mat.meta | 8 - .../HolographicButtonIconMRTKLogo.mat | 176 - .../HolographicButtonIconMRTKLogo.mat.meta | 8 - .../HolographicButtonIconMessage.mat | 179 - .../HolographicButtonIconMessage.mat.meta | 8 - .../HolographicButtonIconMicrophone.mat | 179 - .../HolographicButtonIconMicrophone.mat.meta | 8 - .../Materials/HolographicButtonIconPin.mat | 177 - .../HolographicButtonIconPin.mat.meta | 8 - .../HolographicButtonIconProfiler.mat | 177 - .../HolographicButtonIconProfiler.mat.meta | 8 - .../HolographicButtonIconRadioOff.mat | 182 - .../HolographicButtonIconRadioOff.mat.meta | 8 - .../HolographicButtonIconRadioOn.mat | 182 - .../HolographicButtonIconRadioOn.mat.meta | 8 - .../HolographicButtonIconRefresh.mat | 179 - .../HolographicButtonIconRefresh.mat.meta | 8 - .../Materials/HolographicButtonIconSearch.mat | 179 - .../HolographicButtonIconSearch.mat.meta | 8 - .../HolographicButtonIconSettings.mat | 179 - .../HolographicButtonIconSettings.mat.meta | 8 - .../HolographicButtonIconSpatialMesh.mat | 180 - .../HolographicButtonIconSpatialMesh.mat.meta | 8 - .../Materials/HolographicButtonIconStar.mat | 179 - .../HolographicButtonIconStar.mat.meta | 8 - .../HolographicButtonIconSwitchOff.mat | 182 - .../HolographicButtonIconSwitchOff.mat.meta | 8 - .../HolographicButtonIconSwitchOn.mat | 182 - .../HolographicButtonIconSwitchOn.mat.meta | 8 - .../Materials/HolographicButtonPlate.mat | 191 - .../Materials/HolographicButtonPlate.mat.meta | 8 - .../HolographicButtonThickContent.mat | 177 - .../HolographicButtonThickContent.mat.meta | 8 - .../HolographicButtonThinContent.mat | 177 - .../HolographicButtonThinContent.mat.meta | 8 - .../Materials/MRTKStandardUnityUI.mat | 78 - .../Materials/MRTKStandardUnityUI.mat.meta | 8 - .../Materials/MRTK_GrabbableDots.mat | 128 - .../Materials/MRTK_GrabbableDots.mat.meta | 8 - .../Materials/MRTK_GrabbableDots2RowsH.mat | 129 - .../MRTK_GrabbableDots2RowsH.mat.meta | 8 - .../MRTK_GrabbableDots2RowsH_NoFade.mat | 131 - .../MRTK_GrabbableDots2RowsH_NoFade.mat.meta | 8 - .../Materials/MRTK_GrabbableDots2RowsV1.mat | 129 - .../MRTK_GrabbableDots2RowsV1.mat.meta | 8 - .../Materials/MRTK_GrabbableDots2RowsV2.mat | 128 - .../MRTK_GrabbableDots2RowsV2.mat.meta | 8 - .../Materials/ToggleBackground.mat | 178 - .../Materials/ToggleBackground.mat.meta | 8 - .../Interactable/Materials/ToggleButton.mat | 178 - .../Materials/ToggleButton.mat.meta | 8 - .../UX/Interactable/Materials/ToggleIcon.mat | 178 - .../Materials/ToggleIcon.mat.meta | 8 - .../SDK/Features/UX/Interactable/Models.meta | 8 - .../Models/InteractableAssets.FBX | Bin 82064 -> 0 bytes .../Models/InteractableAssets.FBX.meta | 136 - .../SDK/Features/UX/Interactable/Prefabs.meta | 9 - .../Prefabs/AnimationButton.prefab | 588 - .../Prefabs/AnimationButton.prefab.meta | 7 - .../UX/Interactable/Prefabs/Button.prefab | 1057 - .../Interactable/Prefabs/Button.prefab.meta | 7 - .../Prefabs/ButtonHoloLens1.prefab | 984 - .../Prefabs/ButtonHoloLens1.prefab.meta | 7 - .../Prefabs/ButtonHoloLens1Toggle.prefab | 987 - .../Prefabs/ButtonHoloLens1Toggle.prefab.meta | 7 - .../UX/Interactable/Prefabs/CheckBox.prefab | 815 - .../Interactable/Prefabs/CheckBox.prefab.meta | 7 - .../UX/Interactable/Prefabs/GrabHandle.prefab | 366 - .../Prefabs/GrabHandle.prefab.meta | 7 - .../Prefabs/PressableButtonCube.prefab | 155 - .../Prefabs/PressableButtonCube.prefab.meta | 7 - .../Prefabs/PressableButtonHoloLens2.prefab | 531 - .../PressableButtonHoloLens2.prefab.meta | 7 - .../PressableButtonHoloLens2Bar3H.prefab | 1708 - .../PressableButtonHoloLens2Bar3H.prefab.meta | 7 - .../PressableButtonHoloLens2Bar3V.prefab | 528 - .../PressableButtonHoloLens2Bar3V.prefab.meta | 7 - .../PressableButtonHoloLens2Bar4H.prefab | 299 - .../PressableButtonHoloLens2Bar4H.prefab.meta | 7 - .../PressableButtonHoloLens2Bar4V.prefab | 289 - .../PressableButtonHoloLens2Bar4V.prefab.meta | 7 - .../PressableButtonHoloLens2Bar5H.prefab | 309 - .../PressableButtonHoloLens2Bar5H.prefab.meta | 7 - .../PressableButtonHoloLens2Bar5V.prefab | 314 - .../PressableButtonHoloLens2Bar5V.prefab.meta | 7 - ...ssableButtonHoloLens2Circular_32x32.prefab | 156 - ...eButtonHoloLens2Circular_32x32.prefab.meta | 7 - ...ssableButtonHoloLens2Circular_40x40.prefab | 146 - ...eButtonHoloLens2Circular_40x40.prefab.meta | 7 - ...ssableButtonHoloLens2Circular_48x48.prefab | 126 - ...eButtonHoloLens2Circular_48x48.prefab.meta | 7 - ...ButtonHoloLens2TextOnly2Lines_48x96.prefab | 136 - ...nHoloLens2TextOnly2Lines_48x96.prefab.meta | 7 - ...ButtonHoloLens2TextOnly4Lines_48x96.prefab | 172 - ...nHoloLens2TextOnly4Lines_48x96.prefab.meta | 7 - ...ButtonHoloLens2TextOnlyNumber_48x48.prefab | 357 - ...nHoloLens2TextOnlyNumber_48x48.prefab.meta | 7 - ...ssableButtonHoloLens2TextOnly_48x48.prefab | 217 - ...eButtonHoloLens2TextOnly_48x48.prefab.meta | 7 - .../PressableButtonHoloLens2Toggle.prefab | 325 - ...PressableButtonHoloLens2Toggle.prefab.meta | 7 - ...ButtonHoloLens2ToggleCheckBox_32x32.prefab | 278 - ...nHoloLens2ToggleCheckBox_32x32.prefab.meta | 7 - ...ButtonHoloLens2ToggleCheckBox_32x96.prefab | 327 - ...nHoloLens2ToggleCheckBox_32x96.prefab.meta | 7 - ...bleButtonHoloLens2ToggleRadio_32x32.prefab | 146 - ...ttonHoloLens2ToggleRadio_32x32.prefab.meta | 7 - ...bleButtonHoloLens2ToggleRadio_32x96.prefab | 181 - ...ttonHoloLens2ToggleRadio_32x96.prefab.meta | 7 - ...leButtonHoloLens2ToggleSwitch_32x32.prefab | 176 - ...tonHoloLens2ToggleSwitch_32x32.prefab.meta | 7 - ...leButtonHoloLens2ToggleSwitch_32x96.prefab | 181 - ...tonHoloLens2ToggleSwitch_32x96.prefab.meta | 7 - ...ressableButtonHoloLens2Toggle_32x96.prefab | 281 - ...bleButtonHoloLens2Toggle_32x96.prefab.meta | 7 - ...ressableButtonHoloLens2Toggle_40x40.prefab | 171 - ...bleButtonHoloLens2Toggle_40x40.prefab.meta | 7 - ...ressableButtonHoloLens2Toggle_48x48.prefab | 146 - ...bleButtonHoloLens2Toggle_48x48.prefab.meta | 7 - .../PressableButtonHoloLens2Unplated.prefab | 1666 - ...essableButtonHoloLens2Unplated.prefab.meta | 7 - .../PressableButtonHoloLens2_32x96.prefab | 221 - ...PressableButtonHoloLens2_32x96.prefab.meta | 7 - ...ssableButtonHoloLens2_32x96_NoLabel.prefab | 1066 - ...eButtonHoloLens2_32x96_NoLabel.prefab.meta | 7 - .../PressableButtonHoloLens2_48x48.prefab | 141 - ...PressableButtonHoloLens2_48x48.prefab.meta | 7 - .../PressableButtonHoloLens2_56x56.prefab | 156 - ...PressableButtonHoloLens2_56x56.prefab.meta | 7 - .../PressableButtonHoloLens2_64x64.prefab | 146 - ...PressableButtonHoloLens2_64x64.prefab.meta | 7 - .../PressableButtonHoloLens2_NoLabel.prefab | 1066 - ...essableButtonHoloLens2_NoLabel.prefab.meta | 7 - .../PressableButtonHololens2UnityUI.prefab | 784 - ...ressableButtonHololens2UnityUI.prefab.meta | 7 - .../Prefabs/PressableButtonUnityUI.prefab | 1013 - .../PressableButtonUnityUI.prefab.meta | 7 - .../PressableButtonUnityUICircular.prefab | 146 - ...PressableButtonUnityUICircular.prefab.meta | 7 - .../UX/Interactable/Prefabs/Radial.prefab | 510 - .../Interactable/Prefabs/Radial.prefab.meta | 7 - .../UX/Interactable/Prefabs/RadialSet.prefab | 1997 - .../Prefabs/RadialSet.prefab.meta | 7 - .../Interactable/Prefabs/SimpleButton.prefab | 305 - .../Prefabs/SimpleButton.prefab.meta | 7 - .../Interactable/Prefabs/ToggleButton.prefab | 1060 - .../Prefabs/ToggleButton.prefab.meta | 7 - .../Interactable/Prefabs/ToggleSwitch.prefab | 597 - .../Prefabs/ToggleSwitch.prefab.meta | 7 - .../Prefabs/UnityUIInteractables.meta | 8 - .../UnityUIInteractables/UnityUIButton.prefab | 800 - .../UnityUIButton.prefab.meta | 7 - .../UnityUICheckboxButton.prefab | 469 - .../UnityUICheckboxButton.prefab.meta | 7 - .../UnityUIRadialButton.prefab | 575 - .../UnityUIRadialButton.prefab.meta | 7 - .../UnityUIToggleButton.prefab | 166 - .../UnityUIToggleButton.prefab.meta | 7 - .../SDK/Features/UX/Interactable/Scripts.meta | 8 - .../UX/Interactable/Scripts/Events.meta | 8 - .../Scripts/Events/IInteractableHandler.cs | 22 - .../Events/IInteractableHandler.cs.meta | 11 - .../Events/InteractableAudioReceiver.cs | 80 - .../Events/InteractableAudioReceiver.cs.meta | 11 - .../Scripts/Events/InteractableEvent.cs | 107 - .../Scripts/Events/InteractableEvent.cs.meta | 11 - .../Events/InteractableOnClickReceiver.cs | 36 - .../InteractableOnClickReceiver.cs.meta | 11 - .../Events/InteractableOnFocusReceiver.cs | 57 - .../InteractableOnFocusReceiver.cs.meta | 11 - .../Events/InteractableOnGrabReceiver.cs | 58 - .../Events/InteractableOnGrabReceiver.cs.meta | 11 - .../Events/InteractableOnHoldReceiver.cs | 65 - .../Events/InteractableOnHoldReceiver.cs.meta | 11 - .../Events/InteractableOnPressReceiver.cs | 111 - .../InteractableOnPressReceiver.cs.meta | 11 - .../Events/InteractableOnToggleReceiver.cs | 58 - .../InteractableOnToggleReceiver.cs.meta | 11 - .../Events/InteractableOnTouchReceiver.cs | 58 - .../InteractableOnTouchReceiver.cs.meta | 11 - .../Scripts/Events/InteractableReceiver.cs | 84 - .../Events/InteractableReceiver.cs.meta | 11 - .../Events/InteractableReceiverList.cs | 89 - .../Events/InteractableReceiverList.cs.meta | 11 - .../Scripts/Events/ReceiverBase.cs | 67 - .../Scripts/Events/ReceiverBase.cs.meta | 11 - .../Events/ReceiverBaseMonoBehavior.cs | 153 - .../Events/ReceiverBaseMonoBehavior.cs.meta | 11 - .../UX/Interactable/Scripts/Interactable.cs | 1877 - .../Interactable/Scripts/Interactable.cs.meta | 11 - .../Scripts/InteractableToggleCollection.cs | 160 - .../InteractableToggleCollection.cs.meta | 11 - .../UX/Interactable/Scripts/Layout.meta | 8 - .../Scripts/Layout/ButtonBackgroundSize.cs | 106 - .../Layout/ButtonBackgroundSize.cs.meta | 11 - .../Layout/ButtonBackgroundSizeOffset.cs | 114 - .../Layout/ButtonBackgroundSizeOffset.cs.meta | 11 - .../Scripts/Layout/ButtonBorder.cs | 147 - .../Scripts/Layout/ButtonBorder.cs.meta | 11 - .../Scripts/Layout/ButtonCollider.cs | 65 - .../Scripts/Layout/ButtonCollider.cs.meta | 11 - .../Scripts/Layout/ButtonLayout.cs | 83 - .../Scripts/Layout/ButtonLayout.cs.meta | 11 - .../Interactable/Scripts/Layout/ButtonSize.cs | 41 - .../Scripts/Layout/ButtonSize.cs.meta | 11 - .../Scripts/Layout/ButtonSizeOffset.cs | 54 - .../Scripts/Layout/ButtonSizeOffset.cs.meta | 11 - .../UX/Interactable/Scripts/Profile.meta | 8 - .../Profile/InteractableProfileItem.cs | 26 - .../Profile/InteractableProfileItem.cs.meta | 11 - .../UX/Interactable/Scripts/Selection.meta | 8 - .../Scripts/Selection/SelectionModes.cs | 30 - .../Scripts/Selection/SelectionModes.cs.meta | 11 - .../UX/Interactable/Scripts/Simulation.meta | 8 - .../InteractablePointerSimulator.cs | 58 - .../InteractablePointerSimulator.cs.meta | 11 - .../UX/Interactable/Scripts/States.meta | 8 - .../Scripts/States/InteractableStates.cs | 194 - .../Scripts/States/InteractableStates.cs.meta | 11 - .../SDK/Features/UX/Interactable/States.meta | 8 - .../States/DefaultInteractableStates.asset | 38 - .../DefaultInteractableStates.asset.meta | 8 - .../States/FocusInteractableStates.asset | 28 - .../States/FocusInteractableStates.asset.meta | 8 - .../States/FocusPressTouchGrabStates.asset | 53 - .../FocusPressTouchGrabStates.asset.meta | 8 - .../States/HoloLensInteractableStates.asset | 48 - .../HoloLensInteractableStates.asset.meta | 8 - .../SDK/Features/UX/Interactable/Themes.meta | 8 - .../Interactable/Themes/AnimatorTheme.asset | 155 - .../Themes/AnimatorTheme.asset.meta | 8 - .../Themes/AppBarButtonBackgroundTheme.asset | 219 - .../AppBarButtonBackgroundTheme.asset.meta | 8 - .../Themes/AppBarButtonIconTheme.asset | 220 - .../Themes/AppBarButtonIconTheme.asset.meta | 8 - .../Themes/AppBarButtonTextTheme.asset | 222 - .../Themes/AppBarButtonTextTheme.asset.meta | 8 - .../Themes/ButtonBackground.asset | 370 - .../Themes/ButtonBackground.asset.meta | 8 - .../Themes/ButtonBackgroundSelected.asset | 370 - .../ButtonBackgroundSelected.asset.meta | 8 - .../Interactable/Themes/ButtonBorders.asset | 155 - .../Themes/ButtonBorders.asset.meta | 8 - .../Themes/ButtonBordersSelected.asset | 155 - .../Themes/ButtonBordersSelected.asset.meta | 8 - .../UX/Interactable/Themes/ButtonLabel.asset | 370 - .../Themes/ButtonLabel.asset.meta | 8 - .../Themes/ButtonLabelColor.asset | 155 - .../Themes/ButtonLabelColor.asset.meta | 8 - .../Themes/ButtonLabelSelected.asset | 370 - .../Themes/ButtonLabelSelected.asset.meta | 8 - .../UX/Interactable/Themes/CheeseTheme.asset | 379 - .../Themes/CheeseTheme.asset.meta | 8 - .../UX/Interactable/Themes/CoffeeTheme.asset | 379 - .../Themes/CoffeeTheme.asset.meta | 8 - .../Interactable/Themes/CylinderTheme.asset | 379 - .../Themes/CylinderTheme.asset.meta | 8 - .../UX/Interactable/Themes/DefaultTheme.asset | 373 - .../Themes/DefaultTheme.asset.meta | 8 - .../Themes/FocusExampleTheme.asset | 165 - .../Themes/FocusExampleTheme.asset.meta | 8 - .../Themes/FocusPressTouchGrabTheme.asset | 522 - .../FocusPressTouchGrabTheme.asset.meta | 8 - .../Themes/GrabColorChildren.asset | 155 - .../Themes/GrabColorChildren.asset.meta | 8 - .../Interactable/Themes/GrabScaleTheme.asset | 195 - .../Themes/GrabScaleTheme.asset.meta | 8 - .../Themes/HolographicButtonBackPlate.asset | 165 - .../HolographicButtonBackPlate.asset.meta | 8 - ...graphicButtonBackPlateToggleSelected.asset | 165 - ...icButtonBackPlateToggleSelected.asset.meta | 8 - .../Themes/HolographicButtonFrontPlate.asset | 363 - .../HolographicButtonFrontPlate.asset.meta | 8 - .../HolographicButtonFrontPlateThick.asset | 540 - ...olographicButtonFrontPlateThick.asset.meta | 8 - ...ographicButtonSeeItSayItLabel-Simple.asset | 232 - ...hicButtonSeeItSayItLabel-Simple.asset.meta | 8 - .../HolographicButtonSeeItSayItLabel.asset | 232 - ...olographicButtonSeeItSayItLabel.asset.meta | 8 - .../Themes/Model_BuckyTheme.asset | 196 - .../Themes/Model_BuckyTheme.asset.meta | 8 - .../Themes/Model_IcosaTheme.asset | 398 - .../Themes/Model_IcosaTheme.asset.meta | 8 - .../Themes/PianoKeyThemeBlack.asset | 378 - .../Themes/PianoKeyThemeBlack.asset.meta | 8 - .../Themes/PianoKeyThemeWhite.asset | 378 - .../Themes/PianoKeyThemeWhite.asset.meta | 8 - .../Themes/PressableButtonCubeTheme.asset | 378 - .../PressableButtonCubeTheme.asset.meta | 8 - .../Themes/PressableButtonFrontPlate.asset | 203 - .../PressableButtonFrontPlate.asset.meta | 8 - .../PressableButtonFrontPlatePressed.asset | 223 - ...ressableButtonFrontPlatePressed.asset.meta | 8 - .../Themes/PressableButtonIcon.asset | 219 - .../Themes/PressableButtonIcon.asset.meta | 8 - .../PressableButtonToggleStateOff.asset | 203 - .../PressableButtonToggleStateOff.asset.meta | 8 - .../Themes/PressableButtonToggleStateOn.asset | 203 - .../PressableButtonToggleStateOn.asset.meta | 8 - .../Themes/PressableRoundButton.asset | 155 - .../Themes/PressableRoundButton.asset.meta | 8 - .../Themes/PressableRoundButtonColor.asset | 525 - .../PressableRoundButtonColor.asset.meta | 8 - .../UX/Interactable/Themes/TextureTheme.asset | 171 - .../Themes/TextureTheme.asset.meta | 8 - .../Themes/ToggleBackground.asset | 165 - .../Themes/ToggleBackground.asset.meta | 8 - .../Themes/ToggleBackgroundSelected.asset | 155 - .../ToggleBackgroundSelected.asset.meta | 8 - .../UX/Interactable/Themes/ToggleButton.asset | 370 - .../Themes/ToggleButton.asset.meta | 8 - .../Themes/ToggleButtonSelected.asset | 370 - .../Themes/ToggleButtonSelected.asset.meta | 8 - .../UX/Interactable/Themes/ToggleDot.asset | 370 - .../Interactable/Themes/ToggleDot.asset.meta | 8 - .../Themes/ToggleDotSelected.asset | 370 - .../Themes/ToggleDotSelected.asset.meta | 8 - .../UX/Interactable/Themes/ToggleIcon.asset | 509 - .../Interactable/Themes/ToggleIcon.asset.meta | 8 - .../Themes/ToggleIconSelected.asset | 509 - .../Themes/ToggleIconSelected.asset.meta | 8 - .../UX/Interactable/Themes/ToggleLabel.asset | 370 - .../Themes/ToggleLabel.asset.meta | 8 - .../Themes/ToggleLabelSelected.asset | 370 - .../Themes/ToggleLabelSelected.asset.meta | 8 - .../UX/Interactable/Themes/balloonTheme.asset | 369 - .../Themes/balloonTheme.asset.meta | 8 - .../MRTK/SDK/Features/UX/Materials.meta | 8 - .../SDK/Features/UX/Materials/BoundingBox.mat | 137 - .../UX/Materials/BoundingBox.mat.meta | 8 - .../UX/Materials/BoundingBoxGrabbed.mat | 137 - .../UX/Materials/BoundingBoxGrabbed.mat.meta | 8 - .../UX/Materials/BoundingBoxHandleBlue.mat | 172 - .../Materials/BoundingBoxHandleBlue.mat.meta | 8 - .../BoundingBoxHandleBlueGrabbed.mat | 188 - .../BoundingBoxHandleBlueGrabbed.mat.meta | 8 - .../UX/Materials/BoundingBoxHandleWhite.mat | 188 - .../Materials/BoundingBoxHandleWhite.mat.meta | 8 - .../UX/Materials/BoundingBoxLines.mat | 142 - .../UX/Materials/BoundingBoxLines.mat.meta | 8 - .../Materials/BoundsControlHandleDefault.mat | 172 - .../BoundsControlHandleDefault.mat.meta | 8 - .../Features/UX/Materials/HandIndexTip.mat | 171 - .../UX/Materials/HandIndexTip.mat.meta | 8 - .../SDK/Features/UX/Materials/HandJoint.mat | 171 - .../Features/UX/Materials/HandJoint.mat.meta | 8 - .../SDK/Features/UX/Materials/PanContent.mat | 177 - .../Features/UX/Materials/PanContent.mat.meta | 8 - .../Materials/PinchSliderTickMarkMaterial.mat | 170 - .../PinchSliderTickMarkMaterial.mat.meta | 8 - .../ProgressIndicatorLoadingBarEmpty.mat | 176 - .../ProgressIndicatorLoadingBarEmpty.mat.meta | 8 - .../ProgressIndicatorLoadingBarFilled.mat | 176 - ...ProgressIndicatorLoadingBarFilled.mat.meta | 8 - .../ProgressIndicatorRotatingObject.mat | 176 - .../ProgressIndicatorRotatingObject.mat.meta | 8 - .../ProgressIndicatorRotatingOrbsMat.mat | 165 - .../ProgressIndicatorRotatingOrbsMat.mat.meta | 8 - .../SDK/Features/UX/Materials/Teleport.meta | 8 - .../UX/Materials/Teleport/License.txt | 81 - .../UX/Materials/Teleport/License.txt.meta | 7 - .../UX/Materials/Teleport/TeleportArrow.mat | 185 - .../Materials/Teleport/TeleportArrow.mat.meta | 8 - .../UX/Materials/Teleport/TeleportBase.mat | 185 - .../Materials/Teleport/TeleportBase.mat.meta | 8 - .../UX/Materials/Teleport/TeleportMid.mat | 185 - .../Materials/Teleport/TeleportMid.mat.meta | 8 - .../UX/Materials/UnityUIBackground.mat | 180 - .../UX/Materials/UnityUIBackground.mat.meta | 8 - .../Assets/MRTK/SDK/Features/UX/Meshes.meta | 8 - .../MRTK/SDK/Features/UX/Meshes/Cursors.meta | 8 - .../UX/Meshes/Cursors/Cursor_Focus_geo.fbx | Bin 22864 -> 0 bytes .../Meshes/Cursors/Cursor_Focus_geo.fbx.meta | 108 - .../UX/Meshes/Cursors/Cursor_IBeam.fbx | Bin 21616 -> 0 bytes .../UX/Meshes/Cursors/Cursor_IBeam.fbx.meta | 102 - .../Cursors/Cursor_MousePointer_geo.fbx | 657 - .../Cursors/Cursor_MousePointer_geo.fbx.meta | 102 - .../Meshes/Cursors/Cursor_MoveArrows_geo.fbx | Bin 20720 -> 0 bytes .../Cursors/Cursor_MoveArrows_geo.fbx.meta | 108 - .../UX/Meshes/Cursors/Cursor_Press_geo.fbx | Bin 22240 -> 0 bytes .../Meshes/Cursors/Cursor_Press_geo.fbx.meta | 108 - .../UX/Meshes/Cursors/Cursor_Rest_geo.fbx | Bin 21392 -> 0 bytes .../Meshes/Cursors/Cursor_Rest_geo.fbx.meta | 108 - .../Cursors/Cursor_RotateArrows_geo.fbx | Bin 22272 -> 0 bytes .../Cursors/Cursor_RotateArrows_geo.fbx.meta | 108 - .../UX/Meshes/Cursors/DefaultCursor.fbx | Bin 75340 -> 0 bytes .../UX/Meshes/Cursors/DefaultCursor.fbx.meta | 181 - .../Features/UX/Meshes/Cursors/Materials.meta | 8 - .../UX/Meshes/Cursors/Materials/Light.mat | 174 - .../Meshes/Cursors/Materials/Light.mat.meta | 8 - .../Meshes/Cursors/Materials/MousePointer.mat | 172 - .../Cursors/Materials/MousePointer.mat.meta | 8 - .../UX/Meshes/Cursors/Materials/Shadow.mat | 174 - .../Meshes/Cursors/Materials/Shadow.mat.meta | 8 - .../UX/Meshes/Cursors/TeleportCursor.fbx | Bin 104016 -> 0 bytes .../UX/Meshes/Cursors/TeleportCursor.fbx.meta | 117 - .../Features/UX/Meshes/Cursors/Textures.meta | 8 - .../Textures/Cursor_MousePointer_tex.png | Bin 20502 -> 0 bytes .../Textures/Cursor_MousePointer_tex.png.meta | 88 - .../Cursors/Textures/Cursor_Move_Shadow.png | Bin 1510 -> 0 bytes .../Textures/Cursor_Move_Shadow.png.meta | 88 - .../Cursors/Textures/Cursor_Ring_Shadow.png | Bin 5192 -> 0 bytes .../Textures/Cursor_Ring_Shadow.png.meta | 88 - .../Cursors/Textures/Cursor_Rotate_Shadow.png | Bin 1691 -> 0 bytes .../Textures/Cursor_Rotate_Shadow.png.meta | 88 - .../Features/UX/Meshes/HolographicButton.meta | 8 - .../CompoundButtonMeshes.fbx | Bin 273072 -> 0 bytes .../CompoundButtonMeshes.fbx.meta | 152 - .../MRTK/SDK/Features/UX/Meshes/Pointers.meta | 8 - .../Pointers/DefaultPointerDottedLine.fbx | Bin 81184 -> 0 bytes .../DefaultPointerDottedLine.fbx.meta | 107 - .../MRTK/SDK/Features/UX/Meshes/Sliders.meta | 8 - .../Button_Oval_Concave_12x24mm_optimized.fbx | Bin 34688 -> 0 bytes ...on_Oval_Concave_12x24mm_optimized.fbx.meta | 97 - .../Sliders/Volumetric_UI_Components.fbx | Bin 233600 -> 0 bytes .../Sliders/Volumetric_UI_Components.fbx.meta | 174 - .../UX/Meshes/Sliders/thick_rounded12.fbx | 359 - .../Meshes/Sliders/thick_rounded12.fbx.meta | 97 - .../Assets/MRTK/SDK/Features/UX/Prefabs.meta | 8 - .../MRTK/SDK/Features/UX/Prefabs/AppBar.meta | 8 - .../Features/UX/Prefabs/AppBar/AppBar.prefab | 2436 -- .../UX/Prefabs/AppBar/AppBar.prefab.meta | 7 - .../AppBar/PressableButtonAppBar.prefab | 404 - .../AppBar/PressableButtonAppBar.prefab.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/Cursors.meta | 8 - .../UX/Prefabs/Cursors/CursorFocus.prefab | 80 - .../Prefabs/Cursors/CursorFocus.prefab.meta | 7 - .../Prefabs/Cursors/CursorMousePointer.prefab | 79 - .../Cursors/CursorMousePointer.prefab.meta | 7 - .../Cursors/CursorMoveArrowsEastWest.prefab | 80 - .../CursorMoveArrowsEastWest.prefab.meta | 7 - .../Cursors/CursorMoveArrowsMove.prefab | 159 - .../Cursors/CursorMoveArrowsMove.prefab.meta | 7 - .../Cursors/CursorMoveArrowsNorthSouth.prefab | 80 - .../CursorMoveArrowsNorthSouth.prefab.meta | 7 - .../CursorMoveArrowsNortheastSouthwest.prefab | 80 - ...orMoveArrowsNortheastSouthwest.prefab.meta | 7 - .../CursorMoveArrowsNorthwestSoutheast.prefab | 80 - ...orMoveArrowsNorthwestSoutheast.prefab.meta | 7 - .../UX/Prefabs/Cursors/CursorPress.prefab | 80 - .../Prefabs/Cursors/CursorPress.prefab.meta | 7 - .../UX/Prefabs/Cursors/CursorRest.prefab | 80 - .../UX/Prefabs/Cursors/CursorRest.prefab.meta | 7 - .../CursorRotateArrowsHorizontal.prefab | 80 - .../CursorRotateArrowsHorizontal.prefab.meta | 7 - .../Cursors/CursorRotateArrowsVertical.prefab | 80 - .../CursorRotateArrowsVertical.prefab.meta | 7 - .../UX/Prefabs/Cursors/EyeGazeCursor.prefab | 918 - .../Prefabs/Cursors/EyeGazeCursor.prefab.meta | 7 - .../UX/Prefabs/Cursors/FingerCursor.prefab | 230 - .../Prefabs/Cursors/FingerCursor.prefab.meta | 7 - .../UX/Prefabs/Cursors/MouseCursor.prefab | 151 - .../Prefabs/Cursors/MouseCursor.prefab.meta | 7 - .../Cursors/ScreenSpaceMouseCursor.prefab | 69 - .../ScreenSpaceMouseCursor.prefab.meta | 7 - .../UX/Prefabs/Cursors/TeleportCursor.prefab | 478 - .../Cursors/TeleportCursor.prefab.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/Hands.meta | 8 - .../Features/UX/Prefabs/Hands/HandAxes.prefab | 413 - .../UX/Prefabs/Hands/HandAxes.prefab.meta | 7 - .../UX/Prefabs/Hands/HandJoint.prefab | 79 - .../UX/Prefabs/Hands/HandJoint.prefab.meta | 7 - .../UX/Prefabs/Hands/HandJointGizmo.prefab | 1166 - .../Prefabs/Hands/HandJointGizmo.prefab.meta | 7 - .../UX/Prefabs/Hands/HandJointSmall.prefab | 79 - .../Prefabs/Hands/HandJointSmall.prefab.meta | 7 - .../UX/Prefabs/Hands/HandJointSphere.prefab | 79 - .../Prefabs/Hands/HandJointSphere.prefab.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/Loader.meta | 8 - .../Prefabs/Loader/IndeterminateLoader.prefab | 514 - .../Loader/IndeterminateLoader.prefab.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/Menus.meta | 8 - .../UX/Prefabs/Menus/NearMenu2x4.prefab | 1341 - .../UX/Prefabs/Menus/NearMenu2x4.prefab.meta | 7 - .../UX/Prefabs/Menus/NearMenu3x1.prefab | 299 - .../UX/Prefabs/Menus/NearMenu3x1.prefab.meta | 7 - .../UX/Prefabs/Menus/NearMenu3x2.prefab | 730 - .../UX/Prefabs/Menus/NearMenu3x2.prefab.meta | 7 - .../UX/Prefabs/Menus/NearMenu3x3.prefab | 1036 - .../UX/Prefabs/Menus/NearMenu3x3.prefab.meta | 7 - .../UX/Prefabs/Menus/NearMenu4x1.prefab | 1963 - .../UX/Prefabs/Menus/NearMenu4x1.prefab.meta | 7 - .../UX/Prefabs/Menus/NearMenu4x2.prefab | 1133 - .../UX/Prefabs/Menus/NearMenu4x2.prefab.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/Panels.meta | 8 - .../Prefabs/Panels/ToggleFeaturesPanel.prefab | 2606 -- .../Panels/ToggleFeaturesPanel.prefab.meta | 7 - .../SDK/Features/UX/Prefabs/Pointers.meta | 8 - .../Pointers/ConicalGrabPointer.prefab | 528 - .../Pointers/ConicalGrabPointer.prefab.meta | 7 - .../UX/Prefabs/Pointers/GGVPointer.prefab | 53 - .../Prefabs/Pointers/GGVPointer.prefab.meta | 7 - .../UX/Prefabs/Pointers/GrabPointer.prefab | 528 - .../Prefabs/Pointers/GrabPointer.prefab.meta | 7 - .../UX/Prefabs/Pointers/MousePointer.prefab | 74 - .../Prefabs/Pointers/MousePointer.prefab.meta | 7 - .../UX/Prefabs/Pointers/PokePointer.prefab | 237 - .../Prefabs/Pointers/PokePointer.prefab.meta | 7 - .../Pointers/ScreenSpaceMousePointer.prefab | 74 - .../ScreenSpaceMousePointer.prefab.meta | 7 - .../UX/Prefabs/Pointers/TouchPointer.prefab | 71 - .../Prefabs/Pointers/TouchPointer.prefab.meta | 7 - .../UX/Prefabs/ProgressIndicators.meta | 8 - .../ProgressIndicatorLoadingBar.prefab | 687 - .../ProgressIndicatorLoadingBar.prefab.meta | 7 - .../ProgressIndicatorRotatingObject.prefab | 423 - ...rogressIndicatorRotatingObject.prefab.meta | 7 - .../ProgressIndicatorRotatingOrbs.prefab | 919 - .../ProgressIndicatorRotatingOrbs.prefab.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/README.md | 3 - .../SDK/Features/UX/Prefabs/README.md.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/Slate.meta | 8 - .../Slate/PressableButtonsTestCanvas.prefab | 2249 - .../PressableButtonsTestCanvas.prefab.meta | 7 - .../Features/UX/Prefabs/Slate/Slate.prefab | 1739 - .../UX/Prefabs/Slate/Slate.prefab.meta | 7 - .../UX/Prefabs/Slate/SlateUGUI.prefab | 7163 ---- .../UX/Prefabs/Slate/SlateUGUI.prefab.meta | 7 - .../Slate/SlateUGUIHoloLens2Buttons.prefab | 3593 -- .../SlateUGUIHoloLens2Buttons.prefab.meta | 7 - .../MRTK/SDK/Features/UX/Prefabs/Sliders.meta | 8 - .../UX/Prefabs/Sliders/PinchSlider.prefab | 1569 - .../Prefabs/Sliders/PinchSlider.prefab.meta | 7 - .../SDK/Features/UX/Prefabs/Tooltips.meta | 8 - .../UX/Prefabs/Tooltips/Bezier ToolTip.prefab | 1085 - .../Tooltips/Bezier ToolTip.prefab.meta | 7 - .../Constrained Parabola Tooltip.prefab | 1091 - .../Constrained Parabola Tooltip.prefab.meta | 7 - .../Prefabs/Tooltips/LabelOnlyTooltip.prefab | 108 - .../Tooltips/LabelOnlyTooltip.prefab.meta | 7 - .../Tooltips/Simple Line ToolTip.prefab | 1075 - .../Tooltips/Simple Line ToolTip.prefab.meta | 7 - .../Tooltips/SpeechConfirmationTooltip.prefab | 388 - .../SpeechConfirmationTooltip.prefab.meta | 7 - .../UX/Prefabs/Tooltips/Spline ToolTip.prefab | 1093 - .../Tooltips/Spline ToolTip.prefab.meta | 7 - AR-ROS/Assets/MRTK/SDK/Features/UX/README.md | 3 - .../MRTK/SDK/Features/UX/README.md.meta | 7 - .../Assets/MRTK/SDK/Features/UX/Scripts.meta | 8 - .../MRTK/SDK/Features/UX/Scripts/AppBar.meta | 8 - .../SDK/Features/UX/Scripts/AppBar/AppBar.cs | 642 - .../Features/UX/Scripts/AppBar/AppBar.cs.meta | 11 - .../UX/Scripts/AppBar/AppBarButton.cs | 104 - .../UX/Scripts/AppBar/AppBarButton.cs.meta | 11 - .../SDK/Features/UX/Scripts/BoundingBox.meta | 8 - .../UX/Scripts/BoundingBox/BoundingBox.cs | 2703 -- .../Scripts/BoundingBox/BoundingBox.cs.meta | 11 - .../Scripts/BoundingBox/BoundingBoxHelper.cs | 254 - .../BoundingBox/BoundingBoxHelper.cs.meta | 11 - .../BoundingBox/IBoundsTargetProvider.cs | 40 - .../BoundingBox/IBoundsTargetProvider.cs.meta | 11 - .../Features/UX/Scripts/BoundsControl.meta | 8 - .../UX/Scripts/BoundsControl/BoundsControl.cs | 1489 - .../BoundsControl/BoundsControl.cs.meta | 11 - .../BoundsControl/BoundsControlTypes.cs | 158 - .../BoundsControl/BoundsControlTypes.cs.meta | 11 - .../UX/Scripts/BoundsControl/Visuals.meta | 8 - .../BoundsControl/Visuals/BoxDisplay.cs | 123 - .../BoundsControl/Visuals/BoxDisplay.cs.meta | 11 - .../BoundsControl/Visuals/Configuration.meta | 8 - .../Configuration/BoxDisplayConfiguration.cs | 79 - .../BoxDisplayConfiguration.cs.meta | 11 - .../Configuration/HandlesBaseConfiguration.cs | 191 - .../HandlesBaseConfiguration.cs.meta | 11 - .../Configuration/LinksConfiguration.cs | 124 - .../Configuration/LinksConfiguration.cs.meta | 11 - .../PerAxisHandlesConfiguration.cs | 111 - .../PerAxisHandlesConfiguration.cs.meta | 11 - .../RotationHandlesConfiguration.cs | 28 - .../RotationHandlesConfiguration.cs.meta | 11 - .../ScaleHandlesConfiguration.cs | 96 - .../ScaleHandlesConfiguration.cs.meta | 11 - .../TranslationHandlesConfiguration.cs | 34 - .../TranslationHandlesConfiguration.cs.meta | 11 - .../BoundsControl/Visuals/HandlesBase.cs | 235 - .../BoundsControl/Visuals/HandlesBase.cs.meta | 11 - .../UX/Scripts/BoundsControl/Visuals/Links.cs | 254 - .../BoundsControl/Visuals/Links.cs.meta | 11 - .../BoundsControl/Visuals/PerAxisHandles.cs | 335 - .../Visuals/PerAxisHandles.cs.meta | 11 - .../Visuals/ProximityEffect.meta | 8 - .../IProximityEffectObjectProvider.cs | 51 - .../IProximityEffectObjectProvider.cs.meta | 11 - .../ProximityEffect/ProximityEffect.cs | 316 - .../ProximityEffect/ProximityEffect.cs.meta | 11 - .../ProximityEffectConfiguration.cs | 98 - .../ProximityEffectConfiguration.cs.meta | 11 - .../BoundsControl/Visuals/RotationHandles.cs | 67 - .../Visuals/RotationHandles.cs.meta | 11 - .../BoundsControl/Visuals/ScaleHandles.cs | 223 - .../Visuals/ScaleHandles.cs.meta | 11 - .../Visuals/TranslationHandles.cs | 71 - .../Visuals/TranslationHandles.cs.meta | 11 - .../BoundsControl/Visuals/VisualUtils.cs | 292 - .../BoundsControl/Visuals/VisualUtils.cs.meta | 11 - .../MRTK/SDK/Features/UX/Scripts/Buttons.meta | 8 - .../UX/Scripts/Buttons/ButtonConfigHelper.cs | 604 - .../Buttons/ButtonConfigHelper.cs.meta | 11 - .../UX/Scripts/Buttons/ButtonIconSet.cs | 766 - .../UX/Scripts/Buttons/ButtonIconSet.cs.meta | 11 - .../UX/Scripts/Buttons/ButtonIconStyle.cs | 29 - .../Scripts/Buttons/ButtonIconStyle.cs.meta | 11 - .../SDK/Features/UX/Scripts/Collections.meta | 8 - .../Collections/BaseObjectCollection.cs | 187 - .../Collections/BaseObjectCollection.cs.meta | 11 - .../Scripts/Collections/CollectionEnums.meta | 8 - .../CollectionEnums/LayoutAlignment.cs | 25 - .../CollectionEnums/LayoutAlignment.cs.meta | 11 - .../CollectionEnums/LayoutAnchor.cs | 49 - .../CollectionEnums/LayoutAnchor.cs.meta | 11 - .../CollectionEnums/LayoutOrder.cs | 28 - .../CollectionEnums/LayoutOrder.cs.meta | 11 - .../ObjectOrientationSurfaceType.cs | 16 - .../ObjectOrientationSurfaceType.cs.meta | 11 - .../Collections/GridObjectCollection.cs | 583 - .../Collections/GridObjectCollection.cs.meta | 11 - .../Collections/ObjectCollectionNode.cs | 21 - .../Collections/ObjectCollectionNode.cs.meta | 11 - .../Collections/ScatterObjectCollection.cs | 113 - .../ScatterObjectCollection.cs.meta | 11 - .../Collections/TileGridObjectCollection.cs | 152 - .../TileGridObjectCollection.cs.meta | 11 - .../SDK/Features/UX/Scripts/Controllers.meta | 8 - .../Controllers/MixedRealityControllerInfo.cs | 384 - .../MixedRealityControllerInfo.cs.meta | 11 - .../MixedRealityControllerVisualizer.cs | 72 - .../MixedRealityControllerVisualizer.cs.meta | 11 - ...WindowsMixedRealityControllerVisualizer.cs | 25 - ...wsMixedRealityControllerVisualizer.cs.meta | 11 - .../MRTK/SDK/Features/UX/Scripts/Cursors.meta | 9 - .../UX/Scripts/Cursors/AnimatedCursor.cs | 145 - .../UX/Scripts/Cursors/AnimatedCursor.cs.meta | 11 - .../Features/UX/Scripts/Cursors/BaseCursor.cs | 748 - .../UX/Scripts/Cursors/BaseCursor.cs.meta | 11 - .../UX/Scripts/Cursors/CursorContextInfo.cs | 48 - .../Scripts/Cursors/CursorContextInfo.cs.meta | 11 - .../UX/Scripts/Cursors/CursorModifier.cs | 235 - .../UX/Scripts/Cursors/CursorModifier.cs.meta | 11 - .../UX/Scripts/Cursors/FingerCursor.cs | 243 - .../UX/Scripts/Cursors/FingerCursor.cs.meta | 11 - .../Scripts/Cursors/InteractiveMeshCursor.cs | 181 - .../Cursors/InteractiveMeshCursor.cs.meta | 11 - .../Features/UX/Scripts/Cursors/MeshCursor.cs | 90 - .../UX/Scripts/Cursors/MeshCursor.cs.meta | 11 - .../UX/Scripts/Cursors/ObjectCursor.cs | 71 - .../UX/Scripts/Cursors/ObjectCursor.cs.meta | 11 - .../UX/Scripts/Cursors/SpriteCursor.cs | 83 - .../UX/Scripts/Cursors/SpriteCursor.cs.meta | 11 - .../UX/Scripts/Cursors/TeleportCursor.cs | 143 - .../UX/Scripts/Cursors/TeleportCursor.cs.meta | 11 - .../MRTK/SDK/Features/UX/Scripts/Loader.meta | 8 - .../UX/Scripts/Loader/LoaderController.cs | 298 - .../Scripts/Loader/LoaderController.cs.meta | 11 - .../SDK/Features/UX/Scripts/Pointers.meta | 8 - .../Scripts/Pointers/BaseControllerPointer.cs | 559 - .../Pointers/BaseControllerPointer.cs.meta | 11 - .../UX/Scripts/Pointers/BaseMousePointer.cs | 219 - .../Scripts/Pointers/BaseMousePointer.cs.meta | 11 - .../UX/Scripts/Pointers/CurvePointer.cs | 45 - .../UX/Scripts/Pointers/CurvePointer.cs.meta | 11 - .../Pointers/DefaultPointerMediator.cs | 252 - .../Pointers/DefaultPointerMediator.cs.meta | 11 - .../Pointers/DefaultPrimaryPointerSelector.cs | 164 - .../DefaultPrimaryPointerSelector.cs.meta | 11 - .../UX/Scripts/Pointers/GGVPointer.cs | 407 - .../UX/Scripts/Pointers/GGVPointer.cs.meta | 11 - .../UX/Scripts/Pointers/LinePointer.cs | 255 - .../UX/Scripts/Pointers/LinePointer.cs.meta | 11 - .../UX/Scripts/Pointers/MousePointer.cs | 126 - .../UX/Scripts/Pointers/MousePointer.cs.meta | 11 - .../Pointers/ParabolicTeleportPointer.cs | 109 - .../Pointers/ParabolicTeleportPointer.cs.meta | 11 - .../UX/Scripts/Pointers/PokePointer.cs | 500 - .../UX/Scripts/Pointers/PokePointer.cs.meta | 11 - .../Pointers/ScreenSpaceMousePointer.cs | 63 - .../Pointers/ScreenSpaceMousePointer.cs.meta | 11 - .../Scripts/Pointers/ShellHandRayPointer.cs | 150 - .../Pointers/ShellHandRayPointer.cs.meta | 11 - .../UX/Scripts/Pointers/SpherePointer.cs | 559 - .../UX/Scripts/Pointers/SpherePointer.cs.meta | 11 - .../Pointers/SpherePointerGrabPoint.cs | 49 - .../Pointers/SpherePointerGrabPoint.cs.meta | 11 - .../Scripts/Pointers/SpherePointerVisual.cs | 124 - .../Pointers/SpherePointerVisual.cs.meta | 11 - .../UX/Scripts/Pointers/TeleportPointer.cs | 559 - .../Scripts/Pointers/TeleportPointer.cs.meta | 11 - .../UX/Scripts/Pointers/TouchPointer.cs | 117 - .../UX/Scripts/Pointers/TouchPointer.cs.meta | 11 - .../Features/UX/Scripts/PressableButtons.meta | 8 - .../PhysicalPressEventRouter.cs | 115 - .../PhysicalPressEventRouter.cs.meta | 11 - .../PressableButtons/PressableButton.cs | 550 - .../PressableButtons/PressableButton.cs.meta | 11 - .../PressableButtonHoloLens2.cs | 207 - .../PressableButtonHoloLens2.cs.meta | 11 - .../UX/Scripts/PressableButtons/README.md | 48 - .../Scripts/PressableButtons/README.md.meta | 7 - .../PressableButtons/SubmitEventRouter.cs | 21 - .../SubmitEventRouter.cs.meta | 11 - .../UX/Scripts/ProgressIndicators.meta | 8 - .../ProgressIndicators/IProgressIndicator.cs | 48 - .../IProgressIndicator.cs.meta | 11 - .../ProgressIndicatorLoadingBar.cs | 149 - .../ProgressIndicatorLoadingBar.cs.meta | 11 - .../ProgressIndicatorObjectDisplay.cs | 191 - .../ProgressIndicatorObjectDisplay.cs.meta | 11 - .../ProgressIndicatorOrbsRotator.cs | 223 - .../ProgressIndicatorOrbsRotator.cs.meta | 11 - .../ProgressIndicatorState.cs | 13 - .../ProgressIndicatorState.cs.meta | 11 - .../UX/Scripts/ScrollingObjectCollection.meta | 8 - .../ScrollingObjectCollection.cs | 2180 - .../ScrollingObjectCollection.cs.meta | 11 - .../ScrollingObjectCollectionNode.cs | 28 - .../ScrollingObjectCollectionNode.cs.meta | 11 - .../MRTK/SDK/Features/UX/Scripts/Slate.meta | 8 - .../UX/Scripts/Slate/FollowMeToggle.cs | 213 - .../UX/Scripts/Slate/FollowMeToggle.cs.meta | 11 - .../Scripts/Slate/HandInteractionPanZoom.cs | 920 - .../Slate/HandInteractionPanZoom.cs.meta | 11 - .../MRTK/SDK/Features/UX/Scripts/Sliders.meta | 8 - .../UX/Scripts/Sliders/PinchSlider.cs | 457 - .../UX/Scripts/Sliders/PinchSlider.cs.meta | 11 - .../Features/UX/Scripts/Sliders/SliderAxis.cs | 18 - .../UX/Scripts/Sliders/SliderAxis.cs.meta | 11 - .../UX/Scripts/Sliders/SliderEvent.cs | 14 - .../UX/Scripts/Sliders/SliderEvent.cs.meta | 11 - .../UX/Scripts/Sliders/SliderEventData.cs | 42 - .../Scripts/Sliders/SliderEventData.cs.meta | 11 - .../UX/Scripts/Sliders/SliderSounds.cs | 118 - .../UX/Scripts/Sliders/SliderSounds.cs.meta | 11 - .../SDK/Features/UX/Scripts/Tooltips.meta | 8 - .../Tooltips/DestroyOnAnimationComplete.cs | 29 - .../DestroyOnAnimationComplete.cs.meta | 11 - .../UX/Scripts/Tooltips/IToolTipBackground.cs | 14 - .../Tooltips/IToolTipBackground.cs.meta | 11 - .../UX/Scripts/Tooltips/IToolTipHighlight.cs | 11 - .../Tooltips/IToolTipHighlight.cs.meta | 11 - .../Features/UX/Scripts/Tooltips/README.md | 29 - .../UX/Scripts/Tooltips/README.md.meta | 7 - .../Tooltips/SpeechConfirmationTooltip.cs | 27 - .../SpeechConfirmationTooltip.cs.meta | 11 - .../Features/UX/Scripts/Tooltips/ToolTip.cs | 655 - .../UX/Scripts/Tooltips/ToolTip.cs.meta | 11 - .../Scripts/Tooltips/ToolTipBackgroundBlob.cs | 246 - .../Tooltips/ToolTipBackgroundBlob.cs.meta | 11 - .../Tooltips/ToolTipBackgroundCorners.cs | 130 - .../Tooltips/ToolTipBackgroundCorners.cs.meta | 11 - .../Scripts/Tooltips/ToolTipBackgroundMesh.cs | 70 - .../Tooltips/ToolTipBackgroundMesh.cs.meta | 11 - .../UX/Scripts/Tooltips/ToolTipConnector.cs | 323 - .../Scripts/Tooltips/ToolTipConnector.cs.meta | 11 - .../Scripts/Tooltips/ToolTipLineHighlight.cs | 26 - .../Tooltips/ToolTipLineHighlight.cs.meta | 11 - .../UX/Scripts/Tooltips/ToolTipSpawner.cs | 166 - .../Scripts/Tooltips/ToolTipSpawner.cs.meta | 11 - .../UX/Scripts/Tooltips/ToolTipUtility.cs | 122 - .../Scripts/Tooltips/ToolTipUtility.cs.meta | 11 - .../UX/Scripts/Tooltips/TooltipEnums.meta | 8 - .../TooltipEnums/ConnectorFollowType.cs | 30 - .../TooltipEnums/ConnectorFollowType.cs.meta | 11 - .../TooltipEnums/ConnectorOrientType.cs | 20 - .../TooltipEnums/ConnectorOrientType.cs.meta | 11 - .../TooltipEnums/ConnectorPivotDirection.cs | 25 - .../ConnectorPivotDirection.cs.meta | 11 - .../TooltipEnums/ConnectorPivotMode.cs | 24 - .../TooltipEnums/ConnectorPivotMode.cs.meta | 11 - .../Tooltips/TooltipEnums/DisplayMode.cs | 28 - .../Tooltips/TooltipEnums/DisplayMode.cs.meta | 11 - .../TooltipEnums/ToolTipAttachPoint.cs | 38 - .../TooltipEnums/ToolTipAttachPoint.cs.meta | 11 - .../SDK/Features/UX/Scripts/Utilities.meta | 8 - .../UX/Scripts/Utilities/Billboard.cs | 117 - .../UX/Scripts/Utilities/Billboard.cs.meta | 11 - .../Features/UX/Scripts/Utilities/Easing.cs | 163 - .../UX/Scripts/Utilities/Easing.cs.meta | 11 - .../UX/Scripts/Utilities/GazeHandHelper.cs | 288 - .../Scripts/Utilities/GazeHandHelper.cs.meta | 11 - .../Utilities/InputRecordingControls.cs | 80 - .../Utilities/InputRecordingControls.cs.meta | 11 - .../Utilities/InteractableHighlight.cs | 289 - .../Utilities/InteractableHighlight.cs.meta | 11 - .../Scripts/Utilities/InteractableOnFocus.cs | 52 - .../Utilities/InteractableOnFocus.cs.meta | 11 - .../Utilities/PointerBehaviorControls.cs | 193 - .../Utilities/PointerBehaviorControls.cs.meta | 11 - .../UX/Scripts/Utilities/PrefabSpawner.cs | 250 - .../Scripts/Utilities/PrefabSpawner.cs.meta | 11 - .../Utilities/RectTransformCubeScaler.cs | 48 - .../Utilities/RectTransformCubeScaler.cs.meta | 11 - .../Utilities/ToggleHandVisualisation.cs | 54 - .../Utilities/ToggleHandVisualisation.cs.meta | 11 - .../Utilities/UIMaterialInstantiator.cs | 33 - .../Utilities/UIMaterialInstantiator.cs.meta | 11 - .../SDK/Features/UX/Scripts/VisualThemes.meta | 8 - .../UX/Scripts/VisualThemes/Core.meta | 8 - .../UX/Scripts/VisualThemes/Core/Theme.cs | 110 - .../Scripts/VisualThemes/Core/Theme.cs.meta | 13 - .../VisualThemes/Core/ThemeDefinition.cs | 173 - .../VisualThemes/Core/ThemeDefinition.cs.meta | 11 - .../VisualThemes/Core/ThemeEaseSettings.cs | 97 - .../Core/ThemeEaseSettings.cs.meta | 11 - .../VisualThemes/Core/ThemeProperty.cs | 34 - .../VisualThemes/Core/ThemeProperty.cs.meta | 11 - .../VisualThemes/Core/ThemePropertyValue.cs | 82 - .../Core/ThemePropertyValue.cs.meta | 11 - .../Core/ThemePropertyValueTypes.cs | 31 - .../Core/ThemePropertyValueTypes.cs.meta | 11 - .../VisualThemes/Core/ThemeStateProperty.cs | 185 - .../Core/ThemeStateProperty.cs.meta | 11 - .../VisualThemes/Core/VisualProfile.cs | 45 - .../VisualThemes/Core/VisualProfile.cs.meta | 13 - .../UX/Scripts/VisualThemes/States.meta | 8 - .../VisualThemes/States/BaseStateModel.cs | 177 - .../States/BaseStateModel.cs.meta | 11 - .../UX/Scripts/VisualThemes/States/State.cs | 90 - .../Scripts/VisualThemes/States/State.cs.meta | 11 - .../UX/Scripts/VisualThemes/States/States.cs | 146 - .../VisualThemes/States/States.cs.meta | 11 - .../UX/Scripts/VisualThemes/ThemeEngines.meta | 8 - .../ThemeEngines/InteractableActivateTheme.cs | 64 - .../InteractableActivateTheme.cs.meta | 11 - .../ThemeEngines/InteractableAnimatorTheme.cs | 79 - .../InteractableAnimatorTheme.cs.meta | 11 - .../ThemeEngines/InteractableAudioTheme.cs | 87 - .../InteractableAudioTheme.cs.meta | 11 - .../InteractableColorChildrenTheme.cs | 126 - .../InteractableColorChildrenTheme.cs.meta | 11 - .../ThemeEngines/InteractableColorTheme.cs | 340 - .../InteractableColorTheme.cs.meta | 11 - .../InteractableGrabScaleTheme.cs | 189 - .../InteractableGrabScaleTheme.cs.meta | 11 - .../ThemeEngines/InteractableMaterialTheme.cs | 104 - .../InteractableMaterialTheme.cs.meta | 11 - .../ThemeEngines/InteractableOffsetTheme.cs | 78 - .../InteractableOffsetTheme.cs.meta | 11 - .../ThemeEngines/InteractableRotationTheme.cs | 133 - .../InteractableRotationTheme.cs.meta | 11 - .../ThemeEngines/InteractableScaleTheme.cs | 98 - .../InteractableScaleTheme.cs.meta | 11 - .../ThemeEngines/InteractableShaderTheme.cs | 245 - .../InteractableShaderTheme.cs.meta | 11 - .../ThemeEngines/InteractableStringTheme.cs | 116 - .../InteractableStringTheme.cs.meta | 11 - .../ThemeEngines/InteractableTextureTheme.cs | 49 - .../InteractableTextureTheme.cs.meta | 11 - .../ThemeEngines/InteractableThemeBase.cs | 266 - .../InteractableThemeBase.cs.meta | 11 - .../InteractableThemeShaderUtils.cs | 103 - .../InteractableThemeShaderUtils.cs.meta | 11 - .../ThemeEngines/ScaleOffsetColorTheme.cs | 125 - .../ScaleOffsetColorTheme.cs.meta | 13 - .../Assets/MRTK/SDK/Features/Utilities.meta | 8 - .../Features/Utilities/HeadPositionOffset.cs | 32 - .../Utilities/HeadPositionOffset.cs.meta | 11 - .../SDK/Features/Utilities/InputRayUtils.cs | 197 - .../Features/Utilities/InputRayUtils.cs.meta | 11 - .../SDK/Features/Utilities/PointerUtils.cs | 271 - .../Features/Utilities/PointerUtils.cs.meta | 11 - .../MRTK/SDK/Features/Utilities/Smoothing.cs | 40 - .../SDK/Features/Utilities/Smoothing.cs.meta | 11 - .../MRTK/SDK/Features/Utilities/Solvers.meta | 10 - .../Utilities/Solvers/ConstantViewSize.cs | 232 - .../Solvers/ConstantViewSize.cs.meta | 11 - .../Utilities/Solvers/ControllerFinder.cs | 169 - .../Solvers/ControllerFinder.cs.meta | 11 - .../Utilities/Solvers/HandConstraint.cs | 712 - .../Utilities/Solvers/HandConstraint.cs.meta | 11 - .../Utilities/Solvers/HandConstraintPalmUp.cs | 429 - .../Solvers/HandConstraintPalmUp.cs.meta | 11 - .../Features/Utilities/Solvers/InBetween.cs | 142 - .../Utilities/Solvers/InBetween.cs.meta | 11 - .../Features/Utilities/Solvers/Momentum.cs | 148 - .../Utilities/Solvers/Momentum.cs.meta | 11 - .../SDK/Features/Utilities/Solvers/Orbital.cs | 164 - .../Utilities/Solvers/Orbital.cs.meta | 11 - .../SDK/Features/Utilities/Solvers/Overlap.cs | 25 - .../Utilities/Solvers/Overlap.cs.meta | 11 - .../Features/Utilities/Solvers/RadialView.cs | 299 - .../Utilities/Solvers/RadialView.cs.meta | 11 - .../SDK/Features/Utilities/Solvers/Solver.cs | 402 - .../Features/Utilities/Solvers/Solver.cs.meta | 11 - .../Utilities/Solvers/SolverHandler.cs | 528 - .../Utilities/Solvers/SolverHandler.cs.meta | 11 - .../Utilities/Solvers/SurfaceMagnetism.cs | 803 - .../Solvers/SurfaceMagnetism.cs.meta | 11 - .../Features/Utilities/Solvers/TapToPlace.cs | 434 - .../Utilities/Solvers/TapToPlace.cs.meta | 11 - .../Features/Utilities/SpatialMeshExporter.cs | 82 - .../Utilities/SpatialMeshExporter.cs.meta | 11 - AR-ROS/Assets/MRTK/SDK/Features/toc.yml | 11 - AR-ROS/Assets/MRTK/SDK/Features/toc.yml.meta | 7 - AR-ROS/Assets/MRTK/SDK/License.txt | 21 - AR-ROS/Assets/MRTK/SDK/License.txt.meta | 7 - AR-ROS/Assets/MRTK/SDK/MRTK.SDK.asmdef | 20 - AR-ROS/Assets/MRTK/SDK/MRTK.SDK.asmdef.meta | 7 - AR-ROS/Assets/MRTK/SDK/MRTK.SDK.sentinel | 0 AR-ROS/Assets/MRTK/SDK/MRTK.SDK.sentinel.meta | 7 - AR-ROS/Assets/MRTK/SDK/Profiles.meta | 8 - ...dRealityBoundaryVisualizationProfile.asset | 34 - ...ityBoundaryVisualizationProfile.asset.meta | 8 - .../DefaultMixedRealityCameraProfile.asset | 33 - ...efaultMixedRealityCameraProfile.asset.meta | 8 - ...MixedRealityControllerMappingProfile.asset | 4556 -- ...RealityControllerMappingProfile.asset.meta | 8 - ...ealityControllerVisualizationProfile.asset | 53 - ...yControllerVisualizationProfile.asset.meta | 8 - ...efaultMixedRealityDiagnosticsProfile.asset | 26 - ...tMixedRealityDiagnosticsProfile.asset.meta | 8 - ...efaultMixedRealityEyeTrackingProfile.asset | 16 - ...tMixedRealityEyeTrackingProfile.asset.meta | 8 - .../DefaultMixedRealityGesturesProfile.asset | 45 - ...aultMixedRealityGesturesProfile.asset.meta | 8 - ...faultMixedRealityHandTrackingProfile.asset | 25 - ...MixedRealityHandTrackingProfile.asset.meta | 8 - ...tMixedRealityInputActionRulesProfile.asset | 21 - ...dRealityInputActionRulesProfile.asset.meta | 8 - ...faultMixedRealityInputActionsProfile.asset | 61 - ...MixedRealityInputActionsProfile.asset.meta | 8 - ...faultMixedRealityInputPointerProfile.asset | 66 - ...MixedRealityInputPointerProfile.asset.meta | 8 - ...ultMixedRealityInputRecordingProfile.asset | 19 - ...xedRealityInputRecordingProfile.asset.meta | 8 - ...ltMixedRealityInputSimulationProfile.asset | 81 - ...edRealityInputSimulationProfile.asset.meta | 8 - ...efaultMixedRealityInputSystemProfile.asset | 105 - ...tMixedRealityInputSystemProfile.asset.meta | 8 - ...DefaultMixedRealityMouseInputProfile.asset | 17 - ...ltMixedRealityMouseInputProfile.asset.meta | 8 - ...ityRegisteredServiceProvidersProfile.asset | 16 - ...gisteredServiceProvidersProfile.asset.meta | 8 - ...efaultMixedRealitySceneSystemProfile.asset | 83 - ...tMixedRealitySceneSystemProfile.asset.meta | 8 - ...ySpatialAwarenessMeshObserverProfile.asset | 27 - ...ialAwarenessMeshObserverProfile.asset.meta | 8 - ...RealitySpatialAwarenessSystemProfile.asset | 23 - ...tySpatialAwarenessSystemProfile.asset.meta | 8 - ...ultMixedRealitySpeechCommandsProfile.asset | 46 - ...xedRealitySpeechCommandsProfile.asset.meta | 8 - ...edRealityToolkitConfigurationProfile.asset | 57 - ...lityToolkitConfigurationProfile.asset.meta | 8 - .../Assets/MRTK/SDK/Profiles/HoloLens1.meta | 8 - .../DefaultHoloLens1CameraProfile.asset | 33 - .../DefaultHoloLens1CameraProfile.asset.meta | 8 - ...DefaultHoloLens1ConfigurationProfile.asset | 54 - ...ltHoloLens1ConfigurationProfile.asset.meta | 8 - .../DefaultHoloLens1HandTrackingProfile.asset | 25 - ...ultHoloLens1HandTrackingProfile.asset.meta | 8 - ...faultHoloLens1InputSimulationProfile.asset | 72 - ...HoloLens1InputSimulationProfile.asset.meta | 8 - .../DefaultHoloLens1InputSystemProfile.asset | 113 - ...aultHoloLens1InputSystemProfile.asset.meta | 8 - .../Assets/MRTK/SDK/Profiles/HoloLens2.meta | 8 - .../DefaultHoloLens2CameraProfile.asset | 33 - .../DefaultHoloLens2CameraProfile.asset.meta | 8 - ...DefaultHoloLens2ConfigurationProfile.asset | 55 - ...ltHoloLens2ConfigurationProfile.asset.meta | 8 - .../DefaultHoloLens2HandTrackingProfile.asset | 25 - ...ultHoloLens2HandTrackingProfile.asset.meta | 8 - .../DefaultHoloLens2InputSystemProfile.asset | 113 - ...aultHoloLens2InputSystemProfile.asset.meta | 8 - AR-ROS/Assets/MRTK/SDK/Profiles/README.md | 31 - .../Assets/MRTK/SDK/Profiles/README.md.meta | 7 - AR-ROS/Assets/MRTK/SDK/Profiles/toc.yml | 3 - AR-ROS/Assets/MRTK/SDK/Profiles/toc.yml.meta | 7 - AR-ROS/Assets/MRTK/SDK/StandardAssets.meta | 8 - .../MRTK/SDK/StandardAssets/Controllers.meta | 8 - .../MRTK/SDK/StandardAssets/Materials.meta | 8 - .../Materials/MRTK_ArticulatedHandMesh.mat | 59 - .../MRTK_ArticulatedHandMesh.mat.meta | 8 - .../Materials/MRTK_DefaultCursor.mat | 155 - .../Materials/MRTK_DefaultCursor.mat.meta | 8 - .../Materials/MRTK_DefaultPointerLine.mat | 190 - .../MRTK_DefaultPointerLine.mat.meta | 8 - .../MRTK_DefaultPointerLineNoTarget.mat | 190 - .../MRTK_DefaultPointerLineNoTarget.mat.meta | 8 - .../Materials/MRTK_FingerTipCursor.mat | 38 - .../Materials/MRTK_FingerTipCursor.mat.meta | 8 - .../Materials/MRTK_GrabPointerGrabPoint.mat | 189 - .../MRTK_GrabPointerGrabPoint.mat.meta | 8 - .../Materials/MRTK_GrabPointerTetherLine.mat | 190 - .../MRTK_GrabPointerTetherLine.mat.meta | 8 - .../MRTK_PressableInteractablesButtonBox.mat | 136 - ...K_PressableInteractablesButtonBox.mat.meta | 8 - .../Materials/MRTK_Slider_Default.mat | 185 - .../Materials/MRTK_Slider_Default.mat.meta | 8 - .../StandardAssets/Materials/MouseCursor.mat | 205 - .../Materials/MouseCursor.mat.meta | 8 - .../StandardAssets/Materials/TooltipLines.mat | 142 - .../Materials/TooltipLines.mat.meta | 8 - .../Materials/TooltipWithBorder.mat | 171 - .../Materials/TooltipWithBorder.mat.meta | 8 - .../Materials/TooltipWithoutBorder.mat | 171 - .../Materials/TooltipWithoutBorder.mat.meta | 8 - .../MRTK/SDK/StandardAssets/Models.meta | 8 - .../SDK/StandardAssets/Models/Handle_Base.FBX | Bin 44736 -> 0 bytes .../Models/Handle_Base.FBX.meta | 110 - .../Models/MRTK_BoundingBox_RotateHandle.fbx | Bin 13792 -> 0 bytes .../MRTK_BoundingBox_RotateHandle.fbx.meta | 98 - .../Models/MRTK_BoundingBox_ScaleHandle.fbx | Bin 14752 -> 0 bytes .../MRTK_BoundingBox_ScaleHandle.fbx.meta | 98 - .../MRTK_BoundingBox_ScaleHandle_Slate.fbx | Bin 13504 -> 0 bytes ...RTK_BoundingBox_ScaleHandle_Slate.fbx.meta | 97 - .../MRTK_BoundingBox_TranslateHandle.fbx | Bin 12876 -> 0 bytes .../MRTK_BoundingBox_TranslateHandle.fbx.meta | 97 - .../Models/MRTK_FingerTipCursor.fbx | 278 - .../Models/MRTK_FingerTipCursor.fbx.meta | 102 - .../Models/SpatialAwareness.meta | 8 - .../SpatialAwareness/ExampleSpatialMesh.room | Bin 2446100 -> 0 bytes .../ExampleSpatialMesh.room.meta | 1247 - .../MRTK/SDK/StandardAssets/Prefabs.meta | 8 - .../Prefabs/10x32mm_Square.prefab | 110 - .../Prefabs/10x32mm_Square.prefab.meta | 7 - .../Prefabs/32x32mm_Square.prefab | 110 - .../Prefabs/32x32mm_Square.prefab.meta | 7 - .../Prefabs/ArticulatedHandMesh.prefab | 79 - .../Prefabs/ArticulatedHandMesh.prefab.meta | 7 - .../Prefabs/ArticulatedHandMeshPulse.prefab | 79 - .../ArticulatedHandMeshPulse.prefab.meta | 7 - .../StandardAssets/Prefabs/Handle_Base.prefab | 266 - .../Prefabs/Handle_Base.prefab.meta | 7 - .../Prefabs/InputSimulationIndicators.prefab | 630 - .../InputSimulationIndicators.prefab.meta | 7 - .../MRTK_BoundingBox_RotateHandle.prefab | 79 - .../MRTK_BoundingBox_RotateHandle.prefab.meta | 7 - .../MRTK_BoundingBox_ScaleHandle.prefab | 79 - .../MRTK_BoundingBox_ScaleHandle.prefab.meta | 7 - .../MRTK_BoundingBox_ScaleHandle_Slate.prefab | 79 - ..._BoundingBox_ScaleHandle_Slate.prefab.meta | 7 - .../MRTK_BoundingBox_TranslateHandle.prefab | 79 - ...TK_BoundingBox_TranslateHandle.prefab.meta | 7 - .../MRTK/SDK/StandardAssets/Prefabs/Text.meta | 8 - .../Prefabs/Text/3DTextSelawik.prefab | 93 - .../Prefabs/Text/3DTextSelawik.prefab.meta | 7 - .../Prefabs/Text/3DTextSelawikBold.prefab | 93 - .../Text/3DTextSelawikBold.prefab.meta | 7 - .../Prefabs/Text/3DTextSelawikLight.prefab | 93 - .../Text/3DTextSelawikLight.prefab.meta | 7 - .../Prefabs/Text/3DTextSelawikSemibold.prefab | 93 - .../Text/3DTextSelawikSemibold.prefab.meta | 7 - .../Text/3DTextSelawikSemilight.prefab | 93 - .../Text/3DTextSelawikSemilight.prefab.meta | 7 - .../Prefabs/Text/UITextSelawik.prefab | 180 - .../Prefabs/Text/UITextSelawik.prefab.meta | 7 - .../Prefabs/Text/UITextSelawikBold.prefab | 180 - .../Text/UITextSelawikBold.prefab.meta | 7 - .../Prefabs/Text/UITextSelawikLight.prefab | 180 - .../Text/UITextSelawikLight.prefab.meta | 7 - .../Prefabs/Text/UITextSelawikSemibold.prefab | 180 - .../Text/UITextSelawikSemibold.prefab.meta | 7 - .../Text/UITextSelawikSemilight.prefab | 180 - .../Text/UITextSelawikSemilight.prefab.meta | 7 - .../MRTK/SDK/StandardAssets/Shaders.meta | 8 - .../Shaders/FingerTipCursor.shader | 262 - .../Shaders/FingerTipCursor.shader.meta | 9 - .../Shaders/HandTriangles.shader | 812 - .../Shaders/HandTriangles.shader.meta | 9 - .../Shaders/SR_Triangles.shader | 564 - .../Shaders/SR_Triangles.shader.meta | 9 - .../Shaders/SR_Triangles_Object_Space.shader | 608 - .../SR_Triangles_Object_Space.shader.meta | 9 - .../MRTK/SDK/StandardAssets/Sprites.meta | 8 - .../Sprites/DefaultIconsSpriteSheet.psd | Bin 628580 -> 0 bytes .../Sprites/DefaultIconsSpriteSheet.psd.meta | 404 - .../MRTK/SDK/StandardAssets/Textures.meta | 8 - .../StandardAssets/Textures/CircleIcon.png | Bin 54877 -> 0 bytes .../Textures/CircleIcon.png.meta | 110 - .../SDK/StandardAssets/Textures/GrabArea.png | Bin 5212 -> 0 bytes .../StandardAssets/Textures/GrabArea.png.meta | 88 - .../Textures/GrabAreaSingle.png | Bin 6032 -> 0 bytes .../Textures/GrabAreaSingle.png.meta | 88 - .../SDK/StandardAssets/Textures/IconAdd.png | Bin 2897 -> 0 bytes .../StandardAssets/Textures/IconAdd.png.meta | 110 - .../StandardAssets/Textures/IconAdjust.png | Bin 6523 -> 0 bytes .../Textures/IconAdjust.png.meta | 115 - .../StandardAssets/Textures/IconCamera.png | Bin 7057 -> 0 bytes .../Textures/IconCamera.png.meta | 110 - .../StandardAssets/Textures/IconCheckOff.png | Bin 2794 -> 0 bytes .../Textures/IconCheckOff.png.meta | 110 - .../StandardAssets/Textures/IconCheckOn.png | Bin 5412 -> 0 bytes .../Textures/IconCheckOn.png.meta | 110 - .../SDK/StandardAssets/Textures/IconClose.png | Bin 12873 -> 0 bytes .../Textures/IconClose.png.meta | 115 - .../SDK/StandardAssets/Textures/IconDone.png | Bin 4857 -> 0 bytes .../StandardAssets/Textures/IconDone.png.meta | 115 - .../SDK/StandardAssets/Textures/IconDot.png | Bin 8077 -> 0 bytes .../StandardAssets/Textures/IconDot.png.meta | 110 - .../StandardAssets/Textures/IconFollowMe.png | Bin 8976 -> 0 bytes .../Textures/IconFollowMe.png.meta | 115 - .../Textures/IconHandActiveLeft.png | Bin 36737 -> 0 bytes .../Textures/IconHandActiveLeft.png.meta | 110 - .../Textures/IconHandActiveRight.png | Bin 36638 -> 0 bytes .../Textures/IconHandActiveRight.png.meta | 110 - .../Textures/IconHandIdleLeft.png | Bin 44790 -> 0 bytes .../Textures/IconHandIdleLeft.png.meta | 110 - .../Textures/IconHandIdleRight.png | Bin 44701 -> 0 bytes .../Textures/IconHandIdleRight.png.meta | 110 - .../StandardAssets/Textures/IconHandJoint.png | Bin 17732 -> 0 bytes .../Textures/IconHandJoint.png.meta | 115 - .../StandardAssets/Textures/IconHandMesh.png | Bin 12476 -> 0 bytes .../Textures/IconHandMesh.png.meta | 115 - .../StandardAssets/Textures/IconHandRay.png | Bin 13520 -> 0 bytes .../Textures/IconHandRay.png.meta | 115 - .../Textures/IconHandUntrackedLeft.png | Bin 49472 -> 0 bytes .../Textures/IconHandUntrackedLeft.png.meta | 110 - .../Textures/IconHandUntrackedRight.png | Bin 49504 -> 0 bytes .../Textures/IconHandUntrackedRight.png.meta | 110 - .../SDK/StandardAssets/Textures/IconHide.png | Bin 4811 -> 0 bytes .../StandardAssets/Textures/IconHide.png.meta | 115 - .../SDK/StandardAssets/Textures/IconHome.png | Bin 3919 -> 0 bytes .../StandardAssets/Textures/IconHome.png.meta | 110 - .../StandardAssets/Textures/IconMRTKLogo.png | Bin 26618 -> 0 bytes .../Textures/IconMRTKLogo.png.meta | 110 - .../StandardAssets/Textures/IconMessage.png | Bin 3138 -> 0 bytes .../Textures/IconMessage.png.meta | 110 - .../Textures/IconMicrophone.png | Bin 5691 -> 0 bytes .../Textures/IconMicrophone.png.meta | 110 - .../SDK/StandardAssets/Textures/IconPin.png | Bin 9038 -> 0 bytes .../StandardAssets/Textures/IconPin.png.meta | 115 - .../StandardAssets/Textures/IconProfiler.png | Bin 3044 -> 0 bytes .../Textures/IconProfiler.png.meta | 115 - .../StandardAssets/Textures/IconRadioOff.png | Bin 16384 -> 0 bytes .../Textures/IconRadioOff.png.meta | 110 - .../StandardAssets/Textures/IconRadioOn.png | Bin 20187 -> 0 bytes .../Textures/IconRadioOn.png.meta | 110 - .../StandardAssets/Textures/IconRefresh.png | Bin 8959 -> 0 bytes .../Textures/IconRefresh.png.meta | 110 - .../StandardAssets/Textures/IconSearch.png | Bin 8944 -> 0 bytes .../Textures/IconSearch.png.meta | 110 - .../StandardAssets/Textures/IconSettings.png | Bin 16120 -> 0 bytes .../Textures/IconSettings.png.meta | 110 - .../SDK/StandardAssets/Textures/IconShow.png | Bin 5452 -> 0 bytes .../StandardAssets/Textures/IconShow.png.meta | 115 - .../Textures/IconSpatialMapping.png | Bin 6667 -> 0 bytes .../Textures/IconSpatialMapping.png.meta | 110 - .../SDK/StandardAssets/Textures/IconStar.png | Bin 10387 -> 0 bytes .../StandardAssets/Textures/IconStar.png.meta | 110 - .../StandardAssets/Textures/IconSwitchOff.png | Bin 12435 -> 0 bytes .../Textures/IconSwitchOff.png.meta | 110 - .../StandardAssets/Textures/IconSwitchOn.png | Bin 11254 -> 0 bytes .../Textures/IconSwitchOn.png.meta | 110 - .../StandardAssets/Textures/ResetRotation.png | Bin 6522 -> 0 bytes .../Textures/ResetRotation.png.meta | 110 - AR-ROS/Assets/MRTK/SDK/Version.txt | 1 - AR-ROS/Assets/MRTK/SDK/Version.txt.meta | 7 - AR-ROS/Assets/MRTK/SDK/toc.yml | 6 - AR-ROS/Assets/MRTK/SDK/toc.yml.meta | 7 - AR-ROS/Assets/MRTK/Services.meta | 8 - .../Assets/MRTK/Services/BoundarySystem.meta | 8 - .../MRTK/Services/BoundarySystem/XR2018.meta | 8 - .../BoundarySystem/XR2018/AssemblyInfo.cs | 7 - .../XR2018/AssemblyInfo.cs.meta | 11 - .../XR2018/MRTK.BoundarySystem.asmdef | 16 - .../XR2018/MRTK.BoundarySystem.asmdef.meta | 7 - .../XR2018/MixedRealityBoundarySystem.cs | 115 - .../XR2018/MixedRealityBoundarySystem.cs.meta | 11 - .../Services/BoundarySystem/XR2018/csc.rsp | 1 - .../BoundarySystem/XR2018/csc.rsp.meta | 7 - AR-ROS/Assets/MRTK/Services/CameraSystem.meta | 8 - .../Services/CameraSystem/AssemblyInfo.cs | 7 - .../CameraSystem/AssemblyInfo.cs.meta | 11 - .../CameraSystem/MRTK.CameraSystem.asmdef | 14 - .../MRTK.CameraSystem.asmdef.meta | 7 - .../CameraSystem/MixedRealityCameraSystem.cs | 272 - .../MixedRealityCameraSystem.cs.meta | 11 - .../MRTK/Services/DiagnosticsSystem.meta | 8 - .../DiagnosticsSystem/AssemblyInfo.cs | 7 - .../DiagnosticsSystem/AssemblyInfo.cs.meta | 11 - .../DiagnosticsSystemVoiceControls.cs | 75 - .../DiagnosticsSystemVoiceControls.cs.meta | 11 - .../MRTK.DiagnosticsSystem.asmdef | 14 - .../MRTK.DiagnosticsSystem.asmdef.meta | 7 - .../Services/DiagnosticsSystem/Materials.meta | 8 - .../Materials/DiagnosticsInstancedColored.mat | 161 - .../DiagnosticsInstancedColored.mat.meta | 8 - .../MixedRealityDiagnosticsSystem.cs | 412 - .../MixedRealityDiagnosticsSystem.cs.meta | 11 - .../MixedRealityToolkitVisualProfiler.cs | 873 - .../MixedRealityToolkitVisualProfiler.cs.meta | 11 - .../VisualProfilerControl.cs | 30 - .../VisualProfilerControl.cs.meta | 11 - AR-ROS/Assets/MRTK/Services/InputSystem.meta | 8 - .../MRTK/Services/InputSystem/AssemblyInfo.cs | 7 - .../Services/InputSystem/AssemblyInfo.cs.meta | 11 - .../BaseNearInteractionTouchable.cs | 75 - .../BaseNearInteractionTouchable.cs.meta | 11 - .../InputSystem/DefaultRaycastProvider.cs | 77 - .../DefaultRaycastProvider.cs.meta | 11 - .../MRTK/Services/InputSystem/Editor.meta | 8 - .../InputSystem/Editor/AssemblyInfo.cs | 7 - .../InputSystem/Editor/AssemblyInfo.cs.meta | 11 - .../Editor/MRTK.InputSystem.Editor.asmdef | 18 - .../MRTK.InputSystem.Editor.asmdef.meta | 7 - .../Editor/MixedRealityCanvasInspector.cs | 181 - .../MixedRealityCanvasInspector.cs.meta | 11 - .../MixedRealityInputModuleInspector.cs | 47 - .../MixedRealityInputModuleInspector.cs.meta | 11 - .../NearInteractionTouchableInspector.cs | 132 - .../NearInteractionTouchableInspector.cs.meta | 11 - ...NearInteractionTouchableVolumeInspector.cs | 25 - ...nteractionTouchableVolumeInspector.cs.meta | 11 - .../Services/InputSystem/FocusProvider.cs | 1717 - .../InputSystem/FocusProvider.cs.meta | 11 - .../GazePointerVisibilityStateMachine.cs | 109 - .../GazePointerVisibilityStateMachine.cs.meta | 11 - .../MRTK/Services/InputSystem/GazeProvider.cs | 639 - .../Services/InputSystem/GazeProvider.cs.meta | 11 - .../InputSystemGlobalHandlerListener.cs | 80 - .../InputSystemGlobalHandlerListener.cs.meta | 11 - .../InputSystem/InputSystemGlobalListener.cs | 72 - .../InputSystemGlobalListener.cs.meta | 11 - .../InputSystem/MRTK.InputSystem.asmdef | 15 - .../InputSystem/MRTK.InputSystem.asmdef.meta | 7 - .../InputSystem/MixedRealityInputModule.cs | 408 - .../MixedRealityInputModule.cs.meta | 11 - .../InputSystem/MixedRealityInputSystem.cs | 2147 - .../MixedRealityInputSystem.cs.meta | 11 - .../InputSystem/NearInteractionGrabbable.cs | 58 - .../NearInteractionGrabbable.cs.meta | 11 - .../InputSystem/NearInteractionTouchable.cs | 247 - .../NearInteractionTouchable.cs.meta | 11 - .../NearInteractionTouchableSurface.cs | 28 - .../NearInteractionTouchableSurface.cs.meta | 11 - .../NearInteractionTouchableUnityUI.cs | 62 - .../NearInteractionTouchableUnityUI.cs.meta | 11 - .../NearInteractionTouchableVolume.cs | 59 - .../NearInteractionTouchableVolume.cs.meta | 11 - .../MRTK/Services/InputSystem/Utilities.meta | 8 - .../InputSystem/Utilities/CanvasUtility.cs | 57 - .../Utilities/CanvasUtility.cs.meta | 11 - .../InputSystem/Utilities/ScaleMeshEffect.cs | 67 - .../Utilities/ScaleMeshEffect.cs.meta | 11 - AR-ROS/Assets/MRTK/Services/License.txt | 21 - AR-ROS/Assets/MRTK/Services/License.txt.meta | 7 - .../MRTK/Services/MRTK.Services.sentinel | 0 .../MRTK/Services/MRTK.Services.sentinel.meta | 7 - AR-ROS/Assets/MRTK/Services/SceneSystem.meta | 8 - .../MRTK/Services/SceneSystem/AssemblyInfo.cs | 7 - .../Services/SceneSystem/AssemblyInfo.cs.meta | 11 - .../SceneSystem/MRTK.SceneSystem.asmdef | 14 - .../SceneSystem/MRTK.SceneSystem.asmdef.meta | 7 - .../SceneSystem/MixedRealitySceneSystem.cs | 1378 - .../MixedRealitySceneSystem.cs.meta | 11 - ...MixedRealitySceneSystemEditorOperations.cs | 764 - ...RealitySceneSystemEditorOperations.cs.meta | 11 - .../ResolveDuplicateScenesWindow.cs | 120 - .../ResolveDuplicateScenesWindow.cs.meta | 11 - .../MRTK/Services/SpatialAwarenessSystem.meta | 8 - .../SpatialAwarenessSystem/AssemblyInfo.cs | 7 - .../AssemblyInfo.cs.meta | 11 - .../MRTK.SpatialAwarenessSystem.asmdef | 14 - .../MRTK.SpatialAwarenessSystem.asmdef.meta | 7 - .../MixedRealitySpatialAwarenessSystem.cs | 430 - ...MixedRealitySpatialAwarenessSystem.cs.meta | 11 - .../Assets/MRTK/Services/TeleportSystem.meta | 8 - .../Services/TeleportSystem/AssemblyInfo.cs | 7 - .../TeleportSystem/AssemblyInfo.cs.meta | 11 - .../TeleportSystem/MRTK.TeleportSystem.asmdef | 14 - .../MRTK.TeleportSystem.asmdef.meta | 7 - .../MixedRealityTeleportSystem.cs | 318 - .../MixedRealityTeleportSystem.cs.meta | 11 - AR-ROS/Assets/MRTK/Services/Version.txt | 1 - AR-ROS/Assets/MRTK/Services/Version.txt.meta | 7 - AR-ROS/Assets/MRTK/StandardAssets.meta | 8 - AR-ROS/Assets/MRTK/StandardAssets/Audio.meta | 8 - .../StandardAssets/Audio/MRTK_ButtonPress.wav | Bin 12498 -> 0 bytes .../Audio/MRTK_ButtonPress.wav.meta | 22 - .../Audio/MRTK_ButtonUnpress.wav | Bin 30256 -> 0 bytes .../Audio/MRTK_ButtonUnpress.wav.meta | 22 - .../MRTK/StandardAssets/Audio/MRTK_Gem.wav | Bin 1011998 -> 0 bytes .../StandardAssets/Audio/MRTK_Gem.wav.meta | 22 - .../Audio/MRTK_Manipulation_End.wav | Bin 13532 -> 0 bytes .../Audio/MRTK_Manipulation_End.wav.meta | 22 - .../Audio/MRTK_Manipulation_Start.wav | Bin 26636 -> 0 bytes .../Audio/MRTK_Manipulation_Start.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Move_End.wav | Bin 22936 -> 0 bytes .../Audio/MRTK_Move_End.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Move_Start.wav | Bin 17336 -> 0 bytes .../Audio/MRTK_Move_Start.wav.meta | 22 - .../Audio/MRTK_Notification.wav | Bin 259442 -> 0 bytes .../Audio/MRTK_Notification.wav.meta | 22 - .../Audio/MRTK_Rotate_Start.wav | Bin 18168 -> 0 bytes .../Audio/MRTK_Rotate_Start.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Rotate_Stop.wav | Bin 7196 -> 0 bytes .../Audio/MRTK_Rotate_Stop.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Scale_Start.wav | Bin 22496 -> 0 bytes .../Audio/MRTK_Scale_Start.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Scale_Stop.wav | Bin 7210 -> 0 bytes .../Audio/MRTK_Scale_Stop.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Select_Main.wav | Bin 177382 -> 0 bytes .../Audio/MRTK_Select_Main.wav.meta | 22 - .../Audio/MRTK_Select_Secondary.wav | Bin 134030 -> 0 bytes .../Audio/MRTK_Select_Secondary.wav.meta | 22 - .../Audio/MRTK_Shell_Click_In.wav | Bin 19540 -> 0 bytes .../Audio/MRTK_Shell_Click_In.wav.meta | 22 - .../Audio/MRTK_Shell_Click_Init.wav | Bin 11366 -> 0 bytes .../Audio/MRTK_Shell_Click_Init.wav.meta | 22 - .../Audio/MRTK_Shell_Click_Out.wav | Bin 14428 -> 0 bytes .../Audio/MRTK_Shell_Click_Out.wav.meta | 22 - .../Audio/MRTK_Slate_Release.wav | Bin 7136 -> 0 bytes .../Audio/MRTK_Slate_Release.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Slate_Touch.wav | Bin 26336 -> 0 bytes .../Audio/MRTK_Slate_Touch.wav.meta | 22 - .../StandardAssets/Audio/MRTK_Slider_Grab.wav | Bin 3554 -> 0 bytes .../Audio/MRTK_Slider_Grab.wav.meta | 22 - .../Audio/MRTK_Slider_Pass_Notch.wav | Bin 2776 -> 0 bytes .../Audio/MRTK_Slider_Pass_Notch.wav.meta | 22 - .../Audio/MRTK_Slider_Release.wav | Bin 2414 -> 0 bytes .../Audio/MRTK_Slider_Release.wav.meta | 22 - .../MRTK/StandardAssets/Audio/MRTK_Tap.wav | Bin 3236 -> 0 bytes .../StandardAssets/Audio/MRTK_Tap.wav.meta | 22 - .../Audio/MRTK_Voice_Confirmation.wav | Bin 520570 -> 0 bytes .../Audio/MRTK_Voice_Confirmation.wav.meta | 22 - AR-ROS/Assets/MRTK/StandardAssets/Fonts.meta | 8 - .../MRTK/StandardAssets/Fonts/LICENSE.txt | 91 - .../StandardAssets/Fonts/LICENSE.txt.meta | 7 - .../MRTK/StandardAssets/Fonts/selawk.ttf | Bin 44224 -> 0 bytes .../MRTK/StandardAssets/Fonts/selawk.ttf.meta | 24 - .../MRTK/StandardAssets/Fonts/selawkb.ttf | Bin 44068 -> 0 bytes .../StandardAssets/Fonts/selawkb.ttf.meta | 23 - .../MRTK/StandardAssets/Fonts/selawkl.ttf | Bin 44232 -> 0 bytes .../StandardAssets/Fonts/selawkl.ttf.meta | 26 - .../MRTK/StandardAssets/Fonts/selawksb.ttf | Bin 44192 -> 0 bytes .../StandardAssets/Fonts/selawksb.ttf.meta | 26 - .../MRTK/StandardAssets/Fonts/selawksl.ttf | Bin 44260 -> 0 bytes .../StandardAssets/Fonts/selawksl.ttf.meta | 25 - .../MRTK/StandardAssets/FontsSDFTextures.meta | 8 - AR-ROS/Assets/MRTK/StandardAssets/Icons.meta | 8 - .../MRTK/StandardAssets/Icons/mic_icon.png | Bin 627 -> 0 bytes .../StandardAssets/Icons/mic_icon.png.meta | 110 - .../Icons/mixed_reality_icon.png | Bin 855 -> 0 bytes .../Icons/mixed_reality_icon.png.meta | 110 - .../MRTK/StandardAssets/Icons/script_icon.png | Bin 654 -> 0 bytes .../StandardAssets/Icons/script_icon.png.meta | 110 - .../StandardAssets/Icons/settings_icon.png | Bin 629 -> 0 bytes .../Icons/settings_icon.png.meta | 110 - .../MRTK/StandardAssets/Icons/shapes_icon.png | Bin 1131 -> 0 bytes .../StandardAssets/Icons/shapes_icon.png.meta | 110 - .../StandardAssets/Icons/spatial_icon.png | Bin 812 -> 0 bytes .../Icons/spatial_icon.png.meta | 110 - .../Icons/spatial_understanding_icon.png | Bin 1098 -> 0 bytes .../Icons/spatial_understanding_icon.png.meta | 110 - .../MRTK/StandardAssets/Icons/test_icon.png | Bin 1975 -> 0 bytes .../StandardAssets/Icons/test_icon.png.meta | 132 - .../StandardAssets/Icons/toolkit_icon.png | Bin 682 -> 0 bytes .../Icons/toolkit_icon.png.meta | 110 - .../MRTK/StandardAssets/Icons/ux_icon.png | Bin 777 -> 0 bytes .../StandardAssets/Icons/ux_icon.png.meta | 110 - .../MRTK.StandardAssets.sentinel | 0 .../MRTK.StandardAssets.sentinel.meta | 7 - .../Assets/MRTK/StandardAssets/Materials.meta | 8 - .../Materials/MRTK_Occlusion.mat | 77 - .../Materials/MRTK_Occlusion.mat.meta | 8 - .../Materials/MRTK_Standard_Black.mat | 191 - .../Materials/MRTK_Standard_Black.mat.meta | 8 - .../Materials/MRTK_Standard_Blue.mat | 183 - .../Materials/MRTK_Standard_Blue.mat.meta | 8 - .../Materials/MRTK_Standard_Charcoal.mat | 183 - .../Materials/MRTK_Standard_Charcoal.mat.meta | 8 - .../Materials/MRTK_Standard_Cyan.mat | 185 - .../Materials/MRTK_Standard_Cyan.mat.meta | 8 - .../Materials/MRTK_Standard_DarkBrown.mat | 145 - .../MRTK_Standard_DarkBrown.mat.meta | 8 - .../Materials/MRTK_Standard_DarkGray.mat | 187 - .../Materials/MRTK_Standard_DarkGray.mat.meta | 8 - .../Materials/MRTK_Standard_Emerald.mat | 185 - .../Materials/MRTK_Standard_Emerald.mat.meta | 8 - .../Materials/MRTK_Standard_GlowingCyan.mat | 188 - .../MRTK_Standard_GlowingCyan.mat.meta | 8 - .../Materials/MRTK_Standard_GlowingOrange.mat | 172 - .../MRTK_Standard_GlowingOrange.mat.meta | 8 - .../Materials/MRTK_Standard_Gray.mat | 183 - .../Materials/MRTK_Standard_Gray.mat.meta | 8 - .../Materials/MRTK_Standard_Green.mat | 183 - .../Materials/MRTK_Standard_Green.mat.meta | 8 - .../Materials/MRTK_Standard_LightGray.mat | 185 - .../MRTK_Standard_LightGray.mat.meta | 8 - .../Materials/MRTK_Standard_Lime.mat | 183 - .../Materials/MRTK_Standard_Lime.mat.meta | 8 - .../MRTK_Standard_LimeDesaturated.mat | 185 - .../MRTK_Standard_LimeDesaturated.mat.meta | 8 - .../Materials/MRTK_Standard_Magenta.mat | 183 - .../Materials/MRTK_Standard_Magenta.mat.meta | 8 - .../Materials/MRTK_Standard_Orange.mat | 185 - .../Materials/MRTK_Standard_Orange.mat.meta | 8 - .../Materials/MRTK_Standard_Pink.mat | 135 - .../Materials/MRTK_Standard_Pink.mat.meta | 8 - .../Materials/MRTK_Standard_Purple.mat | 183 - .../Materials/MRTK_Standard_Purple.mat.meta | 8 - .../MRTK_Standard_PurpleDesaturated.mat | 185 - .../MRTK_Standard_PurpleDesaturated.mat.meta | 8 - .../Materials/MRTK_Standard_Red.mat | 183 - .../Materials/MRTK_Standard_Red.mat.meta | 8 - .../MRTK_Standard_TransparentBlue.mat | 183 - .../MRTK_Standard_TransparentBlue.mat.meta | 8 - .../MRTK_Standard_TransparentCharcoal.mat | 145 - ...MRTK_Standard_TransparentCharcoal.mat.meta | 8 - .../MRTK_Standard_TransparentCyan.mat | 183 - .../MRTK_Standard_TransparentCyan.mat.meta | 8 - .../MRTK_Standard_TransparentDarkGray.mat | 187 - ...MRTK_Standard_TransparentDarkGray.mat.meta | 8 - .../MRTK_Standard_TransparentEmerald.mat | 183 - .../MRTK_Standard_TransparentEmerald.mat.meta | 8 - .../MRTK_Standard_TransparentGray.mat | 183 - .../MRTK_Standard_TransparentGray.mat.meta | 8 - .../MRTK_Standard_TransparentGreen.mat | 145 - .../MRTK_Standard_TransparentGreen.mat.meta | 8 - .../MRTK_Standard_TransparentLightGray.mat | 183 - ...RTK_Standard_TransparentLightGray.mat.meta | 8 - .../MRTK_Standard_TransparentLime.mat | 145 - .../MRTK_Standard_TransparentLime.mat.meta | 8 - .../MRTK_Standard_TransparentMagenta.mat | 145 - .../MRTK_Standard_TransparentMagenta.mat.meta | 8 - .../MRTK_Standard_TransparentOrange.mat | 145 - .../MRTK_Standard_TransparentOrange.mat.meta | 8 - .../MRTK_Standard_TransparentPink.mat | 145 - .../MRTK_Standard_TransparentPink.mat.meta | 8 - .../MRTK_Standard_TransparentPurple.mat | 145 - .../MRTK_Standard_TransparentPurple.mat.meta | 8 - .../MRTK_Standard_TransparentRed.mat | 183 - .../MRTK_Standard_TransparentRed.mat.meta | 8 - .../MRTK_Standard_TransparentWhite.mat | 145 - .../MRTK_Standard_TransparentWhite.mat.meta | 8 - .../MRTK_Standard_TransparentYellow.mat | 145 - .../MRTK_Standard_TransparentYellow.mat.meta | 8 - .../Materials/MRTK_Standard_UnlitWhite.mat | 171 - .../MRTK_Standard_UnlitWhite.mat.meta | 8 - .../Materials/MRTK_Standard_White.mat | 183 - .../Materials/MRTK_Standard_White.mat.meta | 8 - .../Materials/MRTK_Standard_Yellow.mat | 183 - .../Materials/MRTK_Standard_Yellow.mat.meta | 8 - .../Materials/MRTK_Wireframe.mat | 88 - .../Materials/MRTK_Wireframe.mat.meta | 8 - .../Materials/MRTK_WireframeBlue.mat | 80 - .../Materials/MRTK_WireframeBlue.mat.meta | 8 - .../Materials/Text3DSelawik.mat | 145 - .../Materials/Text3DSelawik.mat.meta | 8 - .../Materials/Text3DSelawikBold.mat | 145 - .../Materials/Text3DSelawikBold.mat.meta | 8 - .../Materials/Text3DSelawikLight.mat | 145 - .../Materials/Text3DSelawikLight.mat.meta | 8 - .../Materials/Text3DSelawikSemibold.mat | 145 - .../Materials/Text3DSelawikSemibold.mat.meta | 8 - .../Materials/Text3DSelawikSemilight.mat | 145 - .../Materials/Text3DSelawikSemilight.mat.meta | 8 - .../StandardAssets/Materials/UIDarkGray.mat | 222 - .../Materials/UIDarkGray.mat.meta | 8 - AR-ROS/Assets/MRTK/StandardAssets/README.md | 6 - .../Assets/MRTK/StandardAssets/README.md.meta | 7 - .../Assets/MRTK/StandardAssets/Shaders.meta | 8 - .../Shaders/ChannelPacker.shader | 101 - .../Shaders/ChannelPacker.shader.meta | 9 - .../Shaders/DepthBufferPostProcess.shader | 32 - .../DepthBufferPostProcess.shader.meta | 9 - .../Shaders/InstancedColored.shader | 71 - .../Shaders/InstancedColored.shader.meta | 9 - .../Shaders/InvisibleShader.shader | 54 - .../Shaders/InvisibleShader.shader.meta | 10 - .../Shaders/MRTK_Wireframe.shader | 142 - .../Shaders/MRTK_Wireframe.shader.meta | 9 - .../Shaders/MixedRealityShaderUtils.cginc | 31 - .../MixedRealityShaderUtils.cginc.meta | 9 - .../Shaders/MixedRealityStandard.shader | 1219 - .../Shaders/MixedRealityStandard.shader.meta | 10 - .../Shaders/MixedRealityTextMeshPro.shader | 374 - .../MixedRealityTextMeshPro.shader.meta | 9 - .../Shaders/Text3DShader.shader | 172 - .../Shaders/Text3DShader.shader.meta | 9 - .../Assets/MRTK/StandardAssets/Textures.meta | 8 - .../Textures/DefaultPointerDottedLine.png | Bin 2029 -> 0 bytes .../DefaultPointerDottedLine.png.meta | 132 - .../Generic_controller_black_scaled.png | Bin 9775 -> 0 bytes .../Generic_controller_black_scaled.png.meta | 110 - .../Generic_controller_white_scaled.png | Bin 3937 -> 0 bytes .../Generic_controller_white_scaled.png.meta | 110 - .../Textures/MRTK_Logo_Black.png | Bin 24381 -> 0 bytes .../Textures/MRTK_Logo_Black.png.meta | 110 - .../Textures/MRTK_Logo_White.png | Bin 25135 -> 0 bytes .../Textures/MRTK_Logo_White.png.meta | 110 - .../Textures/MRTK_TimelineJumpBack.png | Bin 1095 -> 0 bytes .../Textures/MRTK_TimelineJumpBack.png.meta | 88 - .../Textures/MRTK_TimelineJumpFwd.png | Bin 1117 -> 0 bytes .../Textures/MRTK_TimelineJumpFwd.png.meta | 88 - .../Textures/MRTK_TimelinePause.png | Bin 281 -> 0 bytes .../Textures/MRTK_TimelinePause.png.meta | 88 - .../Textures/MRTK_TimelinePlay.png | Bin 811 -> 0 bytes .../Textures/MRTK_TimelinePlay.png.meta | 88 - .../Textures/MRTK_TimelineRecord.png | Bin 799 -> 0 bytes .../Textures/MRTK_TimelineRecord.png.meta | 88 - .../Textures/MRTK_TimelineRecordActive.png | Bin 909 -> 0 bytes .../MRTK_TimelineRecordActive.png.meta | 88 - .../Textures/MRTK_TimelineStepBack.png | Bin 795 -> 0 bytes .../Textures/MRTK_TimelineStepBack.png.meta | 88 - .../Textures/MRTK_TimelineStepFwd.png | Bin 823 -> 0 bytes .../Textures/MRTK_TimelineStepFwd.png.meta | 88 - .../Textures/MRTK_TimelineStop.png | Bin 235 -> 0 bytes .../Textures/MRTK_TimelineStop.png.meta | 88 - .../Textures/MotionController_left_black.png | Bin 312494 -> 0 bytes .../MotionController_left_black.png.meta | 110 - .../MotionController_left_black_scaled.png | Bin 11681 -> 0 bytes ...otionController_left_black_scaled.png.meta | 110 - .../Textures/MotionController_left_white.png | Bin 312953 -> 0 bytes .../MotionController_left_white.png.meta | 110 - .../MotionController_left_white_scaled.png | Bin 11561 -> 0 bytes ...otionController_left_white_scaled.png.meta | 110 - .../Textures/MotionController_right_black.png | Bin 311430 -> 0 bytes .../MotionController_right_black.png.meta | 110 - .../MotionController_right_black_scaled.png | Bin 11622 -> 0 bytes ...tionController_right_black_scaled.png.meta | 110 - .../Textures/MotionController_right_white.png | Bin 313883 -> 0 bytes .../MotionController_right_white.png.meta | 110 - .../MotionController_right_white_scaled.png | Bin 11499 -> 0 bytes ...tionController_right_white_scaled.png.meta | 110 - .../StandardAssets/Textures/MouseCursor.png | Bin 2786 -> 0 bytes .../Textures/MouseCursor.png.meta | 110 - .../Textures/Oculus lineart attribution.txt | 5 - .../Oculus lineart attribution.txt.meta | 7 - .../OculusControllersTouch_left_black.png | Bin 402320 -> 0 bytes ...OculusControllersTouch_left_black.png.meta | 110 - ...ulusControllersTouch_left_black_scaled.png | Bin 10675 -> 0 bytes ...ontrollersTouch_left_black_scaled.png.meta | 110 - .../OculusControllersTouch_left_white.png | Bin 401529 -> 0 bytes ...OculusControllersTouch_left_white.png.meta | 110 - ...ulusControllersTouch_left_white_scaled.png | Bin 10409 -> 0 bytes ...ontrollersTouch_left_white_scaled.png.meta | 110 - .../OculusControllersTouch_right_black.png | Bin 371462 -> 0 bytes ...culusControllersTouch_right_black.png.meta | 110 - ...lusControllersTouch_right_black_scaled.png | Bin 9887 -> 0 bytes ...ntrollersTouch_right_black_scaled.png.meta | 110 - .../OculusControllersTouch_right_white.png | Bin 365320 -> 0 bytes ...culusControllersTouch_right_white.png.meta | 110 - ...lusControllersTouch_right_white_scaled.png | Bin 9703 -> 0 bytes ...ntrollersTouch_right_white_scaled.png.meta | 110 - .../Textures/OculusRemoteController_black.png | Bin 47896 -> 0 bytes .../OculusRemoteController_black.png.meta | 110 - .../OculusRemoteController_black_scaled.png | Bin 6251 -> 0 bytes ...ulusRemoteController_black_scaled.png.meta | 110 - .../Textures/OculusRemoteController_white.png | Bin 46755 -> 0 bytes .../OculusRemoteController_white.png.meta | 110 - .../OculusRemoteController_white_scaled.png | Bin 6184 -> 0 bytes ...ulusRemoteController_white_scaled.png.meta | 110 - .../MRTK/StandardAssets/packagetemplate.json | 29 - .../StandardAssets/packagetemplate.json.meta | 7 - .../MRTK.Generated.sentinel | 0 .../MRTK.Generated.sentinel.meta | 7 - .../ProjectPreferences.asset | 31 - .../ProjectPreferences.asset.meta | 8 - .../MixedRealityToolkit.Generated/link.xml | 35 - AR-ROS/Assets/PointCloudStreaming/Editor.meta | 8 - .../Editor/GraphicsSettingsEditor.cs | 36 - .../Editor/GraphicsSettingsEditor.cs.meta | 11 - .../PointCloudStreaming/MeshPointCloud.meta | 8 - .../MeshPointCloud/PointCloudRenderer.cs | 79 - .../MeshPointCloud/PointCloudRenderer.cs.meta | 11 - .../MeshPointCloud/PointCloudShader.shader | 39 - .../PointCloudShader.shader.meta | 9 - .../MeshPointCloud/PointCloudSub.cs | 125 - .../MeshPointCloud/PointCloudSub.cs.meta | 11 - .../MeshPointCloud/readme.md | 100 - .../MeshPointCloud/readme.md.meta | 7 - .../PointCloudSubscriber.cs | 187 - .../PointCloudStreaming/PointCubeRenderer.cs | 147 - .../drone/3dModel/Materials/Color_001.mat | 73 - .../drone/3dModel/Materials/Color_003.mat | 73 - .../drone/3dModel/Materials/Color_004.mat | 73 - .../drone/3dModel/Materials/Color_005.mat | 73 - .../drone/3dModel/Materials/Color_007.mat | 73 - .../drone/3dModel/Materials/Color_008.mat | 73 - .../drone/3dModel/Materials/Color_009.mat | 73 - .../drone/3dModel/Materials/Color_A01.mat | 73 - .../drone/3dModel/Materials/Color_G11.mat | 73 - .../drone/3dModel/Materials/FrontColor.mat | 73 - .../drone/3dModel/Materials/No Name.mat | 73 - .../drone/3dModel/Materials/linesMaterial.mat | 73 - .../drone/3dModel/Materials/rayMat.mat | 73 - AR-ROS/Assets/Resources/Default.mat | 78 - AR-ROS/Assets/Resources/Point.prefab | 95 - AR-ROS/Assets/Resources/Temparent_obj.mat | 78 - .../Plugins/External/Newtonsoft.Json.dll | Bin 669096 -> 0 bytes .../Plugins/External/Newtonsoft.Json.dll.meta | 33 - .../System.Threading.Tasks.Extensions.xml | 166 - ...System.Threading.Tasks.Extensions.xml.meta | 7 - .../RosCommuncation/PoseStampedSubscriber.cs | 78 - .../RosCommuncation/RosConnector.cs | 106 - .../UrdfJoints/HingeJointAngleCalculator.cs | 42 - .../HingeJointAngleCalculator.cs.meta | 11 - .../Scenes/hololens-tello-orbslam2.unity | 1993 - .../Scenes/hololens-tello-orbslam2.unity.meta | 7 - AR-ROS/Assets/TextMesh Pro/Documentation.meta | 8 - .../TextMesh Pro User Guide 2016.pdf | Bin 694398 -> 0 bytes .../TextMesh Pro User Guide 2016.pdf.meta | 7 - AR-ROS/Assets/TextMesh Pro/Fonts.meta | 8 - .../Fonts/LiberationSans - OFL.txt | 46 - .../Fonts/LiberationSans - OFL.txt.meta | 8 - .../TextMesh Pro/Fonts/LiberationSans.ttf | Bin 350200 -> 0 bytes .../Fonts/LiberationSans.ttf.meta | 19 - .../Resources/Fonts & Materials.meta | 9 - .../LiberationSans SDF - Drop Shadow.mat | 106 - .../LiberationSans SDF - Drop Shadow.mat.meta | 8 - .../LiberationSans SDF - Fallback.asset | 343 - .../LiberationSans SDF - Fallback.asset.meta | 8 - .../LiberationSans SDF - Outline.mat | 104 - .../LiberationSans SDF - Outline.mat.meta | 8 - .../LiberationSans SDF.asset | 7821 ---- .../LiberationSans SDF.asset.meta | 8 - .../LineBreaking Following Characters.txt | 1 - ...LineBreaking Following Characters.txt.meta | 8 - .../LineBreaking Leading Characters.txt | 1 - .../LineBreaking Leading Characters.txt.meta | 8 - .../TextMesh Pro/Resources/Sprite Assets.meta | 9 - .../Resources/Sprite Assets/EmojiOne.asset | 659 - .../Sprite Assets/EmojiOne.asset.meta | 8 - .../TextMesh Pro/Resources/Style Sheets.meta | 9 - .../Style Sheets/Default Style Sheet.asset | 68 - .../Default Style Sheet.asset.meta | 8 - .../TextMesh Pro/Resources/TMP Settings.asset | 46 - .../Resources/TMP Settings.asset.meta | 8 - AR-ROS/Assets/TextMesh Pro/Shaders.meta | 8 - .../Shaders/TMP_Bitmap-Custom-Atlas.shader | 143 - .../TMP_Bitmap-Custom-Atlas.shader.meta | 9 - .../Shaders/TMP_Bitmap-Mobile.shader | 145 - .../Shaders/TMP_Bitmap-Mobile.shader.meta | 9 - .../TextMesh Pro/Shaders/TMP_Bitmap.shader | 143 - .../Shaders/TMP_Bitmap.shader.meta | 9 - .../Shaders/TMP_SDF Overlay.shader | 317 - .../Shaders/TMP_SDF Overlay.shader.meta | 9 - .../TextMesh Pro/Shaders/TMP_SDF SSD.shader | 310 - .../Shaders/TMP_SDF SSD.shader.meta | 9 - .../Shaders/TMP_SDF-Mobile Masking.shader | 247 - .../TMP_SDF-Mobile Masking.shader.meta | 9 - .../Shaders/TMP_SDF-Mobile Overlay.shader | 240 - .../TMP_SDF-Mobile Overlay.shader.meta | 9 - .../Shaders/TMP_SDF-Mobile SSD.shader | 106 - .../Shaders/TMP_SDF-Mobile SSD.shader.meta | 9 - .../Shaders/TMP_SDF-Mobile.shader | 240 - .../Shaders/TMP_SDF-Mobile.shader.meta | 9 - .../Shaders/TMP_SDF-Surface-Mobile.shader | 138 - .../TMP_SDF-Surface-Mobile.shader.meta | 9 - .../Shaders/TMP_SDF-Surface.shader | 158 - .../Shaders/TMP_SDF-Surface.shader.meta | 9 - .../TextMesh Pro/Shaders/TMP_SDF.shader | 317 - .../TextMesh Pro/Shaders/TMP_SDF.shader.meta | 9 - .../TextMesh Pro/Shaders/TMP_Sprite.shader | 116 - .../Shaders/TMP_Sprite.shader.meta | 9 - .../Assets/TextMesh Pro/Shaders/TMPro.cginc | 84 - .../TextMesh Pro/Shaders/TMPro.cginc.meta | 9 - .../TextMesh Pro/Shaders/TMPro_Mobile.cginc | 157 - .../Shaders/TMPro_Mobile.cginc.meta | 9 - .../Shaders/TMPro_Properties.cginc | 85 - .../Shaders/TMPro_Properties.cginc.meta | 9 - .../TextMesh Pro/Shaders/TMPro_Surface.cginc | 101 - .../Shaders/TMPro_Surface.cginc.meta | 9 - AR-ROS/Assets/TextMesh Pro/Sprites.meta | 8 - .../Sprites/EmojiOne Attribution.txt | 3 - .../Sprites/EmojiOne Attribution.txt.meta | 7 - .../Assets/TextMesh Pro/Sprites/EmojiOne.json | 156 - .../TextMesh Pro/Sprites/EmojiOne.json.meta | 8 - .../Assets/TextMesh Pro/Sprites/EmojiOne.png | Bin 112319 -> 0 bytes .../TextMesh Pro/Sprites/EmojiOne.png.meta | 431 - AR-ROS/Assets/XR.meta | 8 - AR-ROS/Assets/XR/Loaders.meta | 8 - .../Assets/XR/Loaders/Windows MR Loader.asset | 14 - .../XR/Loaders/Windows MR Loader.asset.meta | 8 - AR-ROS/Assets/XR/Settings.meta | 8 - .../Windows MR Package Settings.asset | 47 - .../Windows MR Package Settings.asset.meta | 8 - AR-ROS/Assets/XR/XRGeneralSettings.asset | 48 - AR-ROS/Assets/XR/XRGeneralSettings.asset.meta | 8 - AR-ROS/Packages/manifest.json | 44 - AR-ROS/Packages/packages-lock.json | 335 - AR-ROS/ProjectSettings/GraphicsSettings.asset | 66 - AR-ROS/ProjectSettings/InputManager.asset | 775 - AR-ROS/ProjectSettings/ProjectSettings.asset | 765 - AR-ROS/ProjectSettings/QualitySettings.asset | 238 - AR-ROS/ProjectSettings/TimeManager.asset | 9 - .../ProjectSettings/XRPackageSettings.asset | 6 - .../ar-ros-image}/.gitignore | 0 .../ar-ros-image}/Assets/Button.meta | 0 .../ar-ros-image/Assets/Button/Down.cs | 32 + .../ar-ros-image}/Assets/Button/Down.cs.meta | 0 .../ar-ros-image/Assets/Button/Finish.cs | 32 + .../Assets/Button/Finish.cs.meta | 0 .../ar-ros-image/Assets/Button/Left.cs | 32 + .../ar-ros-image}/Assets/Button/Left.cs.meta | 0 .../ar-ros-image/Assets/Button/Q_Left.cs | 20 + .../ar-ros-image/Assets/Button/Q_Left.cs.meta | 11 + .../ar-ros-image/Assets/Button/Q_Right.cs | 21 + .../Assets/Button/Q_Right.cs.meta | 11 + .../ar-ros-image/Assets/Button/Right.cs | 32 + .../ar-ros-image}/Assets/Button/Right.cs.meta | 0 .../ar-ros-image/Assets/Button/Up.cs | 32 + .../ar-ros-image}/Assets/Button/Up.cs.meta | 0 .../ar-ros-image/Assets/Button/ZoomIn.cs | 32 + .../Assets/Button/ZoomIn.cs.meta | 0 .../ar-ros-image/Assets/Button/ZoomOut.cs | 32 + .../Assets/Button/ZoomOut.cs.meta | 0 .../ar-ros-image}/Assets/MRTK.meta | 0 .../ar-ros-image}/Assets/Messages.meta | 0 .../ar-ros-image}/Assets/Messages/CatchLog.cs | 0 .../Assets/Messages/CatchLog.cs.meta | 0 .../Assets/Messages/TrackSubscriber.cs | 0 .../Assets/Messages/TrackSubscriber.cs.meta | 0 .../Assets/MixedRealityToolkit.Generated.meta | 0 .../New Universal Render Pipeline Asset.asset | 56 + ...Universal Render Pipeline Asset.asset.meta | 8 + ...ersal Render Pipeline Asset_Renderer.asset | 37 + ... Render Pipeline Asset_Renderer.asset.meta | 8 + .../ar-ros-image}/Assets/Plugins.meta | 0 .../Assets/Plugins/Newtonsoft.Json AOT.meta | 0 .../Newtonsoft.Json.deps.json | 0 .../Newtonsoft.Json.deps.json.meta | 0 .../Newtonsoft.Json AOT/Newtonsoft.Json.dll | Bin .../Newtonsoft.Json.dll.meta | 0 .../Newtonsoft.Json AOT/Newtonsoft.Json.xml | 0 .../Newtonsoft.Json.xml.meta | 0 .../Plugins/Newtonsoft.Json Editor.meta | 0 .../Newtonsoft.Json.deps.json | 0 .../Newtonsoft.Json.deps.json.meta | 0 .../Newtonsoft.Json.dll | Bin .../Newtonsoft.Json.dll.meta | 0 .../Newtonsoft.Json.xml | 0 .../Newtonsoft.Json.xml.meta | 0 .../Plugins/Newtonsoft.Json Portable.meta | 0 .../Newtonsoft.Json.dll | Bin .../Newtonsoft.Json.dll.meta | 0 .../Newtonsoft.Json.xml | 0 .../Newtonsoft.Json.xml.meta | 0 .../Assets/PointCloudStreaming.meta | 0 .../PointCloudSubscriber.cs | 187 + .../PointCloudSubscriber.cs.meta | 0 .../PointCloudStreaming/PointCubeRenderer.cs | 144 + .../PointCubeRenderer.cs.meta | 0 .../Assets/PointCloudStreaming/UpdatePoint.cs | 0 .../PointCloudStreaming/UpdatePoint.cs.meta | 0 .../PointCloudStreaming/enableOpenGL.cs | 0 .../PointCloudStreaming/enableOpenGL.cs.meta | 0 .../ar-ros-image}/Assets/Realistic Drone.meta | 0 .../Assets/Realistic Drone/drone.meta | 0 .../Assets/Realistic Drone/drone/3dModel.meta | 0 .../drone/3dModel/Materials.meta | 0 .../drone/3dModel/Materials/Color_001.mat | 110 + .../3dModel/Materials/Color_001.mat.meta | 0 .../drone/3dModel/Materials/Color_003.mat | 110 + .../3dModel/Materials/Color_003.mat.meta | 0 .../drone/3dModel/Materials/Color_004.mat | 110 + .../3dModel/Materials/Color_004.mat.meta | 0 .../drone/3dModel/Materials/Color_005.mat | 110 + .../3dModel/Materials/Color_005.mat.meta | 0 .../drone/3dModel/Materials/Color_007.mat | 110 + .../3dModel/Materials/Color_007.mat.meta | 0 .../drone/3dModel/Materials/Color_008.mat | 110 + .../3dModel/Materials/Color_008.mat.meta | 0 .../drone/3dModel/Materials/Color_009.mat | 110 + .../3dModel/Materials/Color_009.mat.meta | 0 .../drone/3dModel/Materials/Color_A01.mat | 110 + .../3dModel/Materials/Color_A01.mat.meta | 0 .../drone/3dModel/Materials/Color_G11.mat | 110 + .../3dModel/Materials/Color_G11.mat.meta | 0 .../drone/3dModel/Materials/FrontColor.mat | 110 + .../3dModel/Materials/FrontColor.mat.meta | 0 .../drone/3dModel/Materials/No Name.mat | 110 + .../drone/3dModel/Materials/No Name.mat.meta | 0 .../drone/3dModel/Materials/linesMaterial.mat | 110 + .../3dModel/Materials/linesMaterial.mat.meta | 0 .../drone/3dModel/Materials/rayMat.mat | 110 + .../drone/3dModel/Materials/rayMat.mat.meta | 0 .../drone/3dModel/droneElica.fbx | Bin .../drone/3dModel/droneElica.fbx.meta | 0 .../drone/3dModel/droneModel.fbx | 0 .../drone/3dModel/droneModel.fbx.meta | 0 .../ar-ros-image}/Assets/Resources.meta | 0 .../ar-ros-image/Assets/Resources/Default.mat | 111 + .../Assets/Resources/Default.mat.meta | 0 .../Assets/Resources/Point.prefab | 95 + .../Assets/Resources/Point.prefab.meta | 0 .../Assets/Resources/Temparent_obj.mat | 111 + .../Assets/Resources/Temparent_obj.mat.meta | 0 .../ar-ros-image}/Assets/RosSharp.meta | 0 .../Assets/RosSharp/Plugins.meta | 0 .../Assets/RosSharp/Plugins/External.meta | 0 .../Plugins/External/Newtonsoft.Json.Bson.dll | Bin .../External/Newtonsoft.Json.Bson.dll.meta | 0 .../Plugins/External/Newtonsoft.Json.Bson.xml | 0 .../External/Newtonsoft.Json.Bson.xml.meta | 0 .../Plugins/External/Newtonsoft.Json.xml | 0 .../Plugins/External/Newtonsoft.Json.xml.meta | 0 .../Plugins/External/websocket-sharp.dll | Bin .../Plugins/External/websocket-sharp.dll.meta | 0 .../Plugins/External/websocket-sharp.xml | 0 .../Plugins/External/websocket-sharp.xml.meta | 0 .../RosSharp/Plugins/MessageGeneration.dll | Bin .../Plugins/MessageGeneration.dll.meta | 0 .../Assets/RosSharp/Plugins/Microsoft.meta | 0 .../Microsoft.Bcl.AsyncInterfaces.dll | Bin .../Microsoft.Bcl.AsyncInterfaces.dll.meta | 0 .../Plugins/Microsoft/System.Buffers.dll | Bin .../Plugins/Microsoft/System.Buffers.dll.meta | 0 .../Plugins/Microsoft/System.Memory.dll | Bin .../Plugins/Microsoft/System.Memory.dll.meta | 0 ...System.Runtime.CompilerServices.Unsafe.dll | Bin ...m.Runtime.CompilerServices.Unsafe.dll.meta | 0 .../Microsoft/System.Text.Encodings.Web.dll | Bin .../System.Text.Encodings.Web.dll.meta | 0 .../Plugins/Microsoft/System.Text.Json.dll | Bin .../Microsoft/System.Text.Json.dll.meta | 0 .../Microsoft/System.Threading.Channels.dll | Bin .../System.Threading.Channels.dll.meta | 0 .../System.Threading.Tasks.Extensions.dll | Bin ...System.Threading.Tasks.Extensions.dll.meta | 0 .../RosSharp/Plugins/RosBridgeClient.dll | Bin .../RosSharp/Plugins/RosBridgeClient.dll.meta | 0 .../RosSharp/Plugins/RosBridgeClientUWP.dll | Bin .../Plugins/RosBridgeClientUWP.dll.meta | 0 .../Assets/RosSharp/Plugins/Urdf.dll | Bin .../Assets/RosSharp/Plugins/Urdf.dll.meta | 0 .../ar-ros-image}/Assets/RosSharp/README.pdf | Bin .../Assets/RosSharp/README.pdf.meta | 0 .../ar-ros-image}/Assets/RosSharp/Scenes.meta | 0 .../Scenes/FibonacciActionScene.unity | 0 .../Scenes/FibonacciActionScene.unity.meta | 0 .../Scenes/GazeboSimulationScene.unity | 0 .../Scenes/GazeboSimulationScene.unity.meta | 0 .../Scenes/UnitySimulationScene.unity | 0 .../Scenes/UnitySimulationScene.unity.meta | 0 .../Assets/RosSharp/Scripts.meta | 0 .../Assets/RosSharp/Scripts/Extensions.meta | 0 .../Scripts/Extensions/HeaderExtensions.cs | 0 .../Extensions/HeaderExtensions.cs.meta | 0 .../Scripts/Extensions/TransformExtensions.cs | 0 .../Extensions/TransformExtensions.cs.meta | 0 .../RosSharp/Scripts/RosBridgeClient.meta | 0 .../Scripts/RosBridgeClient/Editor.meta | 0 .../Editor/FibonacciAction.meta | 0 .../FibonacciActionClientEditor.cs | 0 .../FibonacciActionClientEditor.cs.meta | 0 .../Editor/JointStatePatcherEditor.cs | 0 .../Editor/JointStatePatcherEditor.cs.meta | 0 .../Editor/MessageGeneration.meta | 0 .../DirectoryActionAutoGenEditorWindow.cs | 0 ...DirectoryActionAutoGenEditorWindow.cs.meta | 0 .../DirectoryAutoGenEditorWindow.cs | 0 .../DirectoryAutoGenEditorWindow.cs.meta | 0 .../DirectoryMsgAutoGenEditorWindow.cs | 0 .../DirectoryMsgAutoGenEditorWindow.cs.meta | 0 .../DirectorySrvAutoGenEditorWindow.cs | 0 .../DirectorySrvAutoGenEditorWindow.cs.meta | 0 .../PackageActionAutoGenEditorWindow.cs | 0 .../PackageActionAutoGenEditorWindow.cs.meta | 0 .../PackageAutoGenEditorWindow.cs | 0 .../PackageAutoGenEditorWindow.cs.meta | 0 .../PackageMsgAutoGenEditorWindow.cs | 0 .../PackageMsgAutoGenEditorWindow.cs.meta | 0 .../PackageSrvAutoGenEditorWindow.cs | 0 .../PackageSrvAutoGenEditorWindow.cs.meta | 0 .../SingleActionAutoGenEditorWindow.cs | 0 .../SingleActionAutoGenEditorWindow.cs.meta | 0 .../SingleAutoGenEditorWindow.cs | 0 .../SingleAutoGenEditorWindow.cs.meta | 0 .../SingleMsgAutoGenEditorWindow.cs | 0 .../SingleMsgAutoGenEditorWindow.cs.meta | 0 .../SingleSrvAutoGenEditorWindow.cs | 0 .../SingleSrvAutoGenEditorWindow.cs.meta | 0 .../RosBridgeClient/Editor/UrdfTransfer.meta | 0 .../TransferFromRosEditorWindow.cs | 0 .../TransferFromRosEditorWindow.cs.meta | 0 .../UrdfTransfer/TransferFromRosHandler.cs | 0 .../TransferFromRosHandler.cs.meta | 0 .../UrdfTransfer/TransferToRosEditorWindow.cs | 0 .../TransferToRosEditorWindow.cs.meta | 0 .../UrdfTransfer/TransferToRosHandler.cs | 0 .../UrdfTransfer/TransferToRosHandler.cs.meta | 0 .../RosBridgeClient/MessageHandling.meta | 0 .../MessageHandling/JointStatePatcher.cs | 0 .../MessageHandling/JointStatePatcher.cs.meta | 0 .../MessageHandling/JointStateReader.cs | 0 .../MessageHandling/JointStateReader.cs.meta | 0 .../MessageHandling/JointStateWriter.cs | 0 .../MessageHandling/JointStateWriter.cs.meta | 0 .../MessageHandling/JoyAxisInputPasser.cs | 0 .../JoyAxisInputPasser.cs.meta | 0 .../JoyAxisJointMotorWriter.cs | 0 .../JoyAxisJointMotorWriter.cs.meta | 0 .../JoyAxisJointTransformWriter.cs | 0 .../JoyAxisJointTransformWriter.cs.meta | 0 .../MessageHandling/JoyAxisReader.cs | 0 .../MessageHandling/JoyAxisReader.cs.meta | 0 .../MessageHandling/JoyAxisWriter.cs | 0 .../MessageHandling/JoyAxisWriter.cs.meta | 0 .../MessageHandling/JoyButtonReader.cs | 0 .../MessageHandling/JoyButtonReader.cs.meta | 0 .../MessageHandling/JoyButtonWriter.cs | 0 .../MessageHandling/JoyButtonWriter.cs.meta | 0 .../MessageHandling/LaserScanReader.cs | 0 .../MessageHandling/LaserScanReader.cs.meta | 0 .../MessageHandling/LaserScanWriter.cs | 0 .../MessageHandling/LaserScanWriter.cs.meta | 0 .../RosBridgeClient/RosCommuncation.meta | 0 .../GetParamServiceProvider.cs | 0 .../GetParamServiceProvider.cs.meta | 0 .../RosCommuncation/ImagePublisher.cs | 0 .../RosCommuncation/ImagePublisher.cs.meta | 0 .../RosCommuncation/ImageSubscriber.cs | 0 .../RosCommuncation/ImageSubscriber.cs.meta | 0 .../RosCommuncation/JointStatePublisher.cs | 0 .../JointStatePublisher.cs.meta | 0 .../RosCommuncation/JointStateSubscriber.cs | 0 .../JointStateSubscriber.cs.meta | 0 .../RosCommuncation/JoyPublisher.cs | 0 .../RosCommuncation/JoyPublisher.cs.meta | 0 .../RosCommuncation/JoySubscriber.cs | 0 .../RosCommuncation/JoySubscriber.cs.meta | 0 .../RosCommuncation/LaserScanPublisher.cs | 0 .../LaserScanPublisher.cs.meta | 0 .../RosCommuncation/LaserScanSubscriber.cs | 0 .../LaserScanSubscriber.cs.meta | 0 .../RosCommuncation/OdometrySubscriber.cs | 0 .../OdometrySubscriber.cs.meta | 0 .../RosCommuncation/PoseStampedPublisher.cs | 0 .../PoseStampedPublisher.cs.meta | 0 .../RosCommuncation/PoseStampedSubscriber.cs | 78 + .../PoseStampedSubscriber.cs.meta | 0 .../RosCommuncation/RosConnector.cs | 106 + .../RosCommuncation/RosConnector.cs.meta | 0 .../RosCommuncation/TwistPublisher.cs | 0 .../RosCommuncation/TwistPublisher.cs.meta | 0 .../RosCommuncation/TwistSubscriber.cs | 0 .../RosCommuncation/TwistSubscriber.cs.meta | 0 .../UnityFibonacciActionClient.cs | 0 .../UnityFibonacciActionClient.cs.meta | 0 .../UnityFibonacciActionSever.cs | 0 .../UnityFibonacciActionSever.cs.meta | 0 .../RosCommuncation/UnityPublisher.cs | 0 .../RosCommuncation/UnityPublisher.cs.meta | 0 .../RosCommuncation/UnityServiceProvider.cs | 0 .../UnityServiceProvider.cs.meta | 0 .../RosCommuncation/UnitySubscriber.cs | 0 .../RosCommuncation/UnitySubscriber.cs.meta | 0 .../SensorDataVisualization.meta | 0 .../LaserScanVisualizer.cs | 0 .../LaserScanVisualizer.cs.meta | 0 .../LaserScanVisualizerLines.cs | 0 .../LaserScanVisualizerLines.cs.meta | 0 .../LaserScanVisualizerMesh.cs | 0 .../LaserScanVisualizerMesh.cs.meta | 0 .../LaserScanVisualizerSpheres.cs | 0 .../LaserScanVisualizerSpheres.cs.meta | 0 .../Scripts/RosBridgeClient/Timing.meta | 0 .../Scripts/RosBridgeClient/Timing/Timer.cs | 0 .../RosBridgeClient/Timing/Timer.cs.meta | 0 .../Assets/RosSharp/Scripts/Urdf.meta | 0 .../Assets/RosSharp/Scripts/Urdf/Editor.meta | 0 .../Scripts/Urdf/Editor/AssetHandlers.meta | 0 .../AssetHandlers/LocateAssetHandler.cs | 0 .../AssetHandlers/LocateAssetHandler.cs.meta | 0 .../AssetHandlers/UrdfAssetPathHandler.cs | 0 .../UrdfAssetPathHandler.cs.meta | 0 .../AssetHandlers/UrdfExportPathHandler.cs | 0 .../UrdfExportPathHandler.cs.meta | 0 .../AssetHandlers/UrdfMeshExportHandler.cs | 0 .../UrdfMeshExportHandler.cs.meta | 0 .../Scripts/Urdf/Editor/CustomInspectors.meta | 0 .../HingeJointLimitsManagerEditor.cs | 0 .../HingeJointLimitsManagerEditor.cs.meta | 0 .../CustomInspectors/UrdfCollisionEditor.cs | 0 .../UrdfCollisionEditor.cs.meta | 0 .../CustomInspectors/UrdfCollisionsEditor.cs | 0 .../UrdfCollisionsEditor.cs.meta | 0 .../CustomInspectors/UrdfInertialEditor.cs | 0 .../UrdfInertialEditor.cs.meta | 0 .../CustomInspectors/UrdfJointEditor.cs | 0 .../CustomInspectors/UrdfJointEditor.cs.meta | 0 .../Editor/CustomInspectors/UrdfLinkEditor.cs | 0 .../CustomInspectors/UrdfLinkEditor.cs.meta | 0 .../CustomInspectors/UrdfPluginsEditor.cs | 0 .../UrdfPluginsEditor.cs.meta | 0 .../CustomInspectors/UrdfRobotEditor.cs | 0 .../CustomInspectors/UrdfRobotEditor.cs.meta | 0 .../CustomInspectors/UrdfVisualEditor.cs | 0 .../CustomInspectors/UrdfVisualEditor.cs.meta | 0 .../CustomInspectors/UrdfVisualsEditor.cs | 0 .../UrdfVisualsEditor.cs.meta | 0 .../Scripts/Urdf/Editor/MenuItems.meta | 0 .../MenuItems/UrdfExportEditorWindow.cs | 0 .../MenuItems/UrdfExportEditorWindow.cs.meta | 0 .../MenuItems/UrdfImporterContextMenuItem.cs | 0 .../UrdfImporterContextMenuItem.cs.meta | 0 .../Editor/MenuItems/UrdfImporterMenuItem.cs | 0 .../MenuItems/UrdfImporterMenuItem.cs.meta | 0 .../MenuItems/UrdfRobotCreatorMenuItem.cs | 0 .../UrdfRobotCreatorMenuItem.cs.meta | 0 .../Scripts/Urdf/Editor/MeshProcessing.meta | 0 .../ColladaAssetPostProcessor.cs | 0 .../ColladaAssetPostProcessor.cs.meta | 0 .../MeshProcessing/StlAssetPostProcessor.cs | 0 .../StlAssetPostProcessor.cs.meta | 0 .../Urdf/Editor/MeshProcessing/StlExporter.cs | 0 .../Editor/MeshProcessing/StlExporter.cs.meta | 0 .../Urdf/Editor/MeshProcessing/StlImporter.cs | 0 .../Editor/MeshProcessing/StlImporter.cs.meta | 0 .../Urdf/Editor/MeshProcessing/StlReader.cs | 0 .../Editor/MeshProcessing/StlReader.cs.meta | 0 .../Urdf/Editor/MeshProcessing/StlWriter.cs | 0 .../Editor/MeshProcessing/StlWriter.cs.meta | 0 .../Scripts/Urdf/Editor/UrdfComponents.meta | 0 .../UrdfComponents/UrdfCollisionExtensions.cs | 0 .../UrdfCollisionExtensions.cs.meta | 0 .../UrdfCollisionsExtensions.cs | 0 .../UrdfCollisionsExtensions.cs.meta | 0 .../Editor/UrdfComponents/UrdfGeometry.cs | 0 .../UrdfComponents/UrdfGeometry.cs.meta | 0 .../UrdfComponents/UrdfGeometryCollision.cs | 0 .../UrdfGeometryCollision.cs.meta | 0 .../UrdfComponents/UrdfGeometryVisual.cs | 0 .../UrdfComponents/UrdfGeometryVisual.cs.meta | 0 .../UrdfComponents/UrdfLinkExtensions.cs | 0 .../UrdfComponents/UrdfLinkExtensions.cs.meta | 0 .../Editor/UrdfComponents/UrdfMaterial.cs | 0 .../UrdfComponents/UrdfMaterial.cs.meta | 0 .../UrdfComponents/UrdfRobotExtensions.cs | 0 .../UrdfRobotExtensions.cs.meta | 0 .../UrdfComponents/UrdfVisualExtensions.cs | 0 .../UrdfVisualExtensions.cs.meta | 0 .../UrdfComponents/UrdfVisualsExtensions.cs | 0 .../UrdfVisualsExtensions.cs.meta | 0 .../Scripts/Urdf/JointLimitsManagers.meta | 0 .../HingeJointLimitsManager.cs | 0 .../HingeJointLimitsManager.cs.meta | 0 .../PrismaticJointLimitsManager.cs | 0 .../PrismaticJointLimitsManager.cs.meta | 0 .../Assets/RosSharp/Scripts/Urdf/Math.meta | 0 .../RosSharp/Scripts/Urdf/Math/Matrix3x3.cs | 0 .../Scripts/Urdf/Math/Matrix3x3.cs.meta | 0 .../RosSharp/Scripts/Urdf/UrdfComponents.meta | 0 .../Urdf/UrdfComponents/UrdfCollision.cs | 0 .../Urdf/UrdfComponents/UrdfCollision.cs.meta | 0 .../Urdf/UrdfComponents/UrdfCollisions.cs | 0 .../UrdfComponents/UrdfCollisions.cs.meta | 0 .../Urdf/UrdfComponents/UrdfInertial.cs | 0 .../Urdf/UrdfComponents/UrdfInertial.cs.meta | 0 .../Urdf/UrdfComponents/UrdfJoints.meta | 0 .../UrdfComponents/UrdfJoints/UrdfJoint.cs | 0 .../UrdfJoints/UrdfJoint.cs.meta | 0 .../UrdfJoints/UrdfJointContinuous.cs | 0 .../UrdfJoints/UrdfJointContinuous.cs.meta | 0 .../UrdfJoints/UrdfJointFixed.cs | 0 .../UrdfJoints/UrdfJointFixed.cs.meta | 0 .../UrdfJoints/UrdfJointFloating.cs | 0 .../UrdfJoints/UrdfJointFloating.cs.meta | 0 .../UrdfJoints/UrdfJointPlanar.cs | 0 .../UrdfJoints/UrdfJointPlanar.cs.meta | 0 .../UrdfJoints/UrdfJointPrismatic.cs | 0 .../UrdfJoints/UrdfJointPrismatic.cs.meta | 0 .../UrdfJoints/UrdfJointRevolute.cs | 0 .../UrdfJoints/UrdfJointRevolute.cs.meta | 0 .../Scripts/Urdf/UrdfComponents/UrdfLink.cs | 0 .../Urdf/UrdfComponents/UrdfLink.cs.meta | 0 .../Scripts/Urdf/UrdfComponents/UrdfOrigin.cs | 0 .../Urdf/UrdfComponents/UrdfOrigin.cs.meta | 0 .../Scripts/Urdf/UrdfComponents/UrdfPlugin.cs | 0 .../Urdf/UrdfComponents/UrdfPlugin.cs.meta | 0 .../Urdf/UrdfComponents/UrdfPlugins.cs | 0 .../Urdf/UrdfComponents/UrdfPlugins.cs.meta | 0 .../Scripts/Urdf/UrdfComponents/UrdfRobot.cs | 0 .../Urdf/UrdfComponents/UrdfRobot.cs.meta | 0 .../Scripts/Urdf/UrdfComponents/UrdfVisual.cs | 0 .../Urdf/UrdfComponents/UrdfVisual.cs.meta | 0 .../Urdf/UrdfComponents/UrdfVisuals.cs | 0 .../Urdf/UrdfComponents/UrdfVisuals.cs.meta | 0 .../ar-ros-image}/Assets/RosSharp/link.xml | 0 .../Assets/RosSharp/link.xml.meta | 0 .../ar-ros-image}/Assets/Scenes.meta | 0 .../Assets/Scenes/HoloROS-Image.unity | 1643 + .../Assets/Scenes/HoloROS-Image.unity.meta | 0 .../ar-ros-image}/Assets/TextMesh Pro.meta | 0 .../ar-ros-image}/Assets/Visualization.meta | 0 .../Visualization/OnlyShieldPenetration.cs | 0 .../OnlyShieldPenetration.cs.meta | 0 .../Assets/Visualization/ShieldPenetration.cs | 0 .../Visualization/ShieldPenetration.cs.meta | 0 .../Assets/WSATestCertificate.pfx | Bin .../Assets/WSATestCertificate.pfx.meta | 0 .../ar-ros-image/Packages/manifest.json | 45 + .../ar-ros-image/Packages/packages-lock.json | 364 + .../ProjectSettings/AudioManager.asset | 0 .../ProjectSettings/ClusterInputManager.asset | 0 .../ProjectSettings/DynamicsManager.asset | 0 .../ProjectSettings/EditorBuildSettings.asset | 11 + .../ProjectSettings/EditorSettings.asset | 0 .../ProjectSettings/GraphicsSettings.asset | 67 + .../ProjectSettings/InputManager.asset | 967 + .../ProjectSettings/NavMeshAreas.asset | 0 .../PackageManagerSettings.asset | 0 .../ProjectSettings/Physics2DSettings.asset | 0 .../ProjectSettings/PresetManager.asset | 0 .../ProjectSettings/ProjectSettings.asset | 767 + .../ProjectSettings/ProjectVersion.txt | 0 .../ProjectSettings/QualitySettings.asset | 256 + .../ProjectSettings/TagManager.asset | 0 .../ProjectSettings/TimeManager.asset | 9 + .../ProjectSettings/URPProjectSettings.asset | 15 + .../UnityConnectSettings.asset | 0 .../ProjectSettings/VFXManager.asset | 0 .../ProjectSettings/XRSettings.asset | 0 Unity Projects/ar-ros/.gitignore | 77 + Unity Projects/ar-ros/Assets/Button.meta | 8 + Unity Projects/ar-ros/Assets/Button/Down.cs | 32 + .../ar-ros/Assets/Button/Down.cs.meta | 11 + Unity Projects/ar-ros/Assets/Button/Finish.cs | 32 + .../ar-ros/Assets/Button/Finish.cs.meta | 11 + Unity Projects/ar-ros/Assets/Button/Left.cs | 32 + .../ar-ros/Assets/Button/Left.cs.meta | 11 + Unity Projects/ar-ros/Assets/Button/Q_Left.cs | 20 + .../ar-ros/Assets/Button/Q_Left.cs.meta | 11 + .../ar-ros/Assets/Button/Q_Right.cs | 21 + .../ar-ros/Assets/Button/Q_Right.cs.meta | 11 + Unity Projects/ar-ros/Assets/Button/Right.cs | 32 + .../ar-ros/Assets/Button/Right.cs.meta | 11 + Unity Projects/ar-ros/Assets/Button/Up.cs | 32 + .../ar-ros/Assets/Button/Up.cs.meta | 11 + Unity Projects/ar-ros/Assets/Button/ZoomIn.cs | 32 + .../ar-ros/Assets/Button/ZoomIn.cs.meta | 11 + .../ar-ros/Assets/Button/ZoomOut.cs | 32 + .../ar-ros/Assets/Button/ZoomOut.cs.meta | 11 + Unity Projects/ar-ros/Assets/MRTK.meta | 8 + Unity Projects/ar-ros/Assets/Messages.meta | 8 + .../ar-ros/Assets/Messages/CatchLog.cs | 134 + .../ar-ros/Assets/Messages/CatchLog.cs.meta | 11 + .../ar-ros/Assets/Messages/TrackSubscriber.cs | 57 + .../Assets/Messages/TrackSubscriber.cs.meta | 11 + .../Assets/MixedRealityToolkit.Generated.meta | 8 + .../New Universal Render Pipeline Asset.asset | 56 + ...Universal Render Pipeline Asset.asset.meta | 8 + ...ersal Render Pipeline Asset_Renderer.asset | 37 + ... Render Pipeline Asset_Renderer.asset.meta | 8 + Unity Projects/ar-ros/Assets/Plugins.meta | 8 + .../Assets/Plugins/Newtonsoft.Json AOT.meta | 8 + .../Newtonsoft.Json.deps.json | 104 + .../Newtonsoft.Json.deps.json.meta | 10 + .../Newtonsoft.Json AOT/Newtonsoft.Json.dll | Bin 0 -> 683008 bytes .../Newtonsoft.Json.dll.meta | 129 + .../Newtonsoft.Json AOT/Newtonsoft.Json.xml | 11246 +++++ .../Newtonsoft.Json.xml.meta | 7 + .../Plugins/Newtonsoft.Json Editor.meta | 8 + .../Newtonsoft.Json.deps.json | 104 + .../Newtonsoft.Json.deps.json.meta | 10 + .../Newtonsoft.Json.dll | Bin 0 -> 687616 bytes .../Newtonsoft.Json.dll.meta | 82 + .../Newtonsoft.Json.xml | 11271 +++++ .../Newtonsoft.Json.xml.meta | 10 + .../Plugins/Newtonsoft.Json Portable.meta | 8 + .../Newtonsoft.Json.dll | Bin 0 -> 662016 bytes .../Newtonsoft.Json.dll.meta | 130 + .../Newtonsoft.Json.xml | 10984 +++++ .../Newtonsoft.Json.xml.meta | 7 + .../ar-ros/Assets/PointCloudStreaming.meta | 8 + .../PointCloudSubscriber.cs | 187 + .../PointCloudSubscriber.cs.meta | 11 + .../PointCloudStreaming/PointCubeRenderer.cs | 144 + .../PointCubeRenderer.cs.meta | 11 + .../Assets/PointCloudStreaming/UpdatePoint.cs | 99 + .../PointCloudStreaming/UpdatePoint.cs.meta | 11 + .../PointCloudStreaming/enableOpenGL.cs | 47 + .../PointCloudStreaming/enableOpenGL.cs.meta | 11 + .../ar-ros/Assets/Realistic Drone.meta | 8 + .../ar-ros/Assets/Realistic Drone/drone.meta | 9 + .../Assets/Realistic Drone/drone/3dModel.meta | 9 + .../drone/3dModel/Materials.meta | 9 + .../drone/3dModel/Materials/Color_001.mat | 110 + .../3dModel/Materials/Color_001.mat.meta | 8 + .../drone/3dModel/Materials/Color_003.mat | 110 + .../3dModel/Materials/Color_003.mat.meta | 8 + .../drone/3dModel/Materials/Color_004.mat | 110 + .../3dModel/Materials/Color_004.mat.meta | 8 + .../drone/3dModel/Materials/Color_005.mat | 110 + .../3dModel/Materials/Color_005.mat.meta | 8 + .../drone/3dModel/Materials/Color_007.mat | 110 + .../3dModel/Materials/Color_007.mat.meta | 8 + .../drone/3dModel/Materials/Color_008.mat | 110 + .../3dModel/Materials/Color_008.mat.meta | 8 + .../drone/3dModel/Materials/Color_009.mat | 110 + .../3dModel/Materials/Color_009.mat.meta | 8 + .../drone/3dModel/Materials/Color_A01.mat | 110 + .../3dModel/Materials/Color_A01.mat.meta | 8 + .../drone/3dModel/Materials/Color_G11.mat | 110 + .../3dModel/Materials/Color_G11.mat.meta | 8 + .../drone/3dModel/Materials/FrontColor.mat | 110 + .../3dModel/Materials/FrontColor.mat.meta | 8 + .../drone/3dModel/Materials/No Name.mat | 110 + .../drone/3dModel/Materials/No Name.mat.meta | 8 + .../drone/3dModel/Materials/linesMaterial.mat | 110 + .../3dModel/Materials/linesMaterial.mat.meta | 8 + .../drone/3dModel/Materials/rayMat.mat | 110 + .../drone/3dModel/Materials/rayMat.mat.meta | 8 + .../drone/3dModel/droneElica.fbx | Bin 0 -> 17088 bytes .../drone/3dModel/droneElica.fbx.meta | 74 + .../drone/3dModel/droneModel.fbx | 4245 ++ .../drone/3dModel/droneModel.fbx.meta | 243 + .../ar-ros/Assets}/Resources.meta | 2 +- .../ar-ros/Assets/Resources/Default.mat | 111 + .../ar-ros/Assets/Resources/Default.mat.meta | 8 + .../ar-ros/Assets/Resources/Point.prefab | 95 + .../ar-ros/Assets/Resources/Point.prefab.meta | 7 + .../ar-ros/Assets/Resources/Temparent_obj.mat | 111 + .../Assets/Resources/Temparent_obj.mat.meta | 8 + Unity Projects/ar-ros/Assets/RosSharp.meta | 8 + .../ar-ros/Assets/RosSharp/Plugins.meta | 10 + .../Assets/RosSharp/Plugins/External.meta | 8 + .../Plugins/External/Newtonsoft.Json.Bson.dll | Bin 0 -> 97720 bytes .../External/Newtonsoft.Json.Bson.dll.meta | 74 + .../Plugins/External/Newtonsoft.Json.Bson.xml | 545 + .../External/Newtonsoft.Json.Bson.xml.meta | 7 + .../Plugins/External/Newtonsoft.Json.xml | 11121 +++++ .../Plugins/External/Newtonsoft.Json.xml.meta | 7 + .../Plugins/External/websocket-sharp.dll | Bin 0 -> 250368 bytes .../Plugins/External/websocket-sharp.dll.meta | 99 + .../Plugins/External/websocket-sharp.xml | 7850 ++++ .../Plugins/External/websocket-sharp.xml.meta | 7 + .../RosSharp/Plugins/MessageGeneration.dll | Bin 0 -> 29184 bytes .../Plugins/MessageGeneration.dll.meta | 74 + .../Assets/RosSharp/Plugins/Microsoft.meta | 8 + .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 21064 bytes .../Microsoft.Bcl.AsyncInterfaces.dll.meta | 33 + .../Plugins/Microsoft/System.Buffers.dll | Bin 0 -> 28304 bytes .../Plugins/Microsoft/System.Buffers.dll.meta | 33 + .../Plugins/Microsoft/System.Memory.dll | Bin 0 -> 148760 bytes .../Plugins/Microsoft/System.Memory.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 23600 bytes ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + .../Microsoft/System.Text.Encodings.Web.dll | Bin 0 -> 57720 bytes .../System.Text.Encodings.Web.dll.meta | 33 + .../Plugins/Microsoft/System.Text.Json.dll | Bin 0 -> 293248 bytes .../Microsoft/System.Text.Json.dll.meta | 33 + .../Microsoft/System.Threading.Channels.dll | Bin 0 -> 45944 bytes .../System.Threading.Channels.dll.meta | 33 + .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 25984 bytes ...System.Threading.Tasks.Extensions.dll.meta | 33 + .../RosSharp/Plugins/RosBridgeClient.dll | Bin 0 -> 259072 bytes .../RosSharp/Plugins/RosBridgeClient.dll.meta | 74 + .../RosSharp/Plugins/RosBridgeClientUWP.dll | Bin 0 -> 258048 bytes .../Plugins/RosBridgeClientUWP.dll.meta | 74 + .../ar-ros/Assets/RosSharp/Plugins/Urdf.dll | Bin 0 -> 20992 bytes .../Assets/RosSharp/Plugins/Urdf.dll.meta | 33 + .../ar-ros/Assets/RosSharp/README.pdf | Bin 0 -> 2390875 bytes .../ar-ros/Assets/RosSharp/README.pdf.meta | 9 + .../ar-ros/Assets/RosSharp/Scenes.meta | 10 + .../Scenes/FibonacciActionScene.unity | 377 + .../Scenes/FibonacciActionScene.unity.meta | 7 + .../Scenes/GazeboSimulationScene.unity | 17945 ++++++++ .../Scenes/GazeboSimulationScene.unity.meta | 7 + .../Scenes/UnitySimulationScene.unity | 17683 ++++++++ .../Scenes/UnitySimulationScene.unity.meta | 7 + .../ar-ros/Assets/RosSharp/Scripts.meta | 10 + .../Assets/RosSharp/Scripts/Extensions.meta | 10 + .../Scripts/Extensions/HeaderExtensions.cs | 31 + .../Extensions/HeaderExtensions.cs.meta | 13 + .../Scripts/Extensions/TransformExtensions.cs | 135 + .../Extensions/TransformExtensions.cs.meta | 12 + .../RosSharp/Scripts/RosBridgeClient.meta | 8 + .../Scripts/RosBridgeClient/Editor.meta | 8 + .../Editor/FibonacciAction.meta | 8 + .../FibonacciActionClientEditor.cs | 40 + .../FibonacciActionClientEditor.cs.meta | 11 + .../Editor/JointStatePatcherEditor.cs | 56 + .../Editor/JointStatePatcherEditor.cs.meta | 11 + .../Editor/MessageGeneration.meta | 8 + .../DirectoryActionAutoGenEditorWindow.cs | 51 + ...DirectoryActionAutoGenEditorWindow.cs.meta | 11 + .../DirectoryAutoGenEditorWindow.cs | 160 + .../DirectoryAutoGenEditorWindow.cs.meta | 11 + .../DirectoryMsgAutoGenEditorWindow.cs | 49 + .../DirectoryMsgAutoGenEditorWindow.cs.meta | 11 + .../DirectorySrvAutoGenEditorWindow.cs | 51 + .../DirectorySrvAutoGenEditorWindow.cs.meta | 11 + .../PackageActionAutoGenEditorWindow.cs | 49 + .../PackageActionAutoGenEditorWindow.cs.meta | 11 + .../PackageAutoGenEditorWindow.cs | 169 + .../PackageAutoGenEditorWindow.cs.meta | 11 + .../PackageMsgAutoGenEditorWindow.cs | 49 + .../PackageMsgAutoGenEditorWindow.cs.meta | 11 + .../PackageSrvAutoGenEditorWindow.cs | 48 + .../PackageSrvAutoGenEditorWindow.cs.meta | 11 + .../SingleActionAutoGenEditorWindow.cs | 51 + .../SingleActionAutoGenEditorWindow.cs.meta | 11 + .../SingleAutoGenEditorWindow.cs | 126 + .../SingleAutoGenEditorWindow.cs.meta | 11 + .../SingleMsgAutoGenEditorWindow.cs | 50 + .../SingleMsgAutoGenEditorWindow.cs.meta | 11 + .../SingleSrvAutoGenEditorWindow.cs | 52 + .../SingleSrvAutoGenEditorWindow.cs.meta | 11 + .../RosBridgeClient/Editor/UrdfTransfer.meta | 8 + .../TransferFromRosEditorWindow.cs | 191 + .../TransferFromRosEditorWindow.cs.meta | 11 + .../UrdfTransfer/TransferFromRosHandler.cs | 134 + .../TransferFromRosHandler.cs.meta | 11 + .../UrdfTransfer/TransferToRosEditorWindow.cs | 184 + .../TransferToRosEditorWindow.cs.meta | 11 + .../UrdfTransfer/TransferToRosHandler.cs | 87 + .../UrdfTransfer/TransferToRosHandler.cs.meta | 11 + .../RosBridgeClient/MessageHandling.meta | 8 + .../MessageHandling/JointStatePatcher.cs | 74 + .../MessageHandling/JointStatePatcher.cs.meta | 11 + .../MessageHandling/JointStateReader.cs | 40 + .../MessageHandling/JointStateReader.cs.meta | 11 + .../MessageHandling/JointStateWriter.cs | 57 + .../MessageHandling/JointStateWriter.cs.meta | 11 + .../MessageHandling/JoyAxisInputPasser.cs | 35 + .../JoyAxisInputPasser.cs.meta | 11 + .../JoyAxisJointMotorWriter.cs | 57 + .../JoyAxisJointMotorWriter.cs.meta | 11 + .../JoyAxisJointTransformWriter.cs | 84 + .../JoyAxisJointTransformWriter.cs.meta | 11 + .../MessageHandling/JoyAxisReader.cs | 29 + .../MessageHandling/JoyAxisReader.cs.meta | 11 + .../MessageHandling/JoyAxisWriter.cs | 24 + .../MessageHandling/JoyAxisWriter.cs.meta | 11 + .../MessageHandling/JoyButtonReader.cs | 29 + .../MessageHandling/JoyButtonReader.cs.meta | 11 + .../MessageHandling/JoyButtonWriter.cs | 24 + .../MessageHandling/JoyButtonWriter.cs.meta | 11 + .../MessageHandling/LaserScanReader.cs | 78 + .../MessageHandling/LaserScanReader.cs.meta | 11 + .../MessageHandling/LaserScanWriter.cs | 56 + .../MessageHandling/LaserScanWriter.cs.meta | 11 + .../RosBridgeClient/RosCommuncation.meta | 8 + .../GetParamServiceProvider.cs | 41 + .../GetParamServiceProvider.cs.meta | 11 + .../RosCommuncation/ImagePublisher.cs | 73 + .../RosCommuncation/ImagePublisher.cs.meta | 11 + .../RosCommuncation/ImageSubscriber.cs | 57 + .../RosCommuncation/ImageSubscriber.cs.meta | 11 + .../RosCommuncation/JointStatePublisher.cs | 76 + .../JointStatePublisher.cs.meta | 11 + .../RosCommuncation/JointStateSubscriber.cs | 37 + .../JointStateSubscriber.cs.meta | 11 + .../RosCommuncation/JoyPublisher.cs | 66 + .../RosCommuncation/JoyPublisher.cs.meta | 11 + .../RosCommuncation/JoySubscriber.cs | 41 + .../RosCommuncation/JoySubscriber.cs.meta | 11 + .../RosCommuncation/LaserScanPublisher.cs | 69 + .../LaserScanPublisher.cs.meta | 11 + .../RosCommuncation/LaserScanSubscriber.cs | 32 + .../LaserScanSubscriber.cs.meta | 11 + .../RosCommuncation/OdometrySubscriber.cs | 68 + .../OdometrySubscriber.cs.meta | 11 + .../RosCommuncation/PoseStampedPublisher.cs | 77 + .../PoseStampedPublisher.cs.meta | 11 + .../RosCommuncation/PoseStampedSubscriber.cs | 78 + .../PoseStampedSubscriber.cs.meta | 11 + .../RosCommuncation/RosConnector.cs | 106 + .../RosCommuncation/RosConnector.cs.meta | 11 + .../RosCommuncation/TwistPublisher.cs | 72 + .../RosCommuncation/TwistPublisher.cs.meta | 11 + .../RosCommuncation/TwistSubscriber.cs | 67 + .../RosCommuncation/TwistSubscriber.cs.meta | 11 + .../UnityFibonacciActionClient.cs | 52 + .../UnityFibonacciActionClient.cs.meta | 11 + .../UnityFibonacciActionSever.cs | 45 + .../UnityFibonacciActionSever.cs.meta | 11 + .../RosCommuncation/UnityPublisher.cs | 39 + .../RosCommuncation/UnityPublisher.cs.meta | 11 + .../RosCommuncation/UnityServiceProvider.cs | 35 + .../UnityServiceProvider.cs.meta | 11 + .../RosCommuncation/UnitySubscriber.cs | 48 + .../RosCommuncation/UnitySubscriber.cs.meta | 11 + .../SensorDataVisualization.meta | 8 + .../LaserScanVisualizer.cs | 71 + .../LaserScanVisualizer.cs.meta | 11 + .../LaserScanVisualizerLines.cs | 76 + .../LaserScanVisualizerLines.cs.meta | 11 + .../LaserScanVisualizerMesh.cs | 80 + .../LaserScanVisualizerMesh.cs.meta | 11 + .../LaserScanVisualizerSpheres.cs | 74 + .../LaserScanVisualizerSpheres.cs.meta | 11 + .../Scripts/RosBridgeClient/Timing.meta | 8 + .../Scripts/RosBridgeClient/Timing/Timer.cs | 54 + .../RosBridgeClient/Timing/Timer.cs.meta | 11 + .../ar-ros/Assets/RosSharp/Scripts/Urdf.meta | 8 + .../Assets/RosSharp/Scripts/Urdf/Editor.meta | 8 + .../Scripts/Urdf/Editor/AssetHandlers.meta | 8 + .../AssetHandlers/LocateAssetHandler.cs | 111 + .../AssetHandlers/LocateAssetHandler.cs.meta | 11 + .../AssetHandlers/UrdfAssetPathHandler.cs | 108 + .../UrdfAssetPathHandler.cs.meta | 11 + .../AssetHandlers/UrdfExportPathHandler.cs | 81 + .../UrdfExportPathHandler.cs.meta | 11 + .../AssetHandlers/UrdfMeshExportHandler.cs | 117 + .../UrdfMeshExportHandler.cs.meta | 11 + .../Scripts/Urdf/Editor/CustomInspectors.meta | 8 + .../HingeJointLimitsManagerEditor.cs | 72 + .../HingeJointLimitsManagerEditor.cs.meta | 11 + .../CustomInspectors/UrdfCollisionEditor.cs | 72 + .../UrdfCollisionEditor.cs.meta | 11 + .../CustomInspectors/UrdfCollisionsEditor.cs | 40 + .../UrdfCollisionsEditor.cs.meta | 11 + .../CustomInspectors/UrdfInertialEditor.cs | 71 + .../UrdfInertialEditor.cs.meta | 11 + .../CustomInspectors/UrdfJointEditor.cs | 126 + .../CustomInspectors/UrdfJointEditor.cs.meta | 11 + .../Editor/CustomInspectors/UrdfLinkEditor.cs | 52 + .../CustomInspectors/UrdfLinkEditor.cs.meta | 11 + .../CustomInspectors/UrdfPluginsEditor.cs | 38 + .../UrdfPluginsEditor.cs.meta | 11 + .../CustomInspectors/UrdfRobotEditor.cs | 84 + .../CustomInspectors/UrdfRobotEditor.cs.meta | 11 + .../CustomInspectors/UrdfVisualEditor.cs | 71 + .../CustomInspectors/UrdfVisualEditor.cs.meta | 11 + .../CustomInspectors/UrdfVisualsEditor.cs | 45 + .../UrdfVisualsEditor.cs.meta | 11 + .../Scripts/Urdf/Editor/MenuItems.meta | 8 + .../MenuItems/UrdfExportEditorWindow.cs | 136 + .../MenuItems/UrdfExportEditorWindow.cs.meta | 11 + .../MenuItems/UrdfImporterContextMenuItem.cs | 38 + .../UrdfImporterContextMenuItem.cs.meta | 11 + .../Editor/MenuItems/UrdfImporterMenuItem.cs | 38 + .../MenuItems/UrdfImporterMenuItem.cs.meta | 11 + .../MenuItems/UrdfRobotCreatorMenuItem.cs | 30 + .../UrdfRobotCreatorMenuItem.cs.meta | 11 + .../Scripts/Urdf/Editor/MeshProcessing.meta | 8 + .../ColladaAssetPostProcessor.cs | 113 + .../ColladaAssetPostProcessor.cs.meta | 11 + .../MeshProcessing/StlAssetPostProcessor.cs | 76 + .../StlAssetPostProcessor.cs.meta | 11 + .../Urdf/Editor/MeshProcessing/StlExporter.cs | 111 + .../Editor/MeshProcessing/StlExporter.cs.meta | 11 + .../Urdf/Editor/MeshProcessing/StlImporter.cs | 87 + .../Editor/MeshProcessing/StlImporter.cs.meta | 11 + .../Urdf/Editor/MeshProcessing/StlReader.cs | 150 + .../Editor/MeshProcessing/StlReader.cs.meta | 11 + .../Urdf/Editor/MeshProcessing/StlWriter.cs | 181 + .../Editor/MeshProcessing/StlWriter.cs.meta | 11 + .../Scripts/Urdf/Editor/UrdfComponents.meta | 8 + .../UrdfComponents/UrdfCollisionExtensions.cs | 71 + .../UrdfCollisionExtensions.cs.meta | 11 + .../UrdfCollisionsExtensions.cs | 48 + .../UrdfCollisionsExtensions.cs.meta | 11 + .../Editor/UrdfComponents/UrdfGeometry.cs | 339 + .../UrdfComponents/UrdfGeometry.cs.meta | 3 + .../UrdfComponents/UrdfGeometryCollision.cs | 122 + .../UrdfGeometryCollision.cs.meta | 11 + .../UrdfComponents/UrdfGeometryVisual.cs | 63 + .../UrdfComponents/UrdfGeometryVisual.cs.meta | 11 + .../UrdfComponents/UrdfLinkExtensions.cs | 88 + .../UrdfComponents/UrdfLinkExtensions.cs.meta | 11 + .../Editor/UrdfComponents/UrdfMaterial.cs | 193 + .../UrdfComponents/UrdfMaterial.cs.meta | 11 + .../UrdfComponents/UrdfRobotExtensions.cs | 125 + .../UrdfRobotExtensions.cs.meta | 11 + .../UrdfComponents/UrdfVisualExtensions.cs | 69 + .../UrdfVisualExtensions.cs.meta | 11 + .../UrdfComponents/UrdfVisualsExtensions.cs | 49 + .../UrdfVisualsExtensions.cs.meta | 11 + .../Scripts/Urdf/JointLimitsManagers.meta | 8 + .../HingeJointLimitsManager.cs | 169 + .../HingeJointLimitsManager.cs.meta | 11 + .../PrismaticJointLimitsManager.cs | 80 + .../PrismaticJointLimitsManager.cs.meta | 11 + .../Assets/RosSharp/Scripts/Urdf/Math.meta | 8 + .../RosSharp/Scripts/Urdf/Math/Matrix3x3.cs | 378 + .../Scripts/Urdf/Math/Matrix3x3.cs.meta | 11 + .../RosSharp/Scripts/Urdf/UrdfComponents.meta | 8 + .../Urdf/UrdfComponents/UrdfCollision.cs | 27 + .../Urdf/UrdfComponents/UrdfCollision.cs.meta | 11 + .../Urdf/UrdfComponents/UrdfCollisions.cs | 24 + .../UrdfComponents/UrdfCollisions.cs.meta | 11 + .../Urdf/UrdfComponents/UrdfInertial.cs | 291 + .../Urdf/UrdfComponents/UrdfInertial.cs.meta | 11 + .../Urdf/UrdfComponents/UrdfJoints.meta | 8 + .../UrdfComponents/UrdfJoints/UrdfJoint.cs | 288 + .../UrdfJoints/UrdfJoint.cs.meta | 11 + .../UrdfJoints/UrdfJointContinuous.cs | 74 + .../UrdfJoints/UrdfJointContinuous.cs.meta | 11 + .../UrdfJoints/UrdfJointFixed.cs | 38 + .../UrdfJoints/UrdfJointFixed.cs.meta | 11 + .../UrdfJoints/UrdfJointFloating.cs | 48 + .../UrdfJoints/UrdfJointFloating.cs.meta | 11 + .../UrdfJoints/UrdfJointPlanar.cs | 113 + .../UrdfJoints/UrdfJointPlanar.cs.meta | 11 + .../UrdfJoints/UrdfJointPrismatic.cs | 110 + .../UrdfJoints/UrdfJointPrismatic.cs.meta | 11 + .../UrdfJoints/UrdfJointRevolute.cs | 98 + .../UrdfJoints/UrdfJointRevolute.cs.meta | 11 + .../Scripts/Urdf/UrdfComponents/UrdfLink.cs | 26 + .../Urdf/UrdfComponents/UrdfLink.cs.meta | 11 + .../Scripts/Urdf/UrdfComponents/UrdfOrigin.cs | 85 + .../Urdf/UrdfComponents/UrdfOrigin.cs.meta | 11 + .../Scripts/Urdf/UrdfComponents/UrdfPlugin.cs | 54 + .../Urdf/UrdfComponents/UrdfPlugin.cs.meta | 11 + .../Urdf/UrdfComponents/UrdfPlugins.cs | 47 + .../Urdf/UrdfComponents/UrdfPlugins.cs.meta | 11 + .../Scripts/Urdf/UrdfComponents/UrdfRobot.cs | 64 + .../Urdf/UrdfComponents/UrdfRobot.cs.meta | 11 + .../Scripts/Urdf/UrdfComponents/UrdfVisual.cs | 27 + .../Urdf/UrdfComponents/UrdfVisual.cs.meta | 11 + .../Urdf/UrdfComponents/UrdfVisuals.cs | 25 + .../Urdf/UrdfComponents/UrdfVisuals.cs.meta | 11 + .../ar-ros/Assets/RosSharp/link.xml | 5 + .../ar-ros/Assets/RosSharp}/link.xml.meta | 2 +- Unity Projects/ar-ros/Assets/Scenes.meta | 8 + .../ar-ros}/Assets/Scenes/HoloROS.unity | 124 +- .../ar-ros/Assets/Scenes/HoloROS.unity.meta | 7 + .../ar-ros/Assets/TextMesh Pro.meta | 8 + .../ar-ros/Assets/Visualization.meta | 8 + .../Visualization/OnlyShieldPenetration.cs | 111 + .../OnlyShieldPenetration.cs.meta | 11 + .../Assets/Visualization/ShieldPenetration.cs | 146 + .../Visualization/ShieldPenetration.cs.meta | 11 + .../ar-ros/Assets/WSATestCertificate.pfx | Bin 0 -> 2480 bytes .../ar-ros/Assets/WSATestCertificate.pfx.meta | 7 + Unity Projects/ar-ros/Packages/manifest.json | 45 + .../ar-ros/Packages/packages-lock.json | 364 + .../ar-ros/ProjectSettings/AudioManager.asset | 20 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 34 + .../ProjectSettings/EditorBuildSettings.asset | 0 .../ProjectSettings/EditorSettings.asset | 36 + .../ProjectSettings/GraphicsSettings.asset | 67 + .../ar-ros/ProjectSettings/InputManager.asset | 967 + .../ar-ros/ProjectSettings/NavMeshAreas.asset | 91 + .../PackageManagerSettings.asset | 38 + .../ProjectSettings/Physics2DSettings.asset | 56 + .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 767 + .../ar-ros/ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 256 + .../ar-ros/ProjectSettings/TagManager.asset | 43 + .../ar-ros/ProjectSettings/TimeManager.asset | 9 + .../ProjectSettings/URPProjectSettings.asset | 15 + .../UnityConnectSettings.asset | 34 + .../ar-ros/ProjectSettings/VFXManager.asset | 12 + .../ar-ros/ProjectSettings/XRSettings.asset | 10 + 4738 files changed, 118880 insertions(+), 396372 deletions(-) delete mode 100644 AR-ROS/.vsconfig delete mode 100644 AR-ROS/Assets/Button/Down.cs delete mode 100644 AR-ROS/Assets/Button/Finish.cs delete mode 100644 AR-ROS/Assets/Button/Left.cs delete mode 100644 AR-ROS/Assets/Button/Right.cs delete mode 100644 AR-ROS/Assets/Button/Up.cs delete mode 100644 AR-ROS/Assets/Button/ZoomIn.cs delete mode 100644 AR-ROS/Assets/Button/ZoomOut.cs delete mode 100644 AR-ROS/Assets/Debug.meta delete mode 100644 AR-ROS/Assets/Debug/MeshSplit.meta delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/Editor.meta delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs.meta delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs.meta delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs.meta delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs delete mode 100644 AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs.meta delete mode 100644 AR-ROS/Assets/Debug/PointcloudSubscriber.cs delete mode 100644 AR-ROS/Assets/Debug/PointcloudSubscriber.cs.meta delete mode 100644 AR-ROS/Assets/Debug/Temporarily.cs delete mode 100644 AR-ROS/Assets/Debug/Temporarily.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Boundary.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/README.md delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Teleport.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Data.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Setup.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Audio.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Physics.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Registrars.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Rendering.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/License.txt delete mode 100644 AR-ROS/Assets/MRTK/Core/License.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel delete mode 100644 AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets delete mode 100644 AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseService.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/BaseService.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Facades.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Migration.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/README.md delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Rendering.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Scenes.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs delete mode 100644 AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/Version.txt delete mode 100644 AR-ROS/Assets/MRTK/Core/Version.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/WhereToStart.txt delete mode 100644 AR-ROS/Assets/MRTK/Core/WhereToStart.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/Core/toc.yml delete mode 100644 AR-ROS/Assets/MRTK/Core/toc.yml.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/License.txt delete mode 100644 AR-ROS/Assets/MRTK/Providers/License.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/MRTK.Providers.sentinel delete mode 100644 AR-ROS/Assets/MRTK/Providers/MRTK.Providers.sentinel.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding/MRTK-Quest_Logo.png delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding/MRTK-Quest_Logo.png.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/Headers.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/README.md delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Version.txt delete mode 100644 AR-ROS/Assets/MRTK/Providers/Version.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs delete mode 100644 AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Features.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Joystick.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Backspace.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Backspace.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Close.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Close.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Dictation.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Dictation.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Down.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Down.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Left.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Left.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Right.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Right.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Shift_Symbols.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Shift_Symbols.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_UnShift_Symbols.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_UnShift_Symbols.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Up.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Up.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/Placeholder.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/Placeholder.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/KeyboardKeyFunc.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/KeyboardKeyFunc.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/KeyboardValueKey.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/KeyboardValueKey.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/NonNativeKeyboard.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/NonNativeKeyboard.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/NonNativeKeyboardTouchAssistant.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/NonNativeKeyboardTouchAssistant.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/SliderInputField.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/SliderInputField.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/SymbolDisableHighlight.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/SymbolDisableHighlight.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/SymbolKeyboard.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/SymbolKeyboard.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/UICollection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/UICollection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Boundary.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Boundary/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Boundary/Prefabs/BoundarySystem.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Boundary/Prefabs/BoundarySystem.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Boundary/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Boundary/Scripts/BoundarySystemManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Boundary/Scripts/BoundarySystemManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Camera.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Camera/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Camera/Prefabs/CameraSystem.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Camera/Prefabs/CameraSystem.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Camera/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Camera/Scripts/CameraSystemManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Camera/Scripts/CameraSystemManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Diagnostics.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Diagnostics/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Diagnostics/Prefabs/DiagnosticsSystem.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Diagnostics/Prefabs/DiagnosticsSystem.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Diagnostics/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Diagnostics/Scripts/DiagnosticsSystemManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Diagnostics/Scripts/DiagnosticsSystemManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Input.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Input/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Input/Prefabs/InputSystem.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Input/Prefabs/InputSystem.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Input/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Input/Scripts/InputSystemManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Input/Scripts/InputSystemManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/SpatialAwareness.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/SpatialAwareness/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/SpatialAwareness/Prefabs/SpatialAwarenessSystem.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/SpatialAwareness/Prefabs/SpatialAwarenessSystem.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/SpatialAwareness/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/SpatialAwareness/Scripts/SpatialAwarenessSystemManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/SpatialAwareness/Scripts/SpatialAwarenessSystemManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Support.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Support/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Support/Scripts/BaseServiceManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Support/Scripts/BaseServiceManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Teleport.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Teleport/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Teleport/Prefabs/TeleportSystem.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Teleport/Prefabs/TeleportSystem.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Teleport/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Teleport/Scripts/TeleportSystemManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Experimental/ServiceManagers/Teleport/Scripts/TeleportSystemManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioInfluencerController.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioInfluencerController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioLoFiEffect.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioLoFiEffect.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioLoFiSourceQuality.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioLoFiSourceQuality.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioOccluder.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Audio/Influencers/AudioOccluder.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/HandPanEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/HandPanEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/InputActionUnityEvent.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/InputActionUnityEvent.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/ManipulationEvent.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/ManipulationEvent.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/ManipulationEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/ManipulationEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/PanUnityEvent.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/PanUnityEvent.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/PointerUnityEvent.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/PointerUnityEvent.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/TouchEvent.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Events/TouchEvent.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/BaseEyeFocusHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/BaseEyeFocusHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/BaseFocusHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/BaseFocusHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/BaseInputHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/BaseInputHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/ConstraintManager.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/ConstraintManager.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FaceUserConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FaceUserConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FixedDistanceConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FixedDistanceConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FixedRotationToUserConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FixedRotationToUserConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FixedRotationToWorldConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/FixedRotationToWorldConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/MaintainApparentSizeConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/MaintainApparentSizeConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/MoveAxisConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/MoveAxisConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/RotationAxisConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/RotationAxisConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/TransformConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Constraints/TransformConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/ControllerPoseSynchronizer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/ControllerPoseSynchronizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/CursorContextManipulationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/CursorContextManipulationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/CursorContextObjectManipulator.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/CursorContextObjectManipulator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/DictationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/DictationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/EyeTrackingTarget.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/EyeTrackingTarget.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/FocusHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/FocusHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/InputActionHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/InputActionHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/ManipulationHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/ManipulationHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/ManipulationMoveLogic.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/ManipulationMoveLogic.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/TwoHandRotateLogic.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/TwoHandRotateLogic.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/TwoHandScaleLogic.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/Manipulation/TwoHandScaleLogic.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/ObjectManipulator.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/ObjectManipulator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/PointerClickHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/PointerClickHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/PointerHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/PointerHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/SpeechInputHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/SpeechInputHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/TeleportHotspot.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/TeleportHotspot.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/TouchHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/Handlers/TouchHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/InputSimulationIndicators.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Input/InputSimulationIndicators.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/README.md delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveCross.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveCross.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveEastWest.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveEastWest.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveNorthSouth.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveNorthSouth.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveNortheastSouthwest.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveNortheastSouthwest.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveNorthwestSoutheast.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorMoveNorthwestSoutheast.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorNoContext.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorNoContext.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorRotateHorizontal.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorRotateHorizontal.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorRotateVertical.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/Contextual/DefaultCursorRotateVertical.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursor.controller delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursor.controller.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorIdleAnim.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorIdleAnim.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorIdleRingAnim.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorIdleRingAnim.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorPressedAnim.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorPressedAnim.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorWaitingAnim.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/DefaultCursor/DefaultCursorWaitingAnim.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportCursorController.controller delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportCursorController.controller.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportCursorDisabled.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportCursorDisabled.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportIdle.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportIdle.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportInvalid.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportInvalid.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportValid.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Cursors/TeleportCursor/TeleportValid.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_AnimationController.controller delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_AnimationController.controller.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_Default.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_Default.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_Grab.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_Grab.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_Hover.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/Sliders/Slider_Button_Hover.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/SpeechConfirmationLabel.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/SpeechConfirmationLabel/SpeechConfirmationLabel.anim delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/SpeechConfirmationLabel/SpeechConfirmationLabel.anim.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/SpeechConfirmationLabel/SpeechConfirmationLabel.controller delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Animations/SpeechConfirmationLabel/SpeechConfirmationLabel.controller.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Buttons.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Buttons/DefaultIconSet.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Buttons/DefaultIconSet.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Animations.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Animations/AnimatiorButtonController.controller.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/Background.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/Background.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ButtonBackground.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ButtonBackground.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/CarryModeOutline.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/CarryModeOutline.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ColorButton.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ColorButton.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ColorButtonProximity.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ColorButtonProximity.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/DefaultButton.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/DefaultButton.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/Foreground.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/Foreground.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/Ground.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/Ground.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlate.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlate.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateBorderOnly.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateBorderOnly.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateCircular.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateCircular.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateGrabbable.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateGrabbable.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateGrabbableProximity.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateGrabbableProximity.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateGrabbed.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateGrabbed.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateHover.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateHover.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateLabel.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateLabel.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateNoBorder.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateNoBorder.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateRecordingState.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateRecordingState.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateThickBorder.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateThickBorder.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateToggleState.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBackPlateToggleState.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBox.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicBox.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContent.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCage.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCage.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximity.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximity.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximityCircular.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximityCircular.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximityCircularUnityUI.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximityCircularUnityUI.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximityUnityUI.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonContentCageProximityUnityUI.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconAdd.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconAdd.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconCamera.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconCamera.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconCheckBoxOff.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconCheckBoxOff.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconCheckBoxOn.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconCheckBoxOn.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconClose.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconClose.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconFollowMe.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconFollowMe.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconFontMaterial.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconGrabAreaDouble.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconGrabAreaDouble.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconGrabAreaDoubleProximity.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconGrabAreaDoubleProximity.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconGrabAreaVertical.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconGrabAreaVertical.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHandJoint.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHandJoint.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHandMesh.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHandMesh.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHandRay.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHandRay.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHome.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconHome.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconMRTKLogo.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconMRTKLogo.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconMessage.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconMessage.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconMicrophone.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconMicrophone.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconPin.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconPin.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconProfiler.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconProfiler.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconRadioOff.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconRadioOff.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconRadioOn.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconRadioOn.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconRefresh.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconRefresh.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSearch.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSearch.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSettings.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSettings.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSpatialMesh.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSpatialMesh.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconStar.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconStar.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSwitchOff.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSwitchOff.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSwitchOn.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonIconSwitchOn.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonPlate.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonThickContent.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonThickContent.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonThinContent.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/HolographicButtonThinContent.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTKStandardUnityUI.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTKStandardUnityUI.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsH.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsH.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsH_NoFade.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsH_NoFade.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsV1.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsV1.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsV2.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/MRTK_GrabbableDots2RowsV2.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ToggleBackground.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ToggleBackground.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ToggleButton.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ToggleButton.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ToggleIcon.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Materials/ToggleIcon.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Models.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Models/InteractableAssets.FBX delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Models/InteractableAssets.FBX.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/AnimationButton.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/Button.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/Button.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ButtonHoloLens1.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ButtonHoloLens1.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ButtonHoloLens1Toggle.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ButtonHoloLens1Toggle.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/CheckBox.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/GrabHandle.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/GrabHandle.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonCube.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonCube.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar3H.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar3H.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar3V.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar3V.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar4H.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar4H.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar4V.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar4V.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar5H.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar5H.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar5V.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Bar5V.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Circular_32x32.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Circular_32x32.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Circular_40x40.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Circular_40x40.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Circular_48x48.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Circular_48x48.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnly2Lines_48x96.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnly2Lines_48x96.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnly4Lines_48x96.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnly4Lines_48x96.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnlyNumber_48x48.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnlyNumber_48x48.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnly_48x48.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2TextOnly_48x48.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleCheckBox_32x32.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleCheckBox_32x32.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleCheckBox_32x96.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleCheckBox_32x96.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleRadio_32x32.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleRadio_32x32.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleRadio_32x96.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleRadio_32x96.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleSwitch_32x32.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleSwitch_32x32.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleSwitch_32x96.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2ToggleSwitch_32x96.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle_32x96.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle_32x96.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle_40x40.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle_40x40.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle_48x48.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Toggle_48x48.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Unplated.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2Unplated.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_32x96.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_32x96.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_32x96_NoLabel.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_32x96_NoLabel.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_48x48.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_48x48.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_56x56.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_56x56.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_64x64.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_64x64.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_NoLabel.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHoloLens2_NoLabel.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHololens2UnityUI.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonHololens2UnityUI.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonUnityUI.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonUnityUI.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonUnityUICircular.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/PressableButtonUnityUICircular.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/Radial.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/Radial.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/RadialSet.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/SimpleButton.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ToggleButton.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ToggleSwitch.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/ToggleSwitch.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUIButton.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUIButton.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUICheckboxButton.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUICheckboxButton.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUIRadialButton.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUIRadialButton.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUIToggleButton.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Prefabs/UnityUIInteractables/UnityUIToggleButton.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/IInteractableHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableAudioReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableEvent.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnClickReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnFocusReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnGrabReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnGrabReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnHoldReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnPressReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnToggleReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnTouchReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableOnTouchReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/InteractableReceiverList.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/ReceiverBase.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Events/ReceiverBaseMonoBehavior.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Interactable.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Interactable.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/InteractableToggleCollection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSize.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonBackgroundSizeOffset.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonBorder.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonCollider.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonCollider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonLayout.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonLayout.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonSize.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonSize.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonSizeOffset.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Layout/ButtonSizeOffset.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Profile.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Profile/InteractableProfileItem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Selection.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Selection/SelectionModes.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Selection/SelectionModes.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Simulation.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/Simulation/InteractablePointerSimulator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/States.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Scripts/States/InteractableStates.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/DefaultInteractableStates.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/FocusInteractableStates.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/FocusInteractableStates.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/FocusPressTouchGrabStates.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/FocusPressTouchGrabStates.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/States/HoloLensInteractableStates.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AnimatorTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AppBarButtonBackgroundTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AppBarButtonBackgroundTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AppBarButtonIconTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AppBarButtonIconTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AppBarButtonTextTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/AppBarButtonTextTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBackground.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBackground.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBackgroundSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBorders.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBorders.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonBordersSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonLabel.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonLabel.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonLabelColor.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ButtonLabelSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/CheeseTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/CheeseTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/CoffeeTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/CylinderTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/CylinderTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/DefaultTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/DefaultTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/FocusExampleTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/FocusExampleTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/FocusPressTouchGrabTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/FocusPressTouchGrabTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/GrabColorChildren.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/GrabColorChildren.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/GrabScaleTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/GrabScaleTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlate.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonBackPlateToggleSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlate.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlateThick.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonFrontPlateThick.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel-Simple.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel-Simple.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/HolographicButtonSeeItSayItLabel.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/Model_BuckyTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/Model_IcosaTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PianoKeyThemeBlack.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PianoKeyThemeBlack.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PianoKeyThemeWhite.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PianoKeyThemeWhite.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonCubeTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonCubeTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonFrontPlate.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonFrontPlate.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonFrontPlatePressed.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonFrontPlatePressed.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonIcon.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonIcon.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonToggleStateOff.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonToggleStateOff.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonToggleStateOn.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableButtonToggleStateOn.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableRoundButton.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableRoundButton.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableRoundButtonColor.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/PressableRoundButtonColor.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/TextureTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/TextureTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleBackground.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleBackground.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleBackgroundSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleButton.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleButton.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleButtonSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleDot.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleDot.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleDotSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleIcon.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleIcon.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleIconSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleLabel.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleLabel.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/ToggleLabelSelected.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/balloonTheme.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Interactable/Themes/balloonTheme.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBox.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBox.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxGrabbed.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxGrabbed.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxHandleBlue.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxHandleBlue.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxHandleBlueGrabbed.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxHandleBlueGrabbed.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxHandleWhite.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxHandleWhite.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxLines.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundingBoxLines.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundsControlHandleDefault.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/BoundsControlHandleDefault.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/HandIndexTip.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/HandIndexTip.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/HandJoint.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/HandJoint.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/PanContent.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/PanContent.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/PinchSliderTickMarkMaterial.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/PinchSliderTickMarkMaterial.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorLoadingBarEmpty.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorLoadingBarEmpty.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorLoadingBarFilled.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorLoadingBarFilled.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorRotatingObject.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorRotatingObject.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorRotatingOrbsMat.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/ProgressIndicatorRotatingOrbsMat.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/License.txt delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/License.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/TeleportArrow.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/TeleportArrow.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/TeleportBase.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/TeleportBase.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/TeleportMid.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/Teleport/TeleportMid.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/UnityUIBackground.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Materials/UnityUIBackground.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_Focus_geo.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_Focus_geo.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_IBeam.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_IBeam.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_MousePointer_geo.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_MousePointer_geo.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_MoveArrows_geo.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_MoveArrows_geo.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_Press_geo.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_Press_geo.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_Rest_geo.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_Rest_geo.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_RotateArrows_geo.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Cursor_RotateArrows_geo.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/DefaultCursor.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/DefaultCursor.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Materials/Light.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Materials/Light.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Materials/MousePointer.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Materials/MousePointer.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Materials/Shadow.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Materials/Shadow.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/TeleportCursor.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/TeleportCursor.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_MousePointer_tex.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_MousePointer_tex.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_Move_Shadow.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_Move_Shadow.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_Ring_Shadow.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_Ring_Shadow.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_Rotate_Shadow.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Cursors/Textures/Cursor_Rotate_Shadow.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/HolographicButton.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/HolographicButton/CompoundButtonMeshes.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Pointers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Pointers/DefaultPointerDottedLine.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Pointers/DefaultPointerDottedLine.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Sliders.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Sliders/Button_Oval_Concave_12x24mm_optimized.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Sliders/Button_Oval_Concave_12x24mm_optimized.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Sliders/Volumetric_UI_Components.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Sliders/Volumetric_UI_Components.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Sliders/thick_rounded12.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Meshes/Sliders/thick_rounded12.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/AppBar.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/AppBar/AppBar.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/AppBar/AppBar.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/AppBar/PressableButtonAppBar.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/AppBar/PressableButtonAppBar.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorFocus.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorFocus.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMousePointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMousePointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsEastWest.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsEastWest.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsMove.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsMove.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsNorthSouth.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsNorthSouth.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsNortheastSouthwest.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsNortheastSouthwest.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsNorthwestSoutheast.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorMoveArrowsNorthwestSoutheast.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorPress.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorPress.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorRest.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorRest.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorRotateArrowsHorizontal.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorRotateArrowsHorizontal.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorRotateArrowsVertical.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/CursorRotateArrowsVertical.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/EyeGazeCursor.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/EyeGazeCursor.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/MouseCursor.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/MouseCursor.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/ScreenSpaceMouseCursor.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/ScreenSpaceMouseCursor.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/TeleportCursor.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Cursors/TeleportCursor.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandAxes.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandAxes.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJoint.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJoint.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJointGizmo.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJointGizmo.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJointSmall.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJointSmall.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJointSphere.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Hands/HandJointSphere.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Loader.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Loader/IndeterminateLoader.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Loader/IndeterminateLoader.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu2x4.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu2x4.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu3x1.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu3x1.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu3x2.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu3x2.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu3x3.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu3x3.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu4x1.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu4x1.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu4x2.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Menus/NearMenu4x2.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Panels.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Panels/ToggleFeaturesPanel.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Panels/ToggleFeaturesPanel.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/ConicalGrabPointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/ConicalGrabPointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/GGVPointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/GGVPointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/GrabPointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/GrabPointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/MousePointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/MousePointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/PokePointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/PokePointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/ScreenSpaceMousePointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/ScreenSpaceMousePointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/TouchPointer.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Pointers/TouchPointer.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/ProgressIndicators.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/ProgressIndicators/ProgressIndicatorLoadingBar.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/ProgressIndicators/ProgressIndicatorLoadingBar.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/ProgressIndicators/ProgressIndicatorRotatingObject.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/ProgressIndicators/ProgressIndicatorRotatingObject.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/ProgressIndicators/ProgressIndicatorRotatingOrbs.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/ProgressIndicators/ProgressIndicatorRotatingOrbs.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/README.md delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/PressableButtonsTestCanvas.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/PressableButtonsTestCanvas.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/Slate.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/Slate.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/SlateUGUI.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/SlateUGUI.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/SlateUGUIHoloLens2Buttons.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Slate/SlateUGUIHoloLens2Buttons.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Sliders.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Sliders/PinchSlider.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Sliders/PinchSlider.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Bezier ToolTip.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Bezier ToolTip.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Constrained Parabola Tooltip.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Constrained Parabola Tooltip.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/LabelOnlyTooltip.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/LabelOnlyTooltip.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Simple Line ToolTip.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Simple Line ToolTip.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/SpeechConfirmationTooltip.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/SpeechConfirmationTooltip.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Spline ToolTip.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Prefabs/Tooltips/Spline ToolTip.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/README.md delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/AppBar.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/AppBar/AppBar.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/AppBar/AppBar.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/AppBar/AppBarButton.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/AppBar/AppBarButton.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundingBox.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundingBox/BoundingBox.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundingBox/BoundingBox.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundingBox/BoundingBoxHelper.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundingBox/BoundingBoxHelper.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundingBox/IBoundsTargetProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundingBox/IBoundsTargetProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/BoundsControl.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/BoundsControl.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/BoundsControlTypes.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/BoundsControlTypes.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/BoxDisplay.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/BoxDisplay.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/BoxDisplayConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/BoxDisplayConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/HandlesBaseConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/HandlesBaseConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/LinksConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/LinksConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/PerAxisHandlesConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/PerAxisHandlesConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/RotationHandlesConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/RotationHandlesConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/ScaleHandlesConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/ScaleHandlesConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/TranslationHandlesConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Configuration/TranslationHandlesConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/HandlesBase.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/HandlesBase.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Links.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/Links.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/PerAxisHandles.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/PerAxisHandles.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect/IProximityEffectObjectProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect/IProximityEffectObjectProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect/ProximityEffect.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect/ProximityEffect.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect/ProximityEffectConfiguration.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect/ProximityEffectConfiguration.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/RotationHandles.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/RotationHandles.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ScaleHandles.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ScaleHandles.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/TranslationHandles.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/TranslationHandles.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/VisualUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/VisualUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Buttons.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Buttons/ButtonConfigHelper.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Buttons/ButtonConfigHelper.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Buttons/ButtonIconSet.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Buttons/ButtonIconSet.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Buttons/ButtonIconStyle.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Buttons/ButtonIconStyle.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/BaseObjectCollection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/BaseObjectCollection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/LayoutAlignment.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/LayoutAlignment.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/LayoutAnchor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/LayoutAnchor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/LayoutOrder.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/LayoutOrder.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/ObjectOrientationSurfaceType.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/CollectionEnums/ObjectOrientationSurfaceType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/GridObjectCollection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/GridObjectCollection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/ObjectCollectionNode.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/ObjectCollectionNode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/ScatterObjectCollection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/ScatterObjectCollection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Collections/TileGridObjectCollection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Controllers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Controllers/MixedRealityControllerInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Controllers/MixedRealityControllerInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Controllers/MixedRealityControllerVisualizer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Controllers/MixedRealityControllerVisualizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Controllers/WindowsMixedRealityControllerVisualizer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Controllers/WindowsMixedRealityControllerVisualizer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/AnimatedCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/AnimatedCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/BaseCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/BaseCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/CursorContextInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/CursorContextInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/CursorModifier.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/CursorModifier.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/FingerCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/FingerCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/InteractiveMeshCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/InteractiveMeshCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/MeshCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/MeshCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/ObjectCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/ObjectCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/SpriteCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/SpriteCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/TeleportCursor.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Cursors/TeleportCursor.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Loader.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Loader/LoaderController.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Loader/LoaderController.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/BaseControllerPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/BaseControllerPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/BaseMousePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/BaseMousePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/CurvePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/CurvePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/DefaultPointerMediator.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/DefaultPointerMediator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/DefaultPrimaryPointerSelector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/DefaultPrimaryPointerSelector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/GGVPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/GGVPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/LinePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/LinePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/MousePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/MousePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/ParabolicTeleportPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/ParabolicTeleportPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/PokePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/PokePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/ScreenSpaceMousePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/ScreenSpaceMousePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/ShellHandRayPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/ShellHandRayPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/SpherePointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/SpherePointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/SpherePointerGrabPoint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/SpherePointerGrabPoint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/SpherePointerVisual.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/SpherePointerVisual.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/TeleportPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/TeleportPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/TouchPointer.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Pointers/TouchPointer.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/PhysicalPressEventRouter.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/PhysicalPressEventRouter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/PressableButton.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/PressableButton.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/PressableButtonHoloLens2.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/PressableButtonHoloLens2.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/README.md delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/SubmitEventRouter.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/PressableButtons/SubmitEventRouter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/IProgressIndicator.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/IProgressIndicator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorLoadingBar.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorLoadingBar.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorObjectDisplay.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorObjectDisplay.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorOrbsRotator.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorOrbsRotator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorState.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ProgressIndicators/ProgressIndicatorState.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ScrollingObjectCollection.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ScrollingObjectCollection/ScrollingObjectCollection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ScrollingObjectCollection/ScrollingObjectCollection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ScrollingObjectCollection/ScrollingObjectCollectionNode.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/ScrollingObjectCollection/ScrollingObjectCollectionNode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Slate.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Slate/FollowMeToggle.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Slate/FollowMeToggle.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Slate/HandInteractionPanZoom.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Slate/HandInteractionPanZoom.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/PinchSlider.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/PinchSlider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderAxis.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderAxis.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderEvent.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderEvent.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderEventData.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderEventData.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderSounds.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Sliders/SliderSounds.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/DestroyOnAnimationComplete.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/DestroyOnAnimationComplete.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/IToolTipBackground.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/IToolTipBackground.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/IToolTipHighlight.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/IToolTipHighlight.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/README.md delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/SpeechConfirmationTooltip.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/SpeechConfirmationTooltip.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTip.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTip.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipBackgroundBlob.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipBackgroundBlob.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipBackgroundCorners.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipBackgroundCorners.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipBackgroundMesh.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipBackgroundMesh.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipConnector.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipConnector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipLineHighlight.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipLineHighlight.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipSpawner.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipSpawner.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/ToolTipUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorFollowType.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorFollowType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorOrientType.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorOrientType.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorPivotDirection.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorPivotDirection.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorPivotMode.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ConnectorPivotMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/DisplayMode.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/DisplayMode.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ToolTipAttachPoint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Tooltips/TooltipEnums/ToolTipAttachPoint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/Billboard.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/Billboard.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/Easing.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/Easing.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/GazeHandHelper.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/GazeHandHelper.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/InputRecordingControls.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/InputRecordingControls.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/InteractableHighlight.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/InteractableHighlight.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/InteractableOnFocus.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/InteractableOnFocus.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/PointerBehaviorControls.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/PointerBehaviorControls.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/PrefabSpawner.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/PrefabSpawner.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/RectTransformCubeScaler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/RectTransformCubeScaler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/ToggleHandVisualisation.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/ToggleHandVisualisation.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/UIMaterialInstantiator.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/Utilities/UIMaterialInstantiator.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/Theme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/Theme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeDefinition.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeDefinition.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeEaseSettings.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeEaseSettings.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeProperty.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeProperty.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemePropertyValue.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemePropertyValue.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemePropertyValueTypes.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemePropertyValueTypes.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeStateProperty.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/ThemeStateProperty.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/VisualProfile.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/Core/VisualProfile.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/States.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/States/BaseStateModel.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/States/BaseStateModel.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/States/State.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/States/State.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/States/States.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/States/States.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableActivateTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableActivateTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableAnimatorTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableAnimatorTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableAudioTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableAudioTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableColorChildrenTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableColorChildrenTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableColorTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableColorTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableGrabScaleTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableGrabScaleTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableMaterialTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableMaterialTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableOffsetTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableOffsetTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableRotationTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableRotationTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableScaleTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableScaleTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableShaderTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableShaderTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableStringTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableStringTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableTextureTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableTextureTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableThemeBase.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableThemeBase.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableThemeShaderUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/InteractableThemeShaderUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/ScaleOffsetColorTheme.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/UX/Scripts/VisualThemes/ThemeEngines/ScaleOffsetColorTheme.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/HeadPositionOffset.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/HeadPositionOffset.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/InputRayUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/InputRayUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/PointerUtils.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/PointerUtils.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Smoothing.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Smoothing.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/ConstantViewSize.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/ConstantViewSize.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/ControllerFinder.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/ControllerFinder.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/HandConstraint.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/HandConstraint.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/HandConstraintPalmUp.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/HandConstraintPalmUp.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/InBetween.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/InBetween.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Momentum.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Momentum.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Orbital.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Orbital.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Overlap.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Overlap.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/RadialView.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/RadialView.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Solver.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/Solver.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/SolverHandler.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/SolverHandler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/SurfaceMagnetism.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/SurfaceMagnetism.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/TapToPlace.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/Solvers/TapToPlace.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/SpatialMeshExporter.cs delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/Utilities/SpatialMeshExporter.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/toc.yml delete mode 100644 AR-ROS/Assets/MRTK/SDK/Features/toc.yml.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/License.txt delete mode 100644 AR-ROS/Assets/MRTK/SDK/License.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/MRTK.SDK.asmdef delete mode 100644 AR-ROS/Assets/MRTK/SDK/MRTK.SDK.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/MRTK.SDK.sentinel delete mode 100644 AR-ROS/Assets/MRTK/SDK/MRTK.SDK.sentinel.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityBoundaryVisualizationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityBoundaryVisualizationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityCameraProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityCameraProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityControllerMappingProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityControllerMappingProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityControllerVisualizationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityControllerVisualizationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityDiagnosticsProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityDiagnosticsProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityEyeTrackingProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityEyeTrackingProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityGesturesProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityGesturesProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityHandTrackingProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityHandTrackingProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputActionRulesProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputActionRulesProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputActionsProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputActionsProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputPointerProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputPointerProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputRecordingProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputRecordingProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputSimulationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputSimulationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputSystemProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityInputSystemProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityMouseInputProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityMouseInputProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityRegisteredServiceProvidersProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityRegisteredServiceProvidersProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySceneSystemProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySceneSystemProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySpatialAwarenessMeshObserverProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySpatialAwarenessMeshObserverProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySpatialAwarenessSystemProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySpatialAwarenessSystemProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySpeechCommandsProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealitySpeechCommandsProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityToolkitConfigurationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/DefaultMixedRealityToolkitConfigurationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1CameraProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1CameraProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1ConfigurationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1ConfigurationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1HandTrackingProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1HandTrackingProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1InputSimulationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1InputSimulationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1InputSystemProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens1/DefaultHoloLens1InputSystemProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2CameraProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2CameraProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2ConfigurationProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2ConfigurationProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2HandTrackingProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2HandTrackingProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2InputSystemProfile.asset delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/HoloLens2/DefaultHoloLens2InputSystemProfile.asset.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/README.md delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/toc.yml delete mode 100644 AR-ROS/Assets/MRTK/SDK/Profiles/toc.yml.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Controllers.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_ArticulatedHandMesh.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_ArticulatedHandMesh.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_DefaultCursor.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_DefaultCursor.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_DefaultPointerLine.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_DefaultPointerLine.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_DefaultPointerLineNoTarget.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_DefaultPointerLineNoTarget.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_FingerTipCursor.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_FingerTipCursor.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_GrabPointerGrabPoint.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_GrabPointerGrabPoint.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_GrabPointerTetherLine.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_GrabPointerTetherLine.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_PressableInteractablesButtonBox.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_PressableInteractablesButtonBox.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_Slider_Default.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MRTK_Slider_Default.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MouseCursor.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/MouseCursor.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/TooltipLines.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/TooltipLines.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/TooltipWithBorder.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/TooltipWithBorder.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/TooltipWithoutBorder.mat delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Materials/TooltipWithoutBorder.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/Handle_Base.FBX delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/Handle_Base.FBX.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_RotateHandle.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_RotateHandle.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_ScaleHandle.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_ScaleHandle.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_ScaleHandle_Slate.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_ScaleHandle_Slate.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_TranslateHandle.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_BoundingBox_TranslateHandle.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_FingerTipCursor.fbx delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/MRTK_FingerTipCursor.fbx.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/SpatialAwareness.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/SpatialAwareness/ExampleSpatialMesh.room delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Models/SpatialAwareness/ExampleSpatialMesh.room.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/10x32mm_Square.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/10x32mm_Square.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/32x32mm_Square.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/32x32mm_Square.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/ArticulatedHandMesh.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/ArticulatedHandMesh.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/ArticulatedHandMeshPulse.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/ArticulatedHandMeshPulse.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Handle_Base.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Handle_Base.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/InputSimulationIndicators.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/InputSimulationIndicators.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_RotateHandle.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_RotateHandle.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_ScaleHandle.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_ScaleHandle.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_ScaleHandle_Slate.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_ScaleHandle_Slate.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_TranslateHandle.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/MRTK_BoundingBox_TranslateHandle.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawik.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawik.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikBold.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikBold.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikLight.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikLight.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikSemibold.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikSemibold.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikSemilight.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/3DTextSelawikSemilight.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawik.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawik.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikBold.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikBold.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikLight.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikLight.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikSemibold.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikSemibold.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikSemilight.prefab delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Prefabs/Text/UITextSelawikSemilight.prefab.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/FingerTipCursor.shader delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/FingerTipCursor.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/HandTriangles.shader delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/HandTriangles.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/SR_Triangles.shader delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/SR_Triangles.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/SR_Triangles_Object_Space.shader delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Shaders/SR_Triangles_Object_Space.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Sprites.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Sprites/DefaultIconsSpriteSheet.psd delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Sprites/DefaultIconsSpriteSheet.psd.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/CircleIcon.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/CircleIcon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/GrabArea.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/GrabArea.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/GrabAreaSingle.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/GrabAreaSingle.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconAdd.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconAdd.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconAdjust.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconAdjust.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconCamera.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconCamera.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconCheckOff.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconCheckOff.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconCheckOn.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconCheckOn.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconClose.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconClose.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconDone.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconDone.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconDot.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconDot.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconFollowMe.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconFollowMe.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandActiveLeft.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandActiveLeft.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandActiveRight.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandActiveRight.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandIdleLeft.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandIdleLeft.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandIdleRight.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandIdleRight.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandJoint.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandJoint.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandMesh.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandMesh.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandRay.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandRay.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandUntrackedLeft.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandUntrackedLeft.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandUntrackedRight.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHandUntrackedRight.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHide.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHide.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHome.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconHome.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconMRTKLogo.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconMRTKLogo.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconMessage.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconMessage.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconMicrophone.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconMicrophone.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconPin.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconPin.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconProfiler.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconProfiler.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconRadioOff.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconRadioOff.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconRadioOn.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconRadioOn.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconRefresh.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconRefresh.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSearch.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSearch.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSettings.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSettings.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconShow.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconShow.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSpatialMapping.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSpatialMapping.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconStar.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconStar.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSwitchOff.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSwitchOff.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSwitchOn.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/IconSwitchOn.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/ResetRotation.png delete mode 100644 AR-ROS/Assets/MRTK/SDK/StandardAssets/Textures/ResetRotation.png.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/Version.txt delete mode 100644 AR-ROS/Assets/MRTK/SDK/Version.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/SDK/toc.yml delete mode 100644 AR-ROS/Assets/MRTK/SDK/toc.yml.meta delete mode 100644 AR-ROS/Assets/MRTK/Services.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/MRTK.BoundarySystem.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/MRTK.BoundarySystem.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/MixedRealityBoundarySystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/MixedRealityBoundarySystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/csc.rsp delete mode 100644 AR-ROS/Assets/MRTK/Services/BoundarySystem/XR2018/csc.rsp.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/CameraSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/CameraSystem/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/CameraSystem/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/CameraSystem/MRTK.CameraSystem.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/CameraSystem/MRTK.CameraSystem.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/CameraSystem/MixedRealityCameraSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/CameraSystem/MixedRealityCameraSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/DiagnosticsSystemVoiceControls.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/DiagnosticsSystemVoiceControls.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/MRTK.DiagnosticsSystem.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/MRTK.DiagnosticsSystem.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/Materials/DiagnosticsInstancedColored.mat delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/Materials/DiagnosticsInstancedColored.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/MixedRealityDiagnosticsSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/MixedRealityDiagnosticsSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/MixedRealityToolkitVisualProfiler.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/MixedRealityToolkitVisualProfiler.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/VisualProfilerControl.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/DiagnosticsSystem/VisualProfilerControl.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/BaseNearInteractionTouchable.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/BaseNearInteractionTouchable.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/DefaultRaycastProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/DefaultRaycastProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/MRTK.InputSystem.Editor.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/MRTK.InputSystem.Editor.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/MixedRealityCanvasInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/MixedRealityCanvasInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/MixedRealityInputModuleInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/MixedRealityInputModuleInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/NearInteractionTouchableInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/NearInteractionTouchableInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/NearInteractionTouchableVolumeInspector.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Editor/NearInteractionTouchableVolumeInspector.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/FocusProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/FocusProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/GazePointerVisibilityStateMachine.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/GazePointerVisibilityStateMachine.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/GazeProvider.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/GazeProvider.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/InputSystemGlobalHandlerListener.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/InputSystemGlobalHandlerListener.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/InputSystemGlobalListener.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/InputSystemGlobalListener.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/MRTK.InputSystem.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/MRTK.InputSystem.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/MixedRealityInputModule.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/MixedRealityInputModule.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/MixedRealityInputSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/MixedRealityInputSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionGrabbable.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionGrabbable.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchable.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchable.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchableSurface.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchableSurface.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchableUnityUI.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchableUnityUI.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchableVolume.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/NearInteractionTouchableVolume.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Utilities.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Utilities/CanvasUtility.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Utilities/CanvasUtility.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Utilities/ScaleMeshEffect.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/InputSystem/Utilities/ScaleMeshEffect.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/License.txt delete mode 100644 AR-ROS/Assets/MRTK/Services/License.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/MRTK.Services.sentinel delete mode 100644 AR-ROS/Assets/MRTK/Services/MRTK.Services.sentinel.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/MRTK.SceneSystem.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/MRTK.SceneSystem.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/MixedRealitySceneSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/MixedRealitySceneSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/MixedRealitySceneSystemEditorOperations.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/MixedRealitySceneSystemEditorOperations.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/ResolveDuplicateScenesWindow.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/SceneSystem/ResolveDuplicateScenesWindow.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SpatialAwarenessSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SpatialAwarenessSystem/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/SpatialAwarenessSystem/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SpatialAwarenessSystem/MRTK.SpatialAwarenessSystem.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/SpatialAwarenessSystem/MRTK.SpatialAwarenessSystem.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/SpatialAwarenessSystem/MixedRealitySpatialAwarenessSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/SpatialAwarenessSystem/MixedRealitySpatialAwarenessSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/TeleportSystem.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/TeleportSystem/AssemblyInfo.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/TeleportSystem/AssemblyInfo.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/TeleportSystem/MRTK.TeleportSystem.asmdef delete mode 100644 AR-ROS/Assets/MRTK/Services/TeleportSystem/MRTK.TeleportSystem.asmdef.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/TeleportSystem/MixedRealityTeleportSystem.cs delete mode 100644 AR-ROS/Assets/MRTK/Services/TeleportSystem/MixedRealityTeleportSystem.cs.meta delete mode 100644 AR-ROS/Assets/MRTK/Services/Version.txt delete mode 100644 AR-ROS/Assets/MRTK/Services/Version.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_ButtonPress.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_ButtonPress.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_ButtonUnpress.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_ButtonUnpress.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Gem.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Gem.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Manipulation_End.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Manipulation_End.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Manipulation_Start.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Manipulation_Start.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Move_End.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Move_End.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Move_Start.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Move_Start.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Notification.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Notification.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Rotate_Start.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Rotate_Start.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Rotate_Stop.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Rotate_Stop.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Scale_Start.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Scale_Start.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Scale_Stop.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Scale_Stop.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Select_Main.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Select_Main.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Select_Secondary.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Select_Secondary.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Shell_Click_In.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Shell_Click_In.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Shell_Click_Init.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Shell_Click_Init.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Shell_Click_Out.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Shell_Click_Out.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slate_Release.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slate_Release.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slate_Touch.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slate_Touch.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slider_Grab.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slider_Grab.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slider_Pass_Notch.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slider_Pass_Notch.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slider_Release.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Slider_Release.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Tap.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Tap.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Voice_Confirmation.wav delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Audio/MRTK_Voice_Confirmation.wav.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/LICENSE.txt delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/LICENSE.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawk.ttf delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawk.ttf.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawkb.ttf delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawkb.ttf.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawkl.ttf delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawkl.ttf.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawksb.ttf delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawksb.ttf.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawksl.ttf delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Fonts/selawksl.ttf.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/FontsSDFTextures.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/mic_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/mic_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/mixed_reality_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/mixed_reality_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/script_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/script_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/settings_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/settings_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/shapes_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/shapes_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/spatial_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/spatial_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/spatial_understanding_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/spatial_understanding_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/test_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/test_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/toolkit_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/toolkit_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/ux_icon.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Icons/ux_icon.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/MRTK.StandardAssets.sentinel delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/MRTK.StandardAssets.sentinel.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Occlusion.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Occlusion.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Black.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Black.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Blue.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Blue.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Charcoal.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Charcoal.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Cyan.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Cyan.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_DarkBrown.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_DarkGray.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_DarkGray.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Emerald.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Emerald.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_GlowingCyan.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_GlowingCyan.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_GlowingOrange.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_GlowingOrange.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Gray.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Gray.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Green.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Green.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_LightGray.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_LightGray.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Lime.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Lime.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_LimeDesaturated.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_LimeDesaturated.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Magenta.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Magenta.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Orange.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Orange.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Pink.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Pink.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Purple.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Purple.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_PurpleDesaturated.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_PurpleDesaturated.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Red.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Red.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentBlue.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentBlue.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentCharcoal.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentCharcoal.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentCyan.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentCyan.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentDarkGray.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentDarkGray.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentEmerald.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentEmerald.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentGray.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentGray.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentGreen.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentGreen.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentLightGray.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentLightGray.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentLime.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentLime.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentMagenta.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentMagenta.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentOrange.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentOrange.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentPink.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentPink.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentPurple.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentPurple.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentRed.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentRed.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentWhite.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentWhite.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentYellow.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_TransparentYellow.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_UnlitWhite.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_UnlitWhite.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_White.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_White.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Yellow.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Standard_Yellow.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Wireframe.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_Wireframe.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_WireframeBlue.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/MRTK_WireframeBlue.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawik.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawik.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikBold.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikBold.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikLight.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikLight.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikSemibold.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikSemibold.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikSemilight.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/Text3DSelawikSemilight.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/UIDarkGray.mat delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Materials/UIDarkGray.mat.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/README.md delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/README.md.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/ChannelPacker.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/ChannelPacker.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/DepthBufferPostProcess.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/DepthBufferPostProcess.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/InstancedColored.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/InstancedColored.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/InvisibleShader.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/InvisibleShader.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MRTK_Wireframe.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MRTK_Wireframe.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MixedRealityShaderUtils.cginc delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MixedRealityShaderUtils.cginc.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MixedRealityStandard.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MixedRealityStandard.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MixedRealityTextMeshPro.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/MixedRealityTextMeshPro.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/Text3DShader.shader delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Shaders/Text3DShader.shader.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/DefaultPointerDottedLine.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/DefaultPointerDottedLine.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/Generic_controller_black_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/Generic_controller_black_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/Generic_controller_white_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/Generic_controller_white_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_Logo_Black.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_Logo_Black.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_Logo_White.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_Logo_White.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineJumpBack.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineJumpBack.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineJumpFwd.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineJumpFwd.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelinePause.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelinePause.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelinePlay.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelinePlay.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineRecord.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineRecord.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineRecordActive.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineRecordActive.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineStepBack.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineStepBack.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineStepFwd.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineStepFwd.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineStop.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MRTK_TimelineStop.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_black.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_black.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_black_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_black_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_white.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_white.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_white_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_left_white_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_black.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_black.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_black_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_black_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_white.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_white.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_white_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MotionController_right_white_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MouseCursor.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/MouseCursor.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/Oculus lineart attribution.txt delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/Oculus lineart attribution.txt.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_black.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_black.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_black_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_black_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_white.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_white.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_white_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_left_white_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_black.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_black.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_black_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_black_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_white.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_white.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_white_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusControllersTouch_right_white_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_black.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_black.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_black_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_black_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_white.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_white.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_white_scaled.png delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/Textures/OculusRemoteController_white_scaled.png.meta delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/packagetemplate.json delete mode 100644 AR-ROS/Assets/MRTK/StandardAssets/packagetemplate.json.meta delete mode 100644 AR-ROS/Assets/MixedRealityToolkit.Generated/MRTK.Generated.sentinel delete mode 100644 AR-ROS/Assets/MixedRealityToolkit.Generated/MRTK.Generated.sentinel.meta delete mode 100644 AR-ROS/Assets/MixedRealityToolkit.Generated/ProjectPreferences.asset delete mode 100644 AR-ROS/Assets/MixedRealityToolkit.Generated/ProjectPreferences.asset.meta delete mode 100644 AR-ROS/Assets/MixedRealityToolkit.Generated/link.xml delete mode 100644 AR-ROS/Assets/PointCloudStreaming/Editor.meta delete mode 100644 AR-ROS/Assets/PointCloudStreaming/Editor/GraphicsSettingsEditor.cs delete mode 100644 AR-ROS/Assets/PointCloudStreaming/Editor/GraphicsSettingsEditor.cs.meta delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud.meta delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/PointCloudRenderer.cs delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/PointCloudRenderer.cs.meta delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/PointCloudShader.shader delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/PointCloudShader.shader.meta delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/PointCloudSub.cs delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/PointCloudSub.cs.meta delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/readme.md delete mode 100644 AR-ROS/Assets/PointCloudStreaming/MeshPointCloud/readme.md.meta delete mode 100644 AR-ROS/Assets/PointCloudStreaming/PointCloudSubscriber.cs delete mode 100644 AR-ROS/Assets/PointCloudStreaming/PointCubeRenderer.cs delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_001.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_003.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_004.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_005.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_007.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_008.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_009.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_A01.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/Color_G11.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/FrontColor.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/No Name.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/linesMaterial.mat delete mode 100644 AR-ROS/Assets/Realistic Drone/drone/3dModel/Materials/rayMat.mat delete mode 100644 AR-ROS/Assets/Resources/Default.mat delete mode 100644 AR-ROS/Assets/Resources/Point.prefab delete mode 100644 AR-ROS/Assets/Resources/Temparent_obj.mat delete mode 100644 AR-ROS/Assets/RosSharp/Plugins/External/Newtonsoft.Json.dll delete mode 100644 AR-ROS/Assets/RosSharp/Plugins/External/Newtonsoft.Json.dll.meta delete mode 100644 AR-ROS/Assets/RosSharp/Plugins/Microsoft/System.Threading.Tasks.Extensions.xml delete mode 100644 AR-ROS/Assets/RosSharp/Plugins/Microsoft/System.Threading.Tasks.Extensions.xml.meta delete mode 100644 AR-ROS/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedSubscriber.cs delete mode 100644 AR-ROS/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs delete mode 100644 AR-ROS/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/HingeJointAngleCalculator.cs delete mode 100644 AR-ROS/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/HingeJointAngleCalculator.cs.meta delete mode 100644 AR-ROS/Assets/Scenes/hololens-tello-orbslam2.unity delete mode 100644 AR-ROS/Assets/Scenes/hololens-tello-orbslam2.unity.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Documentation.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf delete mode 100644 AR-ROS/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Fonts.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt delete mode 100644 AR-ROS/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Fonts/LiberationSans.ttf delete mode 100644 AR-ROS/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Sprite Assets.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Style Sheets.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/TMP Settings.asset delete mode 100644 AR-ROS/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro.cginc delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc delete mode 100644 AR-ROS/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Sprites.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt delete mode 100644 AR-ROS/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Sprites/EmojiOne.json delete mode 100644 AR-ROS/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta delete mode 100644 AR-ROS/Assets/TextMesh Pro/Sprites/EmojiOne.png delete mode 100644 AR-ROS/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta delete mode 100644 AR-ROS/Assets/XR.meta delete mode 100644 AR-ROS/Assets/XR/Loaders.meta delete mode 100644 AR-ROS/Assets/XR/Loaders/Windows MR Loader.asset delete mode 100644 AR-ROS/Assets/XR/Loaders/Windows MR Loader.asset.meta delete mode 100644 AR-ROS/Assets/XR/Settings.meta delete mode 100644 AR-ROS/Assets/XR/Settings/Windows MR Package Settings.asset delete mode 100644 AR-ROS/Assets/XR/Settings/Windows MR Package Settings.asset.meta delete mode 100644 AR-ROS/Assets/XR/XRGeneralSettings.asset delete mode 100644 AR-ROS/Assets/XR/XRGeneralSettings.asset.meta delete mode 100644 AR-ROS/Packages/manifest.json delete mode 100644 AR-ROS/Packages/packages-lock.json delete mode 100644 AR-ROS/ProjectSettings/GraphicsSettings.asset delete mode 100644 AR-ROS/ProjectSettings/InputManager.asset delete mode 100644 AR-ROS/ProjectSettings/ProjectSettings.asset delete mode 100644 AR-ROS/ProjectSettings/QualitySettings.asset delete mode 100644 AR-ROS/ProjectSettings/TimeManager.asset delete mode 100644 AR-ROS/ProjectSettings/XRPackageSettings.asset rename {AR-ROS => Unity Projects/ar-ros-image}/.gitignore (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Down.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button/Down.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Finish.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button/Finish.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Left.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button/Left.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Q_Left.cs create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Q_Left.cs.meta create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Q_Right.cs create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Q_Right.cs.meta create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Right.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button/Right.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Button/Up.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button/Up.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Button/ZoomIn.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button/ZoomIn.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Button/ZoomOut.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Button/ZoomOut.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/MRTK.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Messages.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Messages/CatchLog.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Messages/CatchLog.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Messages/TrackSubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Messages/TrackSubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/MixedRealityToolkit.Generated.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/New Universal Render Pipeline Asset.asset create mode 100644 Unity Projects/ar-ros-image/Assets/New Universal Render Pipeline Asset.asset.meta create mode 100644 Unity Projects/ar-ros-image/Assets/New Universal Render Pipeline Asset_Renderer.asset create mode 100644 Unity Projects/ar-ros-image/Assets/New Universal Render Pipeline Asset_Renderer.asset.meta rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json AOT.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.deps.json (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.deps.json.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.xml (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.xml.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Editor.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.deps.json (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.deps.json.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.xml (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.xml.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Portable.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.xml (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.xml.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/PointCloudStreaming.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/PointCloudStreaming/PointCloudSubscriber.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/PointCloudStreaming/PointCloudSubscriber.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/PointCloudStreaming/PointCubeRenderer.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/PointCloudStreaming/PointCubeRenderer.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/PointCloudStreaming/UpdatePoint.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/PointCloudStreaming/UpdatePoint.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/PointCloudStreaming/enableOpenGL.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/PointCloudStreaming/enableOpenGL.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_001.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_001.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_003.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_003.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_004.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_004.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_005.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_005.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_007.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_007.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_008.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_008.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_009.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_009.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_A01.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_A01.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/Color_G11.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/Color_G11.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/FrontColor.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/FrontColor.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/No Name.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/No Name.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/linesMaterial.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/linesMaterial.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Realistic Drone/drone/3dModel/Materials/rayMat.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/Materials/rayMat.mat.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/droneElica.fbx (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/droneElica.fbx.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/droneModel.fbx (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Realistic Drone/drone/3dModel/droneModel.fbx.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Resources.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Resources/Default.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Resources/Default.mat.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Resources/Point.prefab rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Resources/Point.prefab.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Resources/Temparent_obj.mat rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Resources/Temparent_obj.mat.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.xml (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.xml.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/Newtonsoft.Json.xml (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/Newtonsoft.Json.xml.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/websocket-sharp.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/websocket-sharp.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/websocket-sharp.xml (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/External/websocket-sharp.xml.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/MessageGeneration.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/MessageGeneration.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/Microsoft.Bcl.AsyncInterfaces.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/Microsoft.Bcl.AsyncInterfaces.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Buffers.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Buffers.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Memory.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Memory.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Runtime.CompilerServices.Unsafe.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Runtime.CompilerServices.Unsafe.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Text.Encodings.Web.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Text.Encodings.Web.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Text.Json.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Text.Json.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Threading.Channels.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Threading.Channels.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Threading.Tasks.Extensions.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Microsoft/System.Threading.Tasks.Extensions.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/RosBridgeClient.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/RosBridgeClient.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/RosBridgeClientUWP.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/RosBridgeClientUWP.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Urdf.dll (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Plugins/Urdf.dll.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/README.pdf (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/README.pdf.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scenes.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scenes/FibonacciActionScene.unity (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scenes/FibonacciActionScene.unity.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scenes/GazeboSimulationScene.unity (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scenes/GazeboSimulationScene.unity.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scenes/UnitySimulationScene.unity (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scenes/UnitySimulationScene.unity.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Extensions.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Extensions/HeaderExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Extensions/HeaderExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Extensions/TransformExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Extensions/TransformExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/FibonacciAction.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/FibonacciAction/FibonacciActionClientEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/FibonacciAction/FibonacciActionClientEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/JointStatePatcherEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/JointStatePatcherEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryActionAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryActionAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryMsgAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryMsgAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectorySrvAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectorySrvAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageActionAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageActionAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageMsgAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageMsgAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageSrvAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageSrvAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleActionAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleActionAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleMsgAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleMsgAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleSrvAutoGenEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleSrvAutoGenEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosHandler.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosHandler.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosHandler.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosHandler.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStatePatcher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStatePatcher.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateReader.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateReader.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateWriter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateWriter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisInputPasser.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisInputPasser.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointMotorWriter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointMotorWriter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointTransformWriter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointTransformWriter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisReader.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisReader.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisWriter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisWriter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonReader.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonReader.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonWriter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonWriter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanReader.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanReader.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanWriter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanWriter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/GetParamServiceProvider.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/GetParamServiceProvider.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImagePublisher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImagePublisher.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImageSubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImageSubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStatePublisher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStatePublisher.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStateSubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStateSubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoyPublisher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoyPublisher.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoySubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoySubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanPublisher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanPublisher.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanSubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanSubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/OdometrySubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/OdometrySubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedPublisher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedPublisher.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedSubscriber.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedSubscriber.cs.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistPublisher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistPublisher.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistSubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistSubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionClient.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionClient.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionSever.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionSever.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityPublisher.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityPublisher.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityServiceProvider.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityServiceProvider.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnitySubscriber.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnitySubscriber.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizer.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizer.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerLines.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerLines.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerMesh.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerMesh.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerSpheres.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerSpheres.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Timing.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Timing/Timer.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/RosBridgeClient/Timing/Timer.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/LocateAssetHandler.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/LocateAssetHandler.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfAssetPathHandler.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfAssetPathHandler.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfExportPathHandler.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfExportPathHandler.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfMeshExportHandler.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfMeshExportHandler.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/HingeJointLimitsManagerEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/HingeJointLimitsManagerEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionsEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionsEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfInertialEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfInertialEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfJointEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfJointEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfLinkEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfLinkEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfPluginsEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfPluginsEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfRobotEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfRobotEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualsEditor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualsEditor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfExportEditorWindow.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfExportEditorWindow.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterContextMenuItem.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterContextMenuItem.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterMenuItem.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterMenuItem.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfRobotCreatorMenuItem.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfRobotCreatorMenuItem.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/ColladaAssetPostProcessor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/ColladaAssetPostProcessor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlExporter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlExporter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlImporter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlImporter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlReader.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlReader.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlWriter.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlWriter.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionsExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionsExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometry.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometry.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryCollision.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryCollision.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryVisual.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryVisual.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfLinkExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfLinkExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfMaterial.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfMaterial.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfRobotExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfRobotExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualsExtensions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualsExtensions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/HingeJointLimitsManager.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/HingeJointLimitsManager.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/PrismaticJointLimitsManager.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/PrismaticJointLimitsManager.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Math.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Math/Matrix3x3.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/Math/Matrix3x3.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollision.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollision.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollisions.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollisions.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfInertial.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfInertial.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJoint.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJoint.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointContinuous.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointContinuous.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFixed.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFixed.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFloating.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFloating.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPlanar.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPlanar.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPrismatic.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPrismatic.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointRevolute.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointRevolute.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfLink.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfLink.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfOrigin.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfOrigin.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugin.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugin.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugins.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugins.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfRobot.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfRobot.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisual.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisual.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisuals.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisuals.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/link.xml (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/RosSharp/link.xml.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Scenes.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Assets/Scenes/HoloROS-Image.unity rename AR-ROS/Assets/Scenes/HoloROS.unity.meta => Unity Projects/ar-ros-image/Assets/Scenes/HoloROS-Image.unity.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/TextMesh Pro.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Visualization.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Visualization/OnlyShieldPenetration.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Visualization/OnlyShieldPenetration.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Visualization/ShieldPenetration.cs (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/Visualization/ShieldPenetration.cs.meta (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/WSATestCertificate.pfx (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/Assets/WSATestCertificate.pfx.meta (100%) create mode 100644 Unity Projects/ar-ros-image/Packages/manifest.json create mode 100644 Unity Projects/ar-ros-image/Packages/packages-lock.json rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/AudioManager.asset (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/ClusterInputManager.asset (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/DynamicsManager.asset (100%) create mode 100644 Unity Projects/ar-ros-image/ProjectSettings/EditorBuildSettings.asset rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/EditorSettings.asset (100%) create mode 100644 Unity Projects/ar-ros-image/ProjectSettings/GraphicsSettings.asset create mode 100644 Unity Projects/ar-ros-image/ProjectSettings/InputManager.asset rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/NavMeshAreas.asset (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/PackageManagerSettings.asset (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/Physics2DSettings.asset (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/PresetManager.asset (100%) create mode 100644 Unity Projects/ar-ros-image/ProjectSettings/ProjectSettings.asset rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/ProjectVersion.txt (100%) create mode 100644 Unity Projects/ar-ros-image/ProjectSettings/QualitySettings.asset rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/TagManager.asset (100%) create mode 100644 Unity Projects/ar-ros-image/ProjectSettings/TimeManager.asset create mode 100644 Unity Projects/ar-ros-image/ProjectSettings/URPProjectSettings.asset rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/UnityConnectSettings.asset (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/VFXManager.asset (100%) rename {AR-ROS => Unity Projects/ar-ros-image}/ProjectSettings/XRSettings.asset (100%) create mode 100644 Unity Projects/ar-ros/.gitignore create mode 100644 Unity Projects/ar-ros/Assets/Button.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/Down.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/Down.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/Finish.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/Finish.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/Left.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/Left.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/Q_Left.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/Q_Left.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/Q_Right.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/Q_Right.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/Right.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/Right.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/Up.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/Up.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/ZoomIn.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/ZoomIn.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Button/ZoomOut.cs create mode 100644 Unity Projects/ar-ros/Assets/Button/ZoomOut.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/MRTK.meta create mode 100644 Unity Projects/ar-ros/Assets/Messages.meta create mode 100644 Unity Projects/ar-ros/Assets/Messages/CatchLog.cs create mode 100644 Unity Projects/ar-ros/Assets/Messages/CatchLog.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Messages/TrackSubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/Messages/TrackSubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/MixedRealityToolkit.Generated.meta create mode 100644 Unity Projects/ar-ros/Assets/New Universal Render Pipeline Asset.asset create mode 100644 Unity Projects/ar-ros/Assets/New Universal Render Pipeline Asset.asset.meta create mode 100644 Unity Projects/ar-ros/Assets/New Universal Render Pipeline Asset_Renderer.asset create mode 100644 Unity Projects/ar-ros/Assets/New Universal Render Pipeline Asset_Renderer.asset.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json AOT.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.deps.json create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.deps.json.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.dll create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.xml create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json AOT/Newtonsoft.Json.xml.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Editor.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.deps.json create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.deps.json.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.dll create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.xml create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Editor/Newtonsoft.Json.xml.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Portable.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.dll create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.xml create mode 100644 Unity Projects/ar-ros/Assets/Plugins/Newtonsoft.Json Portable/Newtonsoft.Json.xml.meta create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming.meta create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/PointCloudSubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/PointCloudSubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/PointCubeRenderer.cs create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/PointCubeRenderer.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/UpdatePoint.cs create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/UpdatePoint.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/enableOpenGL.cs create mode 100644 Unity Projects/ar-ros/Assets/PointCloudStreaming/enableOpenGL.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_001.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_001.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_003.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_003.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_004.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_004.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_005.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_005.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_007.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_007.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_008.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_008.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_009.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_009.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_A01.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_A01.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_G11.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/Color_G11.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/FrontColor.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/FrontColor.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/No Name.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/No Name.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/linesMaterial.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/linesMaterial.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/rayMat.mat create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/Materials/rayMat.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/droneElica.fbx create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/droneElica.fbx.meta create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/droneModel.fbx create mode 100644 Unity Projects/ar-ros/Assets/Realistic Drone/drone/3dModel/droneModel.fbx.meta rename {AR-ROS/Assets/TextMesh Pro => Unity Projects/ar-ros/Assets}/Resources.meta (77%) create mode 100644 Unity Projects/ar-ros/Assets/Resources/Default.mat create mode 100644 Unity Projects/ar-ros/Assets/Resources/Default.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/Resources/Point.prefab create mode 100644 Unity Projects/ar-ros/Assets/Resources/Point.prefab.meta create mode 100644 Unity Projects/ar-ros/Assets/Resources/Temparent_obj.mat create mode 100644 Unity Projects/ar-ros/Assets/Resources/Temparent_obj.mat.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.xml create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/Newtonsoft.Json.Bson.xml.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/Newtonsoft.Json.xml create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/Newtonsoft.Json.xml.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/websocket-sharp.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/websocket-sharp.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/websocket-sharp.xml create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/External/websocket-sharp.xml.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/MessageGeneration.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/MessageGeneration.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/Microsoft.Bcl.AsyncInterfaces.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Buffers.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Buffers.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Memory.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Memory.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Text.Encodings.Web.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Text.Encodings.Web.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Text.Json.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Text.Json.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Threading.Channels.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Threading.Channels.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Threading.Tasks.Extensions.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Microsoft/System.Threading.Tasks.Extensions.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/RosBridgeClient.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/RosBridgeClient.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/RosBridgeClientUWP.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/RosBridgeClientUWP.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Urdf.dll create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Plugins/Urdf.dll.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/README.pdf create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/README.pdf.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scenes.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scenes/FibonacciActionScene.unity create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scenes/FibonacciActionScene.unity.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scenes/GazeboSimulationScene.unity create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scenes/GazeboSimulationScene.unity.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scenes/UnitySimulationScene.unity create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scenes/UnitySimulationScene.unity.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Extensions.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Extensions/HeaderExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Extensions/HeaderExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Extensions/TransformExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Extensions/TransformExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/FibonacciAction.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/FibonacciAction/FibonacciActionClientEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/FibonacciAction/FibonacciActionClientEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/JointStatePatcherEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/JointStatePatcherEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryActionAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryActionAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryMsgAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectoryMsgAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectorySrvAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/DirectorySrvAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageActionAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageActionAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageMsgAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageMsgAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageSrvAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/PackageSrvAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleActionAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleActionAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleMsgAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleMsgAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleSrvAutoGenEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/MessageGeneration/SingleSrvAutoGenEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosHandler.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferFromRosHandler.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosHandler.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Editor/UrdfTransfer/TransferToRosHandler.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStatePatcher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStatePatcher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateReader.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateReader.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateWriter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JointStateWriter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisInputPasser.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisInputPasser.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointMotorWriter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointMotorWriter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointTransformWriter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisJointTransformWriter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisReader.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisReader.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisWriter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyAxisWriter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonReader.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonReader.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonWriter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/JoyButtonWriter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanReader.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanReader.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanWriter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/MessageHandling/LaserScanWriter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/GetParamServiceProvider.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/GetParamServiceProvider.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImagePublisher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImagePublisher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImageSubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/ImageSubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStatePublisher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStatePublisher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStateSubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JointStateSubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoyPublisher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoyPublisher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoySubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/JoySubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanPublisher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanPublisher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanSubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/LaserScanSubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/OdometrySubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/OdometrySubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedPublisher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedPublisher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedSubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/PoseStampedSubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/RosConnector.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistPublisher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistPublisher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistSubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/TwistSubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionClient.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionClient.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionSever.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityFibonacciActionSever.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityPublisher.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityPublisher.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityServiceProvider.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnityServiceProvider.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnitySubscriber.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/RosCommuncation/UnitySubscriber.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizer.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizer.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerLines.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerLines.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerMesh.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerMesh.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerSpheres.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/SensorDataVisualization/LaserScanVisualizerSpheres.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Timing.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Timing/Timer.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/RosBridgeClient/Timing/Timer.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/LocateAssetHandler.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/LocateAssetHandler.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfAssetPathHandler.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfAssetPathHandler.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfExportPathHandler.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfExportPathHandler.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfMeshExportHandler.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/AssetHandlers/UrdfMeshExportHandler.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/HingeJointLimitsManagerEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/HingeJointLimitsManagerEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionsEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfCollisionsEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfInertialEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfInertialEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfJointEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfJointEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfLinkEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfLinkEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfPluginsEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfPluginsEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfRobotEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfRobotEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualsEditor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/CustomInspectors/UrdfVisualsEditor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfExportEditorWindow.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfExportEditorWindow.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterContextMenuItem.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterContextMenuItem.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterMenuItem.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfImporterMenuItem.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfRobotCreatorMenuItem.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MenuItems/UrdfRobotCreatorMenuItem.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/ColladaAssetPostProcessor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/ColladaAssetPostProcessor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlAssetPostProcessor.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlExporter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlExporter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlImporter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlImporter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlReader.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlReader.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlWriter.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/MeshProcessing/StlWriter.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionsExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfCollisionsExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometry.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometry.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryCollision.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryCollision.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryVisual.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfGeometryVisual.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfLinkExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfLinkExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfMaterial.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfMaterial.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfRobotExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfRobotExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualsExtensions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Editor/UrdfComponents/UrdfVisualsExtensions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/HingeJointLimitsManager.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/HingeJointLimitsManager.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/PrismaticJointLimitsManager.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/JointLimitsManagers/PrismaticJointLimitsManager.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Math.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Math/Matrix3x3.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/Math/Matrix3x3.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollision.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollision.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollisions.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfCollisions.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfInertial.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfInertial.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJoint.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJoint.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointContinuous.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointContinuous.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFixed.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFixed.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFloating.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointFloating.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPlanar.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPlanar.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPrismatic.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointPrismatic.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointRevolute.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfJoints/UrdfJointRevolute.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfLink.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfLink.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfOrigin.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfOrigin.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugin.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugin.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugins.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfPlugins.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfRobot.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfRobot.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisual.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisual.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisuals.cs create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/Scripts/Urdf/UrdfComponents/UrdfVisuals.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/RosSharp/link.xml rename {AR-ROS/Assets/MixedRealityToolkit.Generated => Unity Projects/ar-ros/Assets/RosSharp}/link.xml.meta (75%) create mode 100644 Unity Projects/ar-ros/Assets/Scenes.meta rename {AR-ROS => Unity Projects/ar-ros}/Assets/Scenes/HoloROS.unity (94%) create mode 100644 Unity Projects/ar-ros/Assets/Scenes/HoloROS.unity.meta create mode 100644 Unity Projects/ar-ros/Assets/TextMesh Pro.meta create mode 100644 Unity Projects/ar-ros/Assets/Visualization.meta create mode 100644 Unity Projects/ar-ros/Assets/Visualization/OnlyShieldPenetration.cs create mode 100644 Unity Projects/ar-ros/Assets/Visualization/OnlyShieldPenetration.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/Visualization/ShieldPenetration.cs create mode 100644 Unity Projects/ar-ros/Assets/Visualization/ShieldPenetration.cs.meta create mode 100644 Unity Projects/ar-ros/Assets/WSATestCertificate.pfx create mode 100644 Unity Projects/ar-ros/Assets/WSATestCertificate.pfx.meta create mode 100644 Unity Projects/ar-ros/Packages/manifest.json create mode 100644 Unity Projects/ar-ros/Packages/packages-lock.json create mode 100644 Unity Projects/ar-ros/ProjectSettings/AudioManager.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/ClusterInputManager.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/DynamicsManager.asset rename {AR-ROS => Unity Projects/ar-ros}/ProjectSettings/EditorBuildSettings.asset (100%) create mode 100644 Unity Projects/ar-ros/ProjectSettings/EditorSettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/GraphicsSettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/InputManager.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/NavMeshAreas.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/PackageManagerSettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/Physics2DSettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/PresetManager.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/ProjectSettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/ProjectVersion.txt create mode 100644 Unity Projects/ar-ros/ProjectSettings/QualitySettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/TagManager.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/TimeManager.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/URPProjectSettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/UnityConnectSettings.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/VFXManager.asset create mode 100644 Unity Projects/ar-ros/ProjectSettings/XRSettings.asset diff --git a/AR-ROS/.vsconfig b/AR-ROS/.vsconfig deleted file mode 100644 index d70cd98b7..000000000 --- a/AR-ROS/.vsconfig +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": "1.0", - "components": [ - "Microsoft.VisualStudio.Workload.ManagedGame" - ] -} diff --git a/AR-ROS/Assets/Button/Down.cs b/AR-ROS/Assets/Button/Down.cs deleted file mode 100644 index 01c3ce502..000000000 --- a/AR-ROS/Assets/Button/Down.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class Down : MonoBehaviour -{ - private GameObject drone; - - void Start() - { - drone = GameObject.Find("World"); - } - - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - public void OnClick() - { - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - // Vector3 direction = cameraForward * 0.1f + Camera.main.transform.right * 0; - drone.transform.position += new Vector3(0, -0.05f, 0); - } -} diff --git a/AR-ROS/Assets/Button/Finish.cs b/AR-ROS/Assets/Button/Finish.cs deleted file mode 100644 index 552956b79..000000000 --- a/AR-ROS/Assets/Button/Finish.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class Finish : MonoBehaviour -{ - private GameObject button; - private GameObject drone1; - private GameObject Cloud1; - - void Start() - { - button = GameObject.Find("PressableButton1"); - drone1 = GameObject.Find("Drone1"); - Cloud1 = GameObject.Find("Cloud1"); - } - - public void OnClick() - { - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - // Vector3 direction = cameraForward * 0.1f + Camera.main.transform.right * 0; - button.gameObject.SetActive(false); - Cloud1.transform.localPosition = drone1.transform.localPosition; - } -} diff --git a/AR-ROS/Assets/Button/Left.cs b/AR-ROS/Assets/Button/Left.cs deleted file mode 100644 index d9acef82b..000000000 --- a/AR-ROS/Assets/Button/Left.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class Left : MonoBehaviour -{ - private GameObject drone; - - void Start() - { - drone = GameObject.Find("World"); - } - - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - public void OnClick() - { - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - // Vector3 direction = cameraForward * 0.1f + Camera.main.transform.right * 0; - drone.transform.position += new Vector3(-0.05f, 0, 0); - } -} diff --git a/AR-ROS/Assets/Button/Right.cs b/AR-ROS/Assets/Button/Right.cs deleted file mode 100644 index 9ea574aea..000000000 --- a/AR-ROS/Assets/Button/Right.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class Right : MonoBehaviour -{ - private GameObject drone; - - void Start() - { - drone = GameObject.Find("World"); - } - - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - public void OnClick() - { - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - // Vector3 direction = cameraForward * 0.1f + Camera.main.transform.right * 0; - drone.transform.position += new Vector3(0.05f, 0, 0); - } -} diff --git a/AR-ROS/Assets/Button/Up.cs b/AR-ROS/Assets/Button/Up.cs deleted file mode 100644 index 18ee5a71d..000000000 --- a/AR-ROS/Assets/Button/Up.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class Up : MonoBehaviour -{ - private GameObject drone; - - void Start() - { - drone = GameObject.Find("World"); - } - - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - public void OnClick() - { - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - // Vector3 direction = cameraForward * 0.1f + Camera.main.transform.right * 0; - drone.transform.position += new Vector3(0, 0.05f, 0); - } -} diff --git a/AR-ROS/Assets/Button/ZoomIn.cs b/AR-ROS/Assets/Button/ZoomIn.cs deleted file mode 100644 index badfd29e1..000000000 --- a/AR-ROS/Assets/Button/ZoomIn.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class ZoomIn : MonoBehaviour -{ - private GameObject drone; - - void Start() - { - drone = GameObject.Find("World"); - } - public void OnClick() - { - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - // Vector3 direction = cameraForward * 0 + Camera.main.transform.right * -0.1f; - // build.transform.position += direction; - drone.transform.position += new Vector3(0, 0, -0.05f); - } -} diff --git a/AR-ROS/Assets/Button/ZoomOut.cs b/AR-ROS/Assets/Button/ZoomOut.cs deleted file mode 100644 index c34801465..000000000 --- a/AR-ROS/Assets/Button/ZoomOut.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class ZoomOut : MonoBehaviour -{ - private GameObject drone; - - void Start() - { - drone = GameObject.Find("World"); - } - public void OnClick() - { - // var cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; - // Vector3 direction = cameraForward * 0 + Camera.main.transform.right * -0.1f; - // build.transform.position += direction; - drone.transform.position += new Vector3(0, 0, 0.05f); - } -} diff --git a/AR-ROS/Assets/Debug.meta b/AR-ROS/Assets/Debug.meta deleted file mode 100644 index fcd796321..000000000 --- a/AR-ROS/Assets/Debug.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 45c7c0423947649af8f90acd054dd784 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/MeshSplit.meta b/AR-ROS/Assets/Debug/MeshSplit.meta deleted file mode 100644 index 94a627d53..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7136e3ef44856455c8640857f94ae8ef -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/MeshSplit/Editor.meta b/AR-ROS/Assets/Debug/MeshSplit/Editor.meta deleted file mode 100644 index 4481eae9c..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 01df1406fcc65c5409f6c48014b30b80 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs b/AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs deleted file mode 100644 index dc122d101..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs +++ /dev/null @@ -1,30 +0,0 @@ -/* https://github.com/artnas/Unity-Plane-Mesh-Splitter */ - -using UnityEditor; -using UnityEngine; - -namespace MeshSplit.Editor -{ - [CustomEditor(typeof(MeshSplitController))] - public class MeshSplitControllerEditor : UnityEditor.Editor - { - public override void OnInspectorGUI() - { - MeshSplitController instance = (MeshSplitController)target; - - DrawDefaultInspector(); - - if (GUILayout.Button("Create submeshes")) - { - Undo.RecordObject(instance, "Created submeshes"); - instance.Split(); - } - - if (GUILayout.Button("Clear submeshes")) - { - Undo.RecordObject(instance, "Cleared submeshes"); - instance.Clear(); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs.meta b/AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs.meta deleted file mode 100644 index ffa0eaefd..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/Editor/MeshSplitControllerEditor.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3ee3a26907865e848a61b660b94e2735 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs b/AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs deleted file mode 100644 index 078e72cf3..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs +++ /dev/null @@ -1,150 +0,0 @@ -/* https://github.com/artnas/Unity-Plane-Mesh-Splitter */ - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace MeshSplit -{ - public class MeshSplitController : MonoBehaviour - { - public MeshSplitParameters Parameters; - public bool DrawGridGizmosWhenSelected = false; - - private Mesh _baseMesh; - private MeshRenderer _baseRenderer; - - // generated children are kept here, so the script knows what to delete on Split() or Clear() - [HideInInspector] [SerializeField] - private List _children; - - public void Split() - { - DestroyChildren(); - - if (GetUsedAxisCount() < 1) - { - throw new Exception("You have to choose at least 1 axis."); - } - - var meshFilter = GetComponent(); - if (meshFilter) - { - _baseMesh = meshFilter.sharedMesh; - } - else - { - throw new Exception("MeshFilter component is required."); - } - - _baseRenderer = GetComponent(); - if (_baseRenderer) - { - _baseRenderer.enabled = false; - } - - var meshSplitter = new MeshSplitter(Parameters); - var subMeshes = meshSplitter.Split(_baseMesh); - - _children = new List(); - foreach (var subMesh in subMeshes) - { - CreateChild(subMesh); - } - } - - private void CreateChild((Vector3Int gridPoint, Mesh mesh) subMesh) - { - var newGameObject = new GameObject - { - name = "SubMesh " + subMesh.gridPoint - }; - - newGameObject.transform.SetParent(transform, false); - if (Parameters.UseParentLayer) - { - newGameObject.layer = gameObject.layer; - } - if (Parameters.UseParentStaticFlag) - { - newGameObject.isStatic = gameObject.isStatic; - } - - // assign the new mesh to this submeshes mesh filter - var newMeshFilter = newGameObject.AddComponent(); - newMeshFilter.sharedMesh = subMesh.mesh; - - var newMeshRenderer = newGameObject.AddComponent(); - if (Parameters.UseParentMeshRendererSettings && _baseRenderer) - { - newMeshRenderer.sharedMaterial = _baseRenderer.sharedMaterial; - newMeshRenderer.sortingOrder = _baseRenderer.sortingOrder; - newMeshRenderer.sortingLayerID = _baseRenderer.sortingLayerID; - newMeshRenderer.shadowCastingMode = _baseRenderer.shadowCastingMode; - } - - if (Parameters.GenerateColliders) - { - var meshCollider = newGameObject.AddComponent(); - meshCollider.convex = Parameters.UseConvexColliders; - meshCollider.sharedMesh = subMesh.mesh; - } - - _children.Add(newGameObject); - } - - private int GetUsedAxisCount() - { - return (Parameters.SplitAxisX ? 1 : 0) + (Parameters.SplitAxisY ? 1 : 0) + (Parameters.SplitAxisZ ? 1 : 0); - } - - public void Clear() - { - DestroyChildren(); - - var meshRenderer = GetComponent(); - if (meshRenderer) - { - meshRenderer.enabled = true; - } - } - - private void DestroyChildren() - { - if (_children == null) return; - - foreach (var t in _children) - { - DestroyImmediate(t.GetComponent().sharedMesh); - DestroyImmediate(t); - } - - _children.Clear(); - } - - private void OnDrawGizmosSelected() - { - var meshFilter = GetComponent(); - if (!DrawGridGizmosWhenSelected || !meshFilter || !meshFilter.sharedMesh) - return; - - var bounds = meshFilter.sharedMesh.bounds; - - var xSize = Mathf.Ceil(bounds.extents.x) + Parameters.GridSize; - var ySize = Mathf.Ceil(bounds.extents.y) + Parameters.GridSize; - var zSize = Mathf.Ceil(bounds.extents.z) + Parameters.GridSize; - - for (var z = -zSize; z <= zSize; z += Parameters.GridSize) - { - for (var y = -ySize; y <= ySize; y += Parameters.GridSize) - { - for (var x = -xSize; x <= xSize; x += Parameters.GridSize) - { - var position = transform.position + new Vector3(x, y, z); - Gizmos.DrawWireCube(position, Parameters.GridSize * transform.localScale); - } - } - } - } - } -} diff --git a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs.meta b/AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs.meta deleted file mode 100644 index f0222b918..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8b71c755f85a54e488b245dc3ae8599c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs b/AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs deleted file mode 100644 index cdf8f253c..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs +++ /dev/null @@ -1,36 +0,0 @@ -/* https://github.com/artnas/Unity-Plane-Mesh-Splitter */ - -using System; -using UnityEngine; - -namespace MeshSplit -{ - [Serializable] - public class MeshSplitParameters - { - [Range(0.1f, 64)] - public float GridSize = 16; - - [Header("Axes.")] - public bool SplitAxisX = true; - public bool SplitAxisY = true; - public bool SplitAxisZ = true; - - [Header("Parent attributes.")] - public bool UseParentLayer = true; - public bool UseParentStaticFlag = true; - public bool UseParentMeshRendererSettings = true; - - [Header("Vertex data.")] - public bool UseVertexNormals; - public bool UseVertexColors; - - [Header("Amount of uv channels to use.")] - [Range(0, 8)] - public int UvChannels = 1; - - [Header("Collisions.")] - public bool GenerateColliders; - public bool UseConvexColliders; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs.meta b/AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs.meta deleted file mode 100644 index 5035011ce..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitParameters.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 49fd6da2dc03e9648a1fd4d87344a940 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs b/AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs deleted file mode 100644 index b217b3654..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs +++ /dev/null @@ -1,192 +0,0 @@ -/* https://github.com/artnas/Unity-Plane-Mesh-Splitter */ - -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace MeshSplit -{ - public class MeshSplitter - { - private readonly MeshSplitParameters _parameters; - - /* Mesh data */ - private Vector3[] _vertices; - private int[] _indices; - private List> _uvChannels; - private Vector3[] _normals; - private Color32[] _colors; - - private Dictionary> _pointIndicesMap; - - public MeshSplitter(MeshSplitParameters parameters) - { - _parameters = parameters; - } - - public List<(Vector3Int gridPoint, Mesh mesh)> Split(Mesh mesh) - { - CopyMeshData(mesh); - CreatePointIndicesMap(); - return CreateChildMeshes(); - } - - private void CopyMeshData(Mesh mesh) - { - _vertices = mesh.vertices; - _indices = mesh.triangles; - - if (_parameters.UseVertexNormals) - { - _normals = mesh.normals; - } - - if (_parameters.UseVertexColors) - { - _colors = mesh.colors32; - } - - if (_parameters.UvChannels > 0) - { - _uvChannels = new List>(); - for (var i = 0; i < _parameters.UvChannels; i++) - { - var uvs = new List(); - - mesh.GetUVs(i, uvs); - - if (uvs.Count == 0) - { - Debug.LogWarning($"Mesh split parameters have more uv channels ({_parameters.UvChannels}) than mesh. Changing uv channels to {i}"); - _parameters.UvChannels = i; - break; - } - - _uvChannels.Add(uvs); - } - } - } - - private void CreatePointIndicesMap() - { - // Create a list of triangle indices from our mesh for every grid node - _pointIndicesMap = new Dictionary>(); - - for (var i = 0; i < _indices.Length; i += 3) - { - // middle of the current triangle (average of its 3 verts). - var currentPoint = (_vertices[_indices[i]] + _vertices[_indices[i + 1]] + _vertices[_indices[i + 2]]) / 3; - - // calculate coordinates of the closest grid node. - // ignore an axis (set it to 0) if its not enabled - var gridPos = new Vector3Int( - _parameters.SplitAxisX ? Mathf.RoundToInt(Mathf.Round(currentPoint.x / _parameters.GridSize) * _parameters.GridSize) : 0, - _parameters.SplitAxisY ? Mathf.RoundToInt(Mathf.Round(currentPoint.y / _parameters.GridSize) * _parameters.GridSize) : 0, - _parameters.SplitAxisZ ? Mathf.RoundToInt(Mathf.Round(currentPoint.z / _parameters.GridSize) * _parameters.GridSize) : 0 - ); - - // check if the dictionary has a key (our grid position). Add it / create a list for it if it doesnt. - if (!_pointIndicesMap.ContainsKey(gridPos)) - { - _pointIndicesMap.Add(gridPos, new List()); - } - - // add these triangle indices to the list - _pointIndicesMap[gridPos].Add(_indices[i]); - _pointIndicesMap[gridPos].Add(_indices[i + 1]); - _pointIndicesMap[gridPos].Add(_indices[i + 2]); - } - } - - private List<(Vector3Int gridPoint, Mesh mesh)> CreateChildMeshes() - { - // create a submesh for each list of triangle indices - return _pointIndicesMap.Select(entry => CreateMeshForGridPoint(entry.Key, entry.Value)).ToList(); - } - - private (Vector3Int gridPoint, Mesh mesh) CreateMeshForGridPoint(Vector3Int gridPoint, List dictionaryTriangles) - { - var meshHasNormals = _normals != null && _normals.Length > 0; - var meshHasColors = _colors != null && _colors.Length > 0; - - // mesh data lists for the new mesh - var vertices = new List(); - var tris = new List(); - var normals = new List(); - var colors = new List(); - - var uvChannels = new List>(); - for (var i = 0; i < _parameters.UvChannels; i++) - { - uvChannels.Add(new List()); - } - - // these lists are filled in this loop - for (var i = 0; i < dictionaryTriangles.Count; i += 3) - { - var a = i; - var b = i + 1; - var c = i + 2; - - vertices.Add(_vertices[dictionaryTriangles[a]]); - vertices.Add(_vertices[dictionaryTriangles[b]]); - vertices.Add(_vertices[dictionaryTriangles[c]]); - - tris.Add(a); - tris.Add(b); - tris.Add(c); - - for (var j = 0; j < _parameters.UvChannels; j++) - { - uvChannels[j].Add(_uvChannels[j][dictionaryTriangles[a]]); - uvChannels[j].Add(_uvChannels[j][dictionaryTriangles[b]]); - uvChannels[j].Add(_uvChannels[j][dictionaryTriangles[c]]); - } - - if (_parameters.UseVertexNormals && meshHasNormals) - { - normals.Add(_normals[dictionaryTriangles[a]]); - normals.Add(_normals[dictionaryTriangles[b]]); - normals.Add(_normals[dictionaryTriangles[c]]); - } - - if (_parameters.UseVertexColors && meshHasColors) - { - colors.Add(_colors[dictionaryTriangles[a]]); - colors.Add(_colors[dictionaryTriangles[b]]); - colors.Add(_colors[dictionaryTriangles[c]]); - } - } - - // Create a new mesh - var newMesh = new Mesh - { - name = $"Submesh {gridPoint}", - vertices = vertices.ToArray(), - triangles = tris.ToArray() - }; - - if (_parameters.UseVertexNormals && normals.Count > 0) - { - newMesh.normals = normals.ToArray(); - } - - if (_parameters.UseVertexColors && colors.Count > 0) - { - newMesh.colors32 = colors.ToArray(); - } - - for (var i = 0; i < _parameters.UvChannels; i++) - { - newMesh.SetUVs(i, uvChannels[i]); - } - -#if UNITY_EDITOR - // optimize mesh - UnityEditor.MeshUtility.Optimize(newMesh); -#endif - - return (gridPoint, newMesh); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs.meta b/AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs.meta deleted file mode 100644 index 083b6342f..000000000 --- a/AR-ROS/Assets/Debug/MeshSplit/MeshSplitter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b24a659649f508d43a78f6af7b297e4e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/PointcloudSubscriber.cs b/AR-ROS/Assets/Debug/PointcloudSubscriber.cs deleted file mode 100644 index fe72d96b7..000000000 --- a/AR-ROS/Assets/Debug/PointcloudSubscriber.cs +++ /dev/null @@ -1,88 +0,0 @@ -using UnityEngine; -using System; -using UnityEditor; - -namespace RosSharp.RosBridgeClient -{ - [RequireComponent(typeof(RosConnector))] - public class PointcloudSubscriber : UnitySubscriber - { - //Mesh variables - public RgbPoint3[] Points; - private Mesh mesh; - public MeshRenderer meshRenderer; - Vector3[] vertices; - //int[] triangles; - Color[] colors; - //Subscription variable - private bool isMessageReceived = false; - - protected override void Start() - { - Debug.Log("Start\n"); - //Start Unity Subscriber - base.Start(); - //Create empty new mesh for points - mesh = new Mesh(); - GetComponent().mesh = mesh; - meshRenderer.material = new Material(Shader.Find("Custom/PointCloudShader")); - } - - private void Update() //Function to update when new messages are received - { - if(isMessageReceived){ - ProcessMessage(); - } - } - - protected override void ReceiveMessage(MessageTypes.Sensor.PointCloud2 message) //Automatically called when new mesage received - { - Debug.Log("ReceiveMessage\n"); - //Processes message, transforms into form Unity can understand - //NOTE: Pointcloud.cs methods could be implemented here (depth & image) - long I = message.data.Length / message.point_step; - RgbPoint3[] Points = new RgbPoint3[I]; - byte[] byteSlice = new byte[message.point_step]; - for (long i = 0; i < I; i++) - { - Array.Copy(message.data, i * message.point_step, byteSlice, 0, message.point_step); - Points[i] = new RgbPoint3(byteSlice, message.fields); - } - vertices = new Vector3[I]; - colors = new Color[I]; - for (var i = 0; i < I; i++) - { - vertices[i].x = Points[i].x; - vertices[i].y = Points[i].z; - vertices[i].z = Points[i].y; - colors[i].r = (float)((float)Points[i].rgb[0] / 255.0); - colors[i].g = (float)((float)Points[i].rgb[1] / 255.0); - colors[i].b = (float)((float)Points[i].rgb[2] / 255.0); - colors[i].a = 1.0F; - //Debug.Log("Colors: " + colors[i].ToString()); - //Debug.Log("Vertex Colors: " + Points[i].rgb[0] + " " + Points[i].rgb[1] + " " + Points[i].rgb[2] + "\n"); - } - isMessageReceived = true; - } - - private void ProcessMessage() //Clears mesh and loads new vertices - { - Debug.Log("ProcessMessage\n"); - - mesh.Clear(); //Removed try / catch loop - mesh.vertices = vertices; - mesh.colors = colors; - - //Graphs mesh as points. Works with /rtabmap/cloud_map & /voxel_cloud - int[] indices = new int[vertices.Length]; - for(int i = 0; i < mesh.vertices.Length; i++){ - indices[i] = i; - } - mesh.SetIndices(indices, MeshTopology.Points, 0); - mesh.RecalculateBounds(); - //AssetDatabase.CreateAsset(mesh, "Assets/testMeshColorRTABMap4.asset"); - //AssetDatabase.SaveAssets(); - isMessageReceived = false; //Resets and waits for new message - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/Debug/PointcloudSubscriber.cs.meta b/AR-ROS/Assets/Debug/PointcloudSubscriber.cs.meta deleted file mode 100644 index e31ee570a..000000000 --- a/AR-ROS/Assets/Debug/PointcloudSubscriber.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e49fa19d359234e6d806e3ecfde5ede5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/Debug/Temporarily.cs b/AR-ROS/Assets/Debug/Temporarily.cs deleted file mode 100644 index 4b9e4e29e..000000000 --- a/AR-ROS/Assets/Debug/Temporarily.cs +++ /dev/null @@ -1,140 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using System; - - -public class Temporarily : MonoBehaviour -{ -// private Vector3[] An = new Vector3[10000]; -// private Vector3[] array = new Vector3[10000]; - private Vector3[] pcl; - private List myPositions = new List(); - public GameObject myPrefab; - //ã“ã“ã‚’é…列ã§ã¯ãªãリストã«ã™ã‚‹(変更) - private List prefabList = new List(); - private int x; - private int y; - private int z; - // Start is called before the first frame update - void Start() - { - x = 0; - y = 0; - z = 0; - GeneratePrefab(); - //最åˆã«Instantiateã§å…¨ã¦ç”Ÿæˆã—ã¦prefabArrayã«æ ¼ç´ã—ã¦ãŠã - // for(int i = 0; i < 100; i++) - // { - // GameObject prefab = Instantiate(this.myPrefab); - // //ã“ã®æ™‚生æˆã—ãŸprefabã¯ä¸€æ—¦éžè¡¨ç¤ºçŠ¶æ…‹ã«ã—ã¦ãŠã - // prefab.SetActive(false); - // prefabList.Add(prefab); - // } - // Vector3 halfExtents = new Vector3(0.5f, 0.5f, 0.5f); - // int _disNum = 1; - // pcl = new Vector3[10000]; - // float x = Mathf.Floor(1.4f * 100) / 100; - // float y = Mathf.Floor(0.4f * 100) / 100; - // float z = Mathf.Floor(0.3f * 100) / 100; - // pcl[0] = new Vector3(0.4f, 0.0f, -2.0f); - // pcl[1] = new Vector3(1.0f, 1.0f, 0.0f); - // pcl[2] = new Vector3(1.0f, 1.0f, 1.0f); - // myPositions.Add(pcl[0]); - // myPositions.Add(pcl[1]); - // myPositions.Add(pcl[2]); - - // // ボックスã¨ã‚¢ã‚¤ãƒ†ãƒ ãŒé‡ãªã‚‰ãªã„ã¨ã - // if (!Physics.CheckBox(pcl[1], halfExtents, Quaternion.identity)) - // { - // Debug.Log("Hello"); - // } - - // Debug.Log(pcl[0]-pcl[1]); - // Debug.Log(myPositions.IndexOf(pcl[0]-pcl[1])); - // Debug.Log(myPositions[0]); - -// Debug.Log("x:" + x + "y:" + y + "z:" + z); - - // x = (float)Math.Round(1.4f * _disNum, MidpointRounding.AwayFromZero); - // y = (float)Math.Round(0.4f * _disNum, MidpointRounding.AwayFromZero); - // z = (float)Math.Round(0.3f * _disNum, MidpointRounding.AwayFromZero); -// Debug.Log("x:" + x + "y:" + y + "z:" + z); - -// Debug.Log(z); -// Debug.Log(Mathf.Approximately(0.01f, 0.02f)); -// Debug.Log(Mathf.Approximately(z, 1.0f)); - - -// for (int n = 0; n < 4; n++) -// { -// int isPosition = Array.IndexOf(pcl, new Vector3(0.15f, 0.15f, 0.19f)); -// Debug.Log(isPosition); -// if(isPosition < 0){ -// pcl[n] = new Vector3(x, y, z) * 10; -// Debug.Log(pcl[n]); -// } -// x += 0.1f; -// y += 0.1f; -// z += 0.1f; -// } - -// MeshTopology topo = meshFilter.Mesh.GetTopology(0); -// Debug.Log(topo); //"triangles" ã¨å‡ºåŠ›ã•ã‚Œã‚‹ - } - - // Update is called once per frame - void Update() - { - // if(x % 100 == 0) - // { - Vector3 position = new Vector3(x,y,z); - ReusePrefab(position); - // } - x++; - } - - - void GeneratePrefab() - { - //最åˆã«Instantiateã§å…¨ã¦ç”Ÿæˆã—ã¦prefabArrayã«æ ¼ç´ã—ã¦ãŠã - for(int i = 0; i < 100; i++) - { - GameObject prefab = Instantiate(this.myPrefab); - //ã“ã®æ™‚生æˆã—ãŸprefabã¯ä¸€æ—¦éžè¡¨ç¤ºçŠ¶æ…‹ã«ã—ã¦ãŠã - prefab.SetActive(false); - prefabList.Add(prefab); - } - } - - - // Prefabã®ä½ç½®ã‚’指定ã—ã¦å‡ºç¾ã•ã›ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ - private void ReusePrefab(Vector3 position) - { - //prefabãŒè¶³ã‚Šãªã„ã‹åˆ¤å®šã™ã‚‹å¤‰æ•°(追加) - bool isPrefabEnough = false; - - //prefabList.Count回繰り返ã™ã‚ˆã†ã«ã™ã‚‹(変更) - for (int i = 0; i < prefabList.Count; i++) - { - if (prefabList[i].activeSelf == false) - { - prefabList[i].transform.position = position; - prefabList[i].SetActive(true); - //prefabãŒè¶³ã‚Šã¦ã„ã‚‹ã‹ã‚‰trueã«ã™ã‚‹(追加) - isPrefabEnough = true; - break; - } - } - - //ã‚‚ã—ã‚‚prefabãŒè¶³ã‚Šãšbreakã—ãªã‹ã£ãŸæ™‚ã®å‡¦ç†(追加) - if(isPrefabEnough == false) - { - GeneratePrefab(); - // prefabList[i].transform.position = position; - // prefabList[i].SetActive(true); - // //prefabãŒè¶³ã‚Šã¦ã„ã‚‹ã‹ã‚‰trueã«ã™ã‚‹(追加) - // isPrefabEnough = true; - } - } -} diff --git a/AR-ROS/Assets/Debug/Temporarily.cs.meta b/AR-ROS/Assets/Debug/Temporarily.cs.meta deleted file mode 100644 index 872910567..000000000 --- a/AR-ROS/Assets/Debug/Temporarily.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9939439b94d40472eaa62305aa44b4d7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core.meta b/AR-ROS/Assets/MRTK/Core.meta deleted file mode 100644 index 481502558..000000000 --- a/AR-ROS/Assets/MRTK/Core.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4d9628b89018421fa5adeaabed593632 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs.meta deleted file mode 100644 index 2fbddc59f..000000000 --- a/AR-ROS/Assets/MRTK/Core/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f2ac404f0dfd2cd459f7050d105ba5e5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes.meta b/AR-ROS/Assets/MRTK/Core/Attributes.meta deleted file mode 100644 index 2c094431a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3976310d79db4c879d874d7c9e89e0fb -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs deleted file mode 100644 index df2705971..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines a documentation link for a service. - /// Used primarily by service inspector facades. - /// - [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] - [Obsolete("Use HelpURLAttribute from Unity instead")] - public class DocLinkAttribute : Attribute - { - public DocLinkAttribute(string url) { URL = url; } - - public string URL { get; private set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs.meta deleted file mode 100644 index deaab76bc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/DocLinkAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d68183ede17f6b74ca38173e4b40aff3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs deleted file mode 100644 index 332beb8ab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// An attribute that allows a particular field to be rendered as multi-selectable - /// set of flags. - /// - /// - /// From https://answers.unity.com/questions/486694/default-editor-enum-as-flags-.html - /// - [AttributeUsage(AttributeTargets.Field)] - public sealed class EnumFlagsAttribute : PropertyAttribute - { - public EnumFlagsAttribute() { } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs.meta deleted file mode 100644 index fc440bb5e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/EnumFlagsAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8406c3890cd44f8bb71fdf288e018fd2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs deleted file mode 100644 index 36c264c2d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// A PropertyAttribute for showing a warning box that the tagged implementation is experimental. - /// - [AttributeUsage(AttributeTargets.Field, Inherited = true)] - public class ExperimentalAttribute : PropertyAttribute - { - /// - /// The text to display in the warning box. - /// - public string Text; - - private const string defaultText = "This is an experimental feature.\n" + - "Parts of the MRTK appear to have a lot of value even if the details " + - "haven’t fully been fleshed out. For these types of features, we want " + - "the community to see them and get value out of them early. Because " + - "they are early in the cycle, we label them as experimental to indicate " + - "that they are still evolving, and subject to change over time."; - - /// - /// Constructor. - /// - /// The experimental text to display in the warning box. - public ExperimentalAttribute(string experimentalText = defaultText) - { - Text = experimentalText; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs.meta deleted file mode 100644 index 3f910662c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ExperimentalAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 21560d9bd9bdf4c41a9ad9c366b81b1c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs deleted file mode 100644 index c2b855415..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -#if WINDOWS_UWP && !ENABLE_IL2CPP -using Microsoft.MixedReality.Toolkit; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Constraint that allows selection of classes that extend a specific class when - /// selecting a with the Unity inspector. - /// - public sealed class ExtendsAttribute : SystemTypeAttribute - { - /// - /// Gets the type of class that selectable classes must derive from. - /// - public Type BaseType { get; private set; } - - /// - /// Initializes a new instance of the class. - /// - /// Type of class that selectable classes must derive from. - /// Gets or sets grouping of selectable classes. Defaults to unless explicitly specified. - public ExtendsAttribute(Type baseType, TypeGrouping grouping) : base(baseType, grouping) - { - BaseType = baseType; - } - - /// - public override bool IsConstraintSatisfied(Type type) - { - return base.IsConstraintSatisfied(type) && - BaseType.IsAssignableFrom(type) && - type != BaseType; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs.meta deleted file mode 100644 index 60480856a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ExtendsAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e78caa572e154a2b8532d8cb9f0d339c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs deleted file mode 100644 index a95dcf858..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// A PropertyAttribute for showing a collapsible Help section. - /// - [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)] - public class HelpAttribute : PropertyAttribute - { - /// - /// The help text - /// - public string Text; - - /// - /// The help header foldout text - /// - /// - /// If Collapsible is false, then this header text will not be shown. - /// - public string Header; - - /// - /// If true, this will be a collapsible help section. Defaults to true. - /// - public bool Collapsible; - - /// - /// Constructor - /// - /// The help text to display - /// The help header foldout text - /// If true, this help drawer will be collapsible - public HelpAttribute(string helpText, string helpHeader = "Help", bool collapsible = true) - { - Text = helpText; - Header = helpHeader; - Collapsible = collapsible; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs.meta deleted file mode 100644 index afe64fce7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/HelpAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2f5319af93ddc2143b74d7d7f0b08830 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs deleted file mode 100644 index a195b8052..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -#if WINDOWS_UWP && !ENABLE_IL2CPP -using Microsoft.MixedReality.Toolkit; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Constraint that allows selection of classes that implement a specific interface - /// when selecting a with the Unity inspector. - /// - public sealed class ImplementsAttribute : SystemTypeAttribute - { - /// - /// Gets the type of interface that selectable classes must implement. - /// - public Type InterfaceType { get; private set; } - - /// - /// Initializes a new instance of the class. - /// - /// Type of interface that selectable classes must implement. - /// Gets or sets grouping of selectable classes. Defaults to unless explicitly specified. - public ImplementsAttribute(Type interfaceType, TypeGrouping grouping) : base(interfaceType, grouping) - { - InterfaceType = interfaceType; - } - - /// - public override bool IsConstraintSatisfied(Type type) - { - if (base.IsConstraintSatisfied(type)) - { - var interfaces = type.GetInterfaces(); - for (var i = 0; i < interfaces.Length; i++) - { - if (interfaces[i] == InterfaceType) - { - return true; - } - } - } - - return false; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs.meta deleted file mode 100644 index cc0f944b9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ImplementsAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8fcf9f0ee6ff42d98ad11a39aa40693f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs deleted file mode 100644 index 9f572455c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Linq; - -#if WINDOWS_UWP && !ENABLE_IL2CPP -using System.Reflection; -using Microsoft.MixedReality.Toolkit; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Attach to a controller device class to make it show up in the controller mapping profile. - /// - [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] - public class MixedRealityControllerAttribute : Attribute - { - /// - /// The SupportedControllerType to which the controller device belongs to. - /// - public SupportedControllerType SupportedControllerType { get; } - - /// - /// List of handedness values supported by the respective controller. - /// - public Handedness[] SupportedHandedness { get; } - - /// - /// Path to image file used when displaying an icon in the UI. - /// - public string TexturePath { get; } - - /// - /// Additional flags for configuring controller capabilities. - /// - public MixedRealityControllerConfigurationFlags Flags { get; } - - /// - /// - /// - public MixedRealityControllerAttribute( - SupportedControllerType supportedControllerType, - Handedness[] supportedHandedness, - string texturePath = "", - MixedRealityControllerConfigurationFlags flags = 0) - { - SupportedControllerType = supportedControllerType; - SupportedHandedness = supportedHandedness; - TexturePath = texturePath; - Flags = flags; - } - - /// - /// Convenience function for retrieving the attribute given a certain class type. - /// - public static MixedRealityControllerAttribute Find(Type type) - { - return type.GetCustomAttributes(typeof(MixedRealityControllerAttribute), true).FirstOrDefault() as MixedRealityControllerAttribute; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs.meta deleted file mode 100644 index 976511ba8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityControllerAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 68bd9743c3da6de4fb0640d1b9db8f35 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs deleted file mode 100644 index 547e23e1f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attribute that defines the properties of a Mixed Reality Toolkit data provider. - /// - [AttributeUsage(System.AttributeTargets.Class, AllowMultiple = false)] - public class MixedRealityDataProviderAttribute : MixedRealityExtensionServiceAttribute - { - /// - /// The interface type of the IMixedRealityService for which the data provider is supported. - /// - public Type ServiceInterfaceType { get; } - - public MixedRealityDataProviderAttribute( - Type serviceInterfaceType, - SupportedPlatforms runtimePlatforms, - string name = "", - string profilePath = "", - string packageFolder = "MixedRealityToolkit", - bool requiresProfile = false) : base(runtimePlatforms, name, profilePath, packageFolder, requiresProfile) - { - ServiceInterfaceType = serviceInterfaceType; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs.meta deleted file mode 100644 index a464285a5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityDataProviderAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f6afe3f00c06b8242a915125257240fc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs deleted file mode 100644 index d634d7831..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Linq; -using UnityEngine; - -#if UNITY_EDITOR -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -#endif - -#if WINDOWS_UWP && !ENABLE_IL2CPP -using Microsoft.MixedReality.Toolkit; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attribute that defines the properties of a Mixed Reality Toolkit extension service. - /// - [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] - public class MixedRealityExtensionServiceAttribute : Attribute - { - /// - /// The friendly name for this service. - /// - public virtual string Name { get; } - - /// - /// The runtime platform(s) to run this service. - /// - public virtual SupportedPlatforms RuntimePlatforms { get; } - - /// - /// Is a profile explicitly required? - /// - public virtual bool RequiresProfile { get; } - - /// - /// The file path to the default profile asset relative to the package folder. - /// - public virtual string DefaultProfilePath { get; } - - /// - /// The package where the default profile asset resides. - /// - public virtual string PackageFolder { get; } - - /// - /// The default profile. - /// - public virtual BaseMixedRealityProfile DefaultProfile - { - get - { -#if UNITY_EDITOR - MixedRealityToolkitModuleType moduleType = MixedRealityToolkitFiles.GetModuleFromPackageFolder(PackageFolder); - - if (moduleType != MixedRealityToolkitModuleType.None) - { - string folder = MixedRealityToolkitFiles.MapModulePath(moduleType); - if (!string.IsNullOrWhiteSpace(folder)) - { - return AssetDatabase.LoadAssetAtPath(System.IO.Path.Combine(folder, DefaultProfilePath)); - } - } - else - { - string folder; - if (EditorProjectUtilities.FindRelativeDirectory(PackageFolder, out folder)) - { - return AssetDatabase.LoadAssetAtPath(System.IO.Path.Combine(folder, DefaultProfilePath)); - } - } - - // If we get here, there was an issue finding the profile. - Debug.LogError("Unable to find or load the profile."); -#endif - return null; - } - } - - /// - /// Constructor - /// - /// The platforms on which the extension service is supported. - /// The relative path to the default profile asset. - /// The package folder to which the path is relative. - public MixedRealityExtensionServiceAttribute( - SupportedPlatforms runtimePlatforms, - string name = "", - string defaultProfilePath = "", - string packageFolder = "MixedRealityToolkit", - bool requiresProfile = false) - { - RuntimePlatforms = runtimePlatforms; - Name = name; - DefaultProfilePath = defaultProfilePath; - PackageFolder = packageFolder; - RequiresProfile = requiresProfile; - } - -#if UNITY_EDITOR - /// - /// Convenience function for retrieving the attribute given a certain class type. - /// - /// - /// This function is only available in a UnityEditor context. - /// - public static MixedRealityExtensionServiceAttribute Find(Type type) - { - return type.GetCustomAttributes(typeof(MixedRealityExtensionServiceAttribute), true).FirstOrDefault() as MixedRealityExtensionServiceAttribute; - } -#endif // UNITY_EDITOR - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs.meta deleted file mode 100644 index eedbf6724..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityExtensionServiceAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9dc03bea6acf89949a69dd79afc411c8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs deleted file mode 100644 index c0c96cb8b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attach to a class implementing IMixedRealityServiceInspector to generate a facade inspector. - /// - [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] - public class MixedRealityServiceInspectorAttribute : Attribute - { - public MixedRealityServiceInspectorAttribute(Type serviceType) - { - if (!typeof(IMixedRealityService).IsAssignableFrom(serviceType)) - throw new Exception("Can't use this attribute with type " + serviceType + " - service must implement " + typeof(IMixedRealityService) + " interface."); - - ServiceType = serviceType; - } - - public Type ServiceType { get; private set; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs.meta deleted file mode 100644 index da281be59..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceInspectorAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e159fc0613d5db9479be3c2d92f449b9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs deleted file mode 100644 index 18752f87c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attribute that defines which service a profile is meant to be consumed by. - /// Only applies to profiles that are consumed by types implementing IMixedRealityService. - /// A service must implement all required types and no excluded types to be considered compatible with the profile. - /// - [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] - public class MixedRealityServiceProfileAttribute : Attribute - { - public MixedRealityServiceProfileAttribute(Type requiredType, Type excludedType = null) - { - RequiredTypes = new Type[] { requiredType }; - ExcludedTypes = excludedType != null ? new Type[] { excludedType } : new Type[0]; - } - - public MixedRealityServiceProfileAttribute(Type[] requiredTypes, Type[] excludedTypes = null) - { - RequiredTypes = requiredTypes; - ExcludedTypes = excludedTypes != null ? excludedTypes : new Type[0]; - } - - public Type[] RequiredTypes { get; private set; } - public Type[] ExcludedTypes { get; private set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs.meta deleted file mode 100644 index f07ca7b96..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/MixedRealityServiceProfileAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 87d3cb16f49f8b14397e2c89b430f774 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs deleted file mode 100644 index 2702cf37e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// Attribute used to make an field render a dropdown generated from the current layers defined in the Tag Manager. - /// - [AttributeUsage(AttributeTargets.Field)] - public sealed class PhysicsLayerAttribute : PropertyAttribute - { - public PhysicsLayerAttribute() { } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs.meta deleted file mode 100644 index 5bc971b19..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/PhysicsLayerAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a46f813550c3448383a069c6988d64da -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs deleted file mode 100644 index 33027090d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attribute used to ensure that a GameObject inspector slot only accepts prefabs. - /// - [AttributeUsage(AttributeTargets.Field)] - public sealed class PrefabAttribute : PropertyAttribute { } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs.meta deleted file mode 100644 index 7ef74ac5a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/PrefabAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8f0704a2ddbf46c7ac01b75061f8da6c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs deleted file mode 100644 index f6fd8d018..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - public class ReadOnlyAttribute : PropertyAttribute { } - public class BeginReadOnlyGroupAttribute : PropertyAttribute { } - public class EndReadOnlyGroupAttribute : PropertyAttribute { } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs.meta deleted file mode 100644 index dc613aa58..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ReadOnlyAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 700a45d7f9cad034aa2c70acbe010829 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs deleted file mode 100644 index 22ac2788d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attribute to mark up an int field to be drawn using the - /// ScenePickPropertyDrawer - /// This allows the UI to display a dropdown instead of a - /// numeric entry field. - /// - [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] - public class ScenePickAttribute : PropertyAttribute - { - // Nothing to see Here, This only acts as a marker to help the editor. - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs.meta deleted file mode 100644 index ada1d32ee..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/ScenePickAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aada00f885183904f84f3e17ea5336a5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs deleted file mode 100644 index 4adef3646..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -#if WINDOWS_UWP && !ENABLE_IL2CPP -using Microsoft.MixedReality.Toolkit; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Base class for class selection constraints that can be applied when selecting - /// a with the Unity inspector. - /// - public abstract class SystemTypeAttribute : PropertyAttribute - { - /// - /// Gets or sets grouping of selectable classes. Defaults to unless explicitly specified. - /// - public TypeGrouping Grouping { get; protected set; } - - /// - /// Gets or sets whether abstract classes can be selected from drop-down. - /// Defaults to a value of false unless explicitly specified. - /// - public bool AllowAbstract { get; protected set; } = false; - - /// - /// - /// - /// Initializes a new instance of the class. - /// Gets or sets grouping of selectable classes. Defaults to unless explicitly specified. - protected SystemTypeAttribute(Type type, TypeGrouping grouping = TypeGrouping.ByNamespaceFlat) - { -#if WINDOWS_UWP && !ENABLE_IL2CPP - bool isValid = type.IsClass() || type.IsInterface() || type.IsValueType() && !type.IsEnum(); -#else - bool isValid = type.IsClass || type.IsInterface || type.IsValueType && !type.IsEnum; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP - Debug.Assert(isValid, $"Invalid Type {type} in attribute."); - Grouping = grouping; - } - - /// - /// Determines whether the specified satisfies filter constraint. - /// - /// Type to test. - /// - /// A value indicating if the type specified by - /// satisfies this constraint and should thus be selectable. - /// - public virtual bool IsConstraintSatisfied(Type type) - { -#if WINDOWS_UWP && !ENABLE_IL2CPP - return AllowAbstract || !type.IsAbstract(); -#else - return AllowAbstract || !type.IsAbstract; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs.meta deleted file mode 100644 index 6ab4e34a9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/SystemTypeAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d78dba64176b4c168d5a5f3ff8865b97 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs deleted file mode 100644 index 9b76351db..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// A PropertyAttribute for Unity tags (a string field). - /// - [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] - public class TagPropertyAttribute : PropertyAttribute - { - // Do nothing - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs.meta deleted file mode 100644 index 6ed6b4ed2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/TagPropertyAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 27713c34a4c46f54da03155ceb0bdd6e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs b/AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs deleted file mode 100644 index 9a8cae8e2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attribute used to make a float or int variable in a script be restricted to a specific range. - /// - [AttributeUsage(AttributeTargets.Field)] - public sealed class Vector3RangeAttribute : PropertyAttribute - { - /// - /// Minimum value. - /// - public readonly float Min; - - /// - /// Maximum value. - /// - public readonly float Max; - - /// - /// Attribute used to make a float or int variable in a script be restricted to a specific range. - /// - /// The minimum allowed value. - /// The maximum allowed value. - public Vector3RangeAttribute(float min, float max) - { - Min = min; - Max = max; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs.meta deleted file mode 100644 index 1b34f4a8f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Attributes/Vector3RangeAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cbd8fa9213b04d238d65cc7be8d4b032 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions.meta b/AR-ROS/Assets/MRTK/Core/Definitions.meta deleted file mode 100644 index fb17e9e94..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 15ee9eb60ada4de58f7afe5d1bec0d15 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs deleted file mode 100644 index d5ed2750d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Base abstract class for all Mixed Reality profile configurations. - /// Extends ScriptableObject and used as a property container to initialize MRTK services. - /// - [Serializable] - public abstract class BaseMixedRealityProfile : ScriptableObject - { - [SerializeField] - [HideInInspector] - private bool isCustomProfile = true; - - internal bool IsCustomProfile => isCustomProfile; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs.meta deleted file mode 100644 index 730dd4c9f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BaseMixedRealityProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7bf26942d2da73b49a9ae41a021e6ea6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem.meta b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem.meta deleted file mode 100644 index 1a5e0dfc6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7316ed9148a54d82a67abfb3b08eea45 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs deleted file mode 100644 index 8f9b59929..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - /// - /// Defines different types of boundaries that can be requested. - /// - public enum BoundaryType - { - /// - /// A rectangular area calculated as the largest rectangle within the tracked area, good for placing content near the user. - /// - PlayArea, - /// - /// The full tracked boundary, typically manually drawn by a user while setting up their device. - /// - TrackedArea - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs.meta deleted file mode 100644 index 25dcd601a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/BoundaryType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 14f00db1440205648911737e3720c79f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs deleted file mode 100644 index 685ea8d8e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - /// - /// The Edge structure defines the points of a line segment that are used to - /// construct a polygonal boundary. - /// - public struct Edge - { - /// - /// The first point of the edge line segment. - /// - public readonly Vector2 PointA; - - /// - /// The second point of the edge line segment. - /// - public readonly Vector2 PointB; - - /// - /// Initializes the Edge structure. - /// - /// The first point of the line segment. - /// The second point of the line segment. - public Edge(Vector2 pointA, Vector2 pointB) - { - PointA = pointA; - PointB = pointB; - } - - /// - /// Initializes the Edge structure. - /// - /// The first point of the line segment. - /// The second point of the line segment. - public Edge(Vector3 pointA, Vector3 pointB) : - // Use the X and Z parameters as our edges are height agnostic. - this(new Vector2(pointA.x, pointA.z), new Vector2(pointB.x, pointB.z)) - { } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs.meta deleted file mode 100644 index e5e0d09d6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/Edge.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6181034d7a2744628b5f013c1a37ee51 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs deleted file mode 100644 index 36f46e7b9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs +++ /dev/null @@ -1,564 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - /// - /// The InscribedRectangle class defines the largest rectangle within an - /// arbitrary shape. - /// - public class InscribedRectangle - { - /// - /// Total number of starting points randomly generated within the boundary. - /// - private const int randomPointCount = 30; - - /// - /// The total amount of height, in meters, we want to gain with each binary search - /// change before we decide that it's good enough. - /// - private const float minimumHeightGain = 0.01f; - - /// - /// Angles to use for fitting the rectangle within the boundary. - /// - private static readonly float[] fitAngles = { 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165 }; - - /// - /// Aspect ratios used when fitting rectangles within the boundary. - /// - private static float[] aspectRatios = { - 1.0f, 1.5f, 2.0f, 2.5f, 3.0f, 3.5f, 4.0f, 4.5f, - 5.0f, 5.5f, 6, 6.5f, 7, 7.5f, 8.0f, 8.5f, 9.0f, - 9.5f, 10.0f, 10.5f, 11.0f, 11.5f, 12.0f, 12.5f, - 13.0f, 13.5f, 14.0f, 14.5f, 15.0f}; - - /// - /// The center point of the inscribed rectangle. - /// - public Vector2 Center { get; private set; } = EdgeUtilities.InvalidPoint; - - /// - /// The width of the inscribed rectangle. - /// - public float Width { get; private set; } = 0f; - - /// - /// The height of the inscribed rectangle. - /// - public float Height { get; private set; } = 0f; - - /// - /// The rotation angle, in degrees, of the inscribed rectangle. - /// - public float Angle { get; private set; } = 0f; - - /// - /// Is the described rectangle valid? - /// - /// - /// A rectangle is considered valid if its center point is valid. - /// - public bool IsValid => EdgeUtilities.IsValidPoint(Center); - - /// - /// Finds a large inscribed rectangle. Tries to be maximal but this is - /// best effort. The algorithm used was inspired by the blog post - /// https://d3plus.org/blog/behind-the-scenes/2014/07/08/largest-rect/ - /// Random points within the polygon are chosen, and then 2 lines are - /// drawn through those points. The midpoints of those lines are - /// used as the center of various rectangles, using a binary search to - /// vary the size, until the largest fit-able rectangle is found. - /// This is then repeated for predefined angles (0-180 in steps of 15) - /// and aspect ratios (1 to 15 in steps of 0.5). - /// - /// The boundary geometry. - /// Random number generator seed. - /// - /// For the most reproducible results, use the same randomSeed value - /// each time this method is called. - /// - public InscribedRectangle(Edge[] geometryEdges, int randomSeed) - { - if (geometryEdges == null || geometryEdges.Length == 0) - { - Debug.LogError("InscribedRectangle requires an array of Edges. You passed in a null or empty array."); - return; - } - - // Clear previous rectangle - Center = EdgeUtilities.InvalidPoint; - Width = 0; - Height = 0; - Angle = 0; - - float minX = EdgeUtilities.maxWidth; - float minY = EdgeUtilities.maxWidth; - float maxX = -EdgeUtilities.maxWidth; - float maxY = -EdgeUtilities.maxWidth; - - // Find min x, min y, max x, max y - for (int i = 0; i < geometryEdges.Length; i++) - { - Edge edge = geometryEdges[i]; - - if ((edge.PointA.x < minX) || (edge.PointB.x < minX)) - { - minX = Mathf.Min(edge.PointA.x, edge.PointB.x); - } - - if ((edge.PointA.y < minY) || (edge.PointB.y < minY)) - { - minY = Mathf.Min(edge.PointA.y, edge.PointB.y); - } - - if ((edge.PointA.x > maxX) || (edge.PointB.x > maxX)) - { - maxX = Mathf.Max(edge.PointA.x, edge.PointB.x); - } - - if ((edge.PointA.y > maxY) || (edge.PointB.y > maxY)) - { - maxY = Mathf.Max(edge.PointA.y, edge.PointB.y); - } - - } - - // Generate random points until we have randomPointCount starting points - Vector2[] startingPoints = new Vector2[randomPointCount]; - { - System.Random random = new System.Random(randomSeed); - for (int i = 0; i < startingPoints.Length; i++) - { - Vector2 candidatePoint; - - do - { - candidatePoint.x = ((float)random.NextDouble() * (maxX - minX)) + minX; - candidatePoint.y = ((float)random.NextDouble() * (maxY - minY)) + minY; - } - while (!EdgeUtilities.IsInsideBoundary(geometryEdges, candidatePoint)); - - startingPoints[i] = candidatePoint; - } - } - - for (int angleIndex = 0; angleIndex < fitAngles.Length; angleIndex++) - { - for (int pointIndex = 0; pointIndex < startingPoints.Length; pointIndex++) - { - Vector2 topCollisionPoint; - Vector2 bottomCollisionPoint; - Vector2 leftCollisionPoint; - Vector2 rightCollisionPoint; - - float angleRadians = MathUtilities.DegreesToRadians(fitAngles[angleIndex]); - - // Find the collision point of a cross through the given point at the given angle. - // Note, we are ignoring the return value as we are checking each point's validity - // individually. - FindSurroundingCollisionPoints( - geometryEdges, - startingPoints[pointIndex], - angleRadians, - out topCollisionPoint, - out bottomCollisionPoint, - out leftCollisionPoint, - out rightCollisionPoint); - - float newWidth; - float newHeight; - - if (EdgeUtilities.IsValidPoint(topCollisionPoint) && EdgeUtilities.IsValidPoint(bottomCollisionPoint)) - { - float aX = topCollisionPoint.x; - float aY = topCollisionPoint.y; - float bX = bottomCollisionPoint.x; - float bY = bottomCollisionPoint.y; - - // Calculate the midpoint between the top and bottom collision points. - Vector2 verticalMidpoint = new Vector2((aX + bX) * 0.5f, (aY + bY) * 0.5f); - if (TryFixMaximumRectangle( - geometryEdges, - verticalMidpoint, - angleRadians, - Width * Height, - out newWidth, - out newHeight)) - { - Center = verticalMidpoint; - Angle = fitAngles[angleIndex]; - Width = newWidth; - Height = newHeight; - } - } - - if (EdgeUtilities.IsValidPoint(leftCollisionPoint) && EdgeUtilities.IsValidPoint(rightCollisionPoint)) - { - float aX = leftCollisionPoint.x; - float aY = leftCollisionPoint.y; - float bX = rightCollisionPoint.x; - float bY = rightCollisionPoint.y; - - // Calculate the midpoint between the left and right collision points. - Vector2 horizontalMidpoint = new Vector2((aX + bX) * 0.5f, (aY + bY) * 0.5f); - if (TryFixMaximumRectangle( - geometryEdges, - horizontalMidpoint, - angleRadians, - Width * Height, - out newWidth, - out newHeight)) - { - Center = horizontalMidpoint; - Angle = fitAngles[angleIndex]; - Width = newWidth; - Height = newHeight; - } - } - } - } - } - - /// - /// Find points at which there are collisions with the geometry around a given point. - /// - /// The boundary geometry. - /// The point around which collisions will be identified. - /// The angle, in radians, at which the collision points will be oriented. - /// Receives the coordinates of the upper collision point. - /// Receives the coordinates of the lower collision point. - /// Receives the coordinates of the left collision point. - /// Receives the coordinates of the right collision point. - /// - /// True if all of the required collision points are located, false otherwise. - /// If a point is unable to be found, the appropriate out parameter will be set to . - /// - private bool FindSurroundingCollisionPoints( - Edge[] geometryEdges, - Vector2 point, - float angleRadians, - out Vector2 topCollisionPoint, - out Vector2 bottomCollisionPoint, - out Vector2 leftCollisionPoint, - out Vector2 rightCollisionPoint) - { - // Initialize out parameters. - topCollisionPoint = EdgeUtilities.InvalidPoint; - bottomCollisionPoint = EdgeUtilities.InvalidPoint; - leftCollisionPoint = EdgeUtilities.InvalidPoint; - rightCollisionPoint = EdgeUtilities.InvalidPoint; - - // Check to see if the point is inside the geometry. - if (!EdgeUtilities.IsInsideBoundary(geometryEdges, point)) - { - return false; - } - - // Define values that are outside of the maximum boundary size. - float largeValue = EdgeUtilities.maxWidth; - float smallValue = -largeValue; - - // Find the top and bottom collision points by creating a large line segment that goes through the point to MAX and MIN values on Y - Vector2 topEndpoint = new Vector2(point.x, largeValue); - Vector2 bottomEndpoint = new Vector2(point.x, smallValue); - topEndpoint = RotatePoint(topEndpoint, point, angleRadians); - bottomEndpoint = RotatePoint(bottomEndpoint, point, angleRadians); - Edge verticalLine = new Edge(topEndpoint, bottomEndpoint); - - // Find the left and right collision points by creating a large line segment that goes through the point to MAX and Min values on X - Vector2 rightEndpoint = new Vector2(largeValue, point.y); - Vector2 leftEndpoint = new Vector2(smallValue, point.y); - rightEndpoint = RotatePoint(rightEndpoint, point, angleRadians); - leftEndpoint = RotatePoint(leftEndpoint, point, angleRadians); - Edge horizontalLine = new Edge(rightEndpoint, leftEndpoint); - - for (int i = 0; i < geometryEdges.Length; i++) - { - // Look for a vertical collision - Vector2 verticalIntersectionPoint = EdgeUtilities.GetIntersectionPoint(geometryEdges[i], verticalLine); - if (EdgeUtilities.IsValidPoint(verticalIntersectionPoint)) - { - // Is the intersection above or below the point? - if (RotatePoint(verticalIntersectionPoint, point, -angleRadians).y > point.y) - { - // Update the top collision point - if (!EdgeUtilities.IsValidPoint(topCollisionPoint) || - (Vector2.SqrMagnitude(point - verticalIntersectionPoint) < Vector2.SqrMagnitude(point - topCollisionPoint))) - { - topCollisionPoint = verticalIntersectionPoint; - } - } - else - { - // Update the bottom collision point - if (!EdgeUtilities.IsValidPoint(bottomCollisionPoint) || - (Vector2.SqrMagnitude(point - verticalIntersectionPoint) < Vector2.SqrMagnitude(point - bottomCollisionPoint))) - { - bottomCollisionPoint = verticalIntersectionPoint; - } - } - } - - // Look for a horizontal collision - Vector2 horizontalIntersection = EdgeUtilities.GetIntersectionPoint(geometryEdges[i], horizontalLine); - if (EdgeUtilities.IsValidPoint(horizontalIntersection)) - { - // Is this intersection to the left or the right of the point? - if (RotatePoint(horizontalIntersection, point, -angleRadians).x < point.x) - { - // Update the left collision point - if (!EdgeUtilities.IsValidPoint(leftCollisionPoint) || - (Vector2.SqrMagnitude(point - horizontalIntersection) < Vector2.SqrMagnitude(point - leftCollisionPoint))) - { - leftCollisionPoint = horizontalIntersection; - } - } - else - { - // Update the right collision point - if (!EdgeUtilities.IsValidPoint(rightCollisionPoint) || - (Vector2.SqrMagnitude(point - horizontalIntersection) < Vector2.SqrMagnitude(point - rightCollisionPoint))) - { - rightCollisionPoint = horizontalIntersection; - } - } - } - } - - // Each corner of the rectangle must intersect with the geometry. - if (!EdgeUtilities.IsValidPoint(topCollisionPoint) || - !EdgeUtilities.IsValidPoint(bottomCollisionPoint) || - !EdgeUtilities.IsValidPoint(leftCollisionPoint) || - !EdgeUtilities.IsValidPoint(rightCollisionPoint)) - { - return false; - } - - return true; - } - - /// - /// Determine of the provided point lies within the defined rectangle. - /// - /// The point to check - /// - /// True if the point is within the rectangle's bounds, false otherwise. - /// - /// The rectangle is not valid. - public bool IsInsideBoundary(Vector2 point) - { - if (!IsValid) - { - throw new InvalidOperationException("A point cannot be within an invalid rectangle."); - } - - point -= Center; - point = RotatePoint(point, Vector2.zero, MathUtilities.DegreesToRadians(-Angle)); - - bool inWidth = Mathf.Abs(point.x) <= (Width * 0.5f); - bool inHeight = Mathf.Abs(point.y) <= (Height * 0.5f); - - return (inWidth && inHeight); - } - - /// - /// Rotate a two dimensional point about another point by the specified angle. - /// - /// The point to be rotated. - /// The point about which the rotation is to occur. - /// The angle for the rotation, in radians - /// - /// The coordinates of the rotated point. - /// - private Vector2 RotatePoint(Vector2 point, Vector2 origin, float angleRadians) - { - if (angleRadians.Equals(0f)) - { - return point; - } - - Vector2 rotated = point; - - // Translate to origin of rotation - rotated.x -= origin.x; - rotated.y -= origin.y; - - // Rotate the point - float sin = Mathf.Sin(angleRadians); - float cos = Mathf.Cos(angleRadians); - float x = rotated.x * cos - rotated.y * sin; - float y = rotated.x * sin + rotated.y * cos; - - // Translate back and return - rotated.x = x + origin.x; - rotated.y = y + origin.y; - - return rotated; - } - - /// - /// Check to see if a rectangle centered at the specified point and oriented at - /// the specified angle will fit within the geometry. - /// - /// The boundary geometry. - /// The center point of the rectangle. - /// The orientation, in radians, of the rectangle. - /// The width of the rectangle. - /// The height of the rectangle. - private bool CheckRectangleFit( - Edge[] geometryEdges, - Vector2 centerPoint, - float angleRadians, - float width, - float height) - { - float halfWidth = width * 0.5f; - float halfHeight = height * 0.5f; - - // Calculate the rectangle corners. - Vector2 topLeft = new Vector2(centerPoint.x - halfWidth, centerPoint.y + halfHeight); - Vector2 topRight = new Vector2(centerPoint.x + halfWidth, centerPoint.y + halfHeight); - Vector2 bottomLeft = new Vector2(centerPoint.x - halfWidth, centerPoint.y - halfHeight); - Vector2 bottomRight = new Vector2(centerPoint.x + halfWidth, centerPoint.y - halfHeight); - - // Rotate the rectangle. - topLeft = RotatePoint(topLeft, centerPoint, angleRadians); - topRight = RotatePoint(topRight, centerPoint, angleRadians); - bottomLeft = RotatePoint(bottomLeft, centerPoint, angleRadians); - bottomRight = RotatePoint(bottomRight, centerPoint, angleRadians); - - // Get the rectangle edges. - Edge topEdge = new Edge(topLeft, topRight); - Edge rightEdge = new Edge(topRight, bottomRight); - Edge bottomEdge = new Edge(bottomLeft, bottomRight); - Edge leftEdge = new Edge(topLeft, bottomLeft); - - // Check for collisions with the boundary geometry. If any of our edges collide, - // the rectangle will not fit within the playspace. - for (int i = 0; i < geometryEdges.Length; i++) - { - if (EdgeUtilities.IsValidPoint(EdgeUtilities.GetIntersectionPoint(geometryEdges[i], topEdge)) || - EdgeUtilities.IsValidPoint(EdgeUtilities.GetIntersectionPoint(geometryEdges[i], rightEdge)) || - EdgeUtilities.IsValidPoint(EdgeUtilities.GetIntersectionPoint(geometryEdges[i], bottomEdge)) || - EdgeUtilities.IsValidPoint(EdgeUtilities.GetIntersectionPoint(geometryEdges[i], leftEdge))) - { - return false; - } - } - - // No collisions found with the rectangle. Success! - return true; - } - - /// - /// Attempt to fit the largest rectangle possible within the geometry. - /// - /// The boundary geometry. - /// The center point for the rectangle. - /// The rotation, in radians, of the rectangle. - /// The smallest allowed area. - /// Returns the width of the rectangle. - /// Returns the height of the rectangle. - /// - /// True if a rectangle with an area greater than or equal to minArea was able to be fit - /// within the geometry at centerPoint. - /// - private bool TryFixMaximumRectangle( - Edge[] geometryEdges, - Vector2 centerPoint, - float angleRadians, - float minArea, - out float width, - out float height) - { - width = 0.0f; - height = 0.0f; - - Vector2 topCollisionPoint; - Vector2 bottomCollisionPoint; - Vector2 leftCollisionPoint; - Vector2 rightCollisionPoint; - - // Find the collision points with the geometry - if (!FindSurroundingCollisionPoints(geometryEdges, centerPoint, angleRadians, - out topCollisionPoint, out bottomCollisionPoint, out leftCollisionPoint, out rightCollisionPoint)) - { - return false; - } - - // Start by calculating max width and height by ray-casting a cross from the point at the given angle - // and taking the shortest leg of each ray. Width is the longest. - float verticalMinDistanceToEdge = Mathf.Min( - Vector2.Distance(centerPoint, topCollisionPoint), - Vector2.Distance(centerPoint, bottomCollisionPoint)); - - float horizontalMinDistanceToEdge = Mathf.Min( - Vector2.Distance(centerPoint, leftCollisionPoint), - Vector2.Distance(centerPoint, rightCollisionPoint)); - - // Width is the largest of the possible dimensions - float maxWidth = Math.Max(verticalMinDistanceToEdge, horizontalMinDistanceToEdge) * 2.0f; - float maxHeight = Math.Min(verticalMinDistanceToEdge, horizontalMinDistanceToEdge) * 2.0f; - - float aspectRatio = 0.0f; - - // For each aspect ratio we do a binary search to find the maximum rectangle that fits, - // though once we start increasing our area by minimumHeightGain we call it good enough. - for (int i = 0; i < aspectRatios.Length; i++) - { - // The height is limited by the width. If a height would make our width exceed maxWidth, it can't be used - float searchHeightUpperBound = Mathf.Max(maxHeight, maxWidth / aspectRatios[i]); - - // Set to the min height that will out perform our previous area at the given aspect ratio. This is 0 the first time. - // Derived from biggestAreaSoFar=height*(height*aspectRatio) - float searchHeightLowerBound = Mathf.Sqrt(Mathf.Max((width * height), minArea) / aspectRatios[i]); - - // If the lowest value needed to outperform the previous best is greater than our max, - // this aspect ratio can't outperform what we've already calculated. - if ((searchHeightLowerBound > searchHeightUpperBound) || - (searchHeightLowerBound * aspectRatios[i] > maxWidth)) - { - continue; - } - - float currentTestingHeight = Mathf.Max(searchHeightLowerBound, maxHeight * 0.5f); - - - // Perform the binary search until continuing to search will not give us a significant win. - do - { - if (CheckRectangleFit(geometryEdges, - centerPoint, - angleRadians, - aspectRatios[i] * currentTestingHeight, - currentTestingHeight)) - { - // Binary search up-ward - // If the rectangle will fit, increase the lower bounds of our binary search - searchHeightLowerBound = currentTestingHeight; - - width = currentTestingHeight * aspectRatios[i]; - height = currentTestingHeight; - aspectRatio = aspectRatios[i]; - currentTestingHeight = (searchHeightUpperBound + currentTestingHeight) * 0.5f; - } - else - { - // If the rectangle won't fit, update our upper bound and lower our binary search - searchHeightUpperBound = currentTestingHeight; - currentTestingHeight = (currentTestingHeight + searchHeightLowerBound) * 0.5f; - } - } - while ((searchHeightUpperBound - searchHeightLowerBound) > minimumHeightGain); - } - - return (aspectRatio > 0.0f); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs.meta deleted file mode 100644 index dbd027044..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/InscribedRectangle.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3ec7fd504604466b90bb50609ed1b35f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs deleted file mode 100644 index 76baf2d2f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs +++ /dev/null @@ -1,201 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.Physics; - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - /// - /// Configuration profile settings for setting up boundary visualizations. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Boundary Visualization Profile", fileName = "MixedRealityBoundaryVisualizationProfile", order = (int)CreateProfileMenuItemIndices.BoundaryVisualization)] - [MixedRealityServiceProfile(typeof(IMixedRealityBoundarySystem))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Boundary/BoundarySystemGettingStarted.html")] - public class MixedRealityBoundaryVisualizationProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("The approximate height of the play space, in meters.")] - private float boundaryHeight = 3.0f; - - /// - /// The developer defined height of the boundary, in meters. - /// - /// - /// The BoundaryHeight property is used to create a three dimensional volume for the play space. - /// - public float BoundaryHeight => boundaryHeight; - - #region Floor settings - - [SerializeField] - [Tooltip("Should the floor be displayed in the scene?")] - private bool showFloor = true; - - /// - /// Should the boundary system display the floor? - /// - public bool ShowFloor => showFloor; - - // todo: consider allowing optional custom prefab - - [SerializeField] - [Tooltip("The material to use when displaying the floor.")] - private Material floorMaterial = null; - - /// - /// The material to use for the floor GameObject when created by the boundary system. - /// - public Material FloorMaterial => floorMaterial; - - [PhysicsLayer] - [SerializeField] - [Tooltip("The physics layer to assign to the generated floor.")] - private int floorPhysicsLayer = 0; - - /// - /// The physics layer to assign to the generated floor. - /// - public int FloorPhysicsLayer => floorPhysicsLayer; - - [SerializeField] - [Tooltip("The dimensions of the floor, in meters.")] - private Vector2 floorScale = new Vector2(10f, 10f); - - /// - /// The size at which to display the rectangular floor plane GameObject. - /// - public Vector2 FloorScale => floorScale; - - #endregion Floor settings - - #region Play area settings - - [SerializeField] - [Tooltip("Should the play area be displayed in the scene?")] - private bool showPlayArea = true; - - /// - /// Should the boundary system display the play area? - /// - public bool ShowPlayArea => showPlayArea; - - [SerializeField] - [Tooltip("The material to use when displaying the play area.")] - private Material playAreaMaterial = null; - - /// - /// The material to use for the rectangular play area GameObject. - /// - public Material PlayAreaMaterial => playAreaMaterial; - - [PhysicsLayer] - [SerializeField] - [Tooltip("The physics layer to assign to the generated play area.")] - private int playAreaPhysicsLayer = 2; - - /// - /// The physics layer to assign to the generated play area. - /// - public int PlayAreaPhysicsLayer => playAreaPhysicsLayer; - - #endregion Play area settings - - #region Tracked area settings - - [SerializeField] - [Tooltip("Should the tracked area be displayed in the scene?")] - private bool showTrackedArea = true; - - /// - /// Should the boundary system display the tracked area? - /// - public bool ShowTrackedArea => showTrackedArea; - - [SerializeField] - [Tooltip("The material to use when displaying the tracked area.")] - private Material trackedAreaMaterial = null; - - /// - /// The material to use for the boundary geometry GameObject. - /// - public Material TrackedAreaMaterial => trackedAreaMaterial; - - [PhysicsLayer] - [SerializeField] - [Tooltip("The physics layer to assign to the generated tracked area.")] - private int trackedAreaPhysicsLayer = 2; - - /// - /// The physics layer to assign to the generated tracked area. - /// - public int TrackedAreaPhysicsLayer => trackedAreaPhysicsLayer; - - #endregion Tracked area settings - - #region Boundary wall settings - - [SerializeField] - [Tooltip("Should the boundary walls be displayed in the scene?")] - private bool showBoundaryWalls = false; - - /// - /// Should the boundary system display the boundary geometry walls? - /// - public bool ShowBoundaryWalls => showBoundaryWalls; - - [SerializeField] - [Tooltip("The material to use when displaying the boundary walls.")] - private Material boundaryWallMaterial = null; - - /// - /// The material to use for displaying the boundary geometry walls. - /// - public Material BoundaryWallMaterial => boundaryWallMaterial; - - [PhysicsLayer] - [SerializeField] - [Tooltip("The physics layer to assign to the generated boundary walls.")] - private int boundaryWallsPhysicsLayer = 2; - - /// - /// The physics layer to assign to the generated boundary walls. - /// - public int BoundaryWallsPhysicsLayer => boundaryWallsPhysicsLayer; - - #endregion Boundary wall settings - - #region Boundary ceiling settings - - [SerializeField] - [Tooltip("Should the boundary ceiling be displayed in the scene?")] - private bool showBoundaryCeiling = false; - - /// - /// Should the boundary system display the boundary ceiling? - /// - public bool ShowBoundaryCeiling => showBoundaryCeiling; - - [SerializeField] - [Tooltip("The material to use when displaying the boundary ceiling.")] - private Material boundaryCeilingMaterial = null; - - /// - /// The material to use for displaying the boundary ceiling. - /// - public Material BoundaryCeilingMaterial => boundaryCeilingMaterial; - - [PhysicsLayer] - [SerializeField] - [Tooltip("The physics layer to assign to the generated boundary ceiling.")] - private int ceilingPhysicsLayer = 2; - - /// - /// The physics layer to assign to the generated boundary ceiling. - /// - public int CeilingPhysicsLayer => ceilingPhysicsLayer; - - #endregion Boundary ceiling settings - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs.meta deleted file mode 100644 index 3f33aa94f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/BoundarySystem/MixedRealityBoundaryVisualizationProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9fd6338e77774badb73a2b1320b41caf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem.meta b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem.meta deleted file mode 100644 index 2dba6f980..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 60807eb531085cf4c819c2179aa32336 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs deleted file mode 100644 index edabe2159..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.CameraSystem -{ - /// - /// Base class used to derive custom camera settings profiles. - /// - [Serializable] - public class BaseCameraSettingsProfile : BaseMixedRealityProfile - { - // This class is intentionally blank. It exists for future expansion of common functionality. - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs.meta deleted file mode 100644 index a47a32e7b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/BaseCameraSettingsProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5d76cd22dd005ac438d4c183c7b85a54 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs deleted file mode 100644 index 6f5d6123a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Copyright(c) 2019 Takahiro Miyaura -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.CameraSystem -{ - /// - /// The type of displays on which an application may run. - /// - public enum DisplayType - { - /// - /// The display is opaque. Devices on the digital reality (ex: VR) side of the Mixed Reality - /// spectrum generally have opaque displays. - /// - Opaque = 0, - - /// - /// The display is transparent. Devices on the physical reality (ex: Microsoft HoloLens) side - /// of the Mixed Reality spectrum generally have transparent displays. - /// - Transparent - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs.meta deleted file mode 100644 index 0dfb63143..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/CameraDisplayType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: eef635c67fbf2084bb6f1106e99ae1b3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs deleted file mode 100644 index ab3a91ee8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; -using UnityEngine.Serialization; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// This Scriptable Object tells you if your head mounted display (HMD) - /// is a transparent device or an occluded device. - /// Based on those values, you can customize your camera and quality settings. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Camera Profile", fileName = "MixedRealityCameraProfile", order = (int)CreateProfileMenuItemIndices.Camera)] - [MixedRealityServiceProfile(typeof(IMixedRealityCameraSystem))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/MixedRealityConfigurationGuide.html#camera")] - public class MixedRealityCameraProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("Configuration objects describing the registered settings providers.")] - private MixedRealityCameraSettingsConfiguration[] settingsConfigurations = new MixedRealityCameraSettingsConfiguration[0]; - - /// - /// Configuration objects describing the registered settings providers. - /// - public MixedRealityCameraSettingsConfiguration[] SettingsConfigurations - { - get { return settingsConfigurations; } - internal set { settingsConfigurations = value; } - } - - [SerializeField] - [Tooltip("Near clipping plane distance for an opaque display.")] - private float nearClipPlaneOpaqueDisplay = 0.1f; - - /// - /// Near clipping plane distance for an opaque display. - /// - public float NearClipPlaneOpaqueDisplay => nearClipPlaneOpaqueDisplay; - - [SerializeField] - [Tooltip("Far clipping plane distance for an opaque display.")] - private float farClipPlaneOpaqueDisplay = 1000f; - - /// - /// Far clipping plane distance for an opaque display. - /// - public float FarClipPlaneOpaqueDisplay => farClipPlaneOpaqueDisplay; - - [SerializeField] - [Tooltip("Flags describing how to clear the camera for an opaque display.")] - private CameraClearFlags cameraClearFlagsOpaqueDisplay = CameraClearFlags.Skybox; - - /// - /// Flags describing how to clear the camera for an opaque display. - /// - public CameraClearFlags CameraClearFlagsOpaqueDisplay => cameraClearFlagsOpaqueDisplay; - - [SerializeField] - [Tooltip("Background color for an opaque display.")] - private Color backgroundColorOpaqueDisplay = Color.black; - - /// - /// Background color for an opaque display. - /// - public Color BackgroundColorOpaqueDisplay => backgroundColorOpaqueDisplay; - - [SerializeField] - [Tooltip("Quality level for an opaque display.")] - private int opaqueQualityLevel = 0; - - /// - /// Quality level for an opaque display. - /// - public int OpaqueQualityLevel => opaqueQualityLevel; - - [SerializeField] - [Tooltip("Near clipping plane distance for a transparent display.")] - private float nearClipPlaneTransparentDisplay = 0.85f; - - /// - /// Near clipping plane distance for a transparent display. - /// - public float NearClipPlaneTransparentDisplay => nearClipPlaneTransparentDisplay; - - [SerializeField] - [Tooltip("Far clipping plane distance for a transparent display.")] - private float farClipPlaneTransparentDisplay = 50f; - - /// - /// Far clipping plane distance for a transparent display. - /// - public float FarClipPlaneTransparentDisplay => farClipPlaneTransparentDisplay; - - [SerializeField] - [Tooltip("Flags describing how to clear the camera for a transparent display.")] - private CameraClearFlags cameraClearFlagsTransparentDisplay = CameraClearFlags.SolidColor; - - /// - /// Flags describing how to clear the camera for a transparent display. - /// - public CameraClearFlags CameraClearFlagsTransparentDisplay => cameraClearFlagsTransparentDisplay; - - [SerializeField] - [Tooltip("Background color for a transparent display.")] - private Color backgroundColorTransparentDisplay = Color.clear; - - /// - /// Background color for a transparent display. - /// - public Color BackgroundColorTransparentDisplay => backgroundColorTransparentDisplay; - - [SerializeField] - [Tooltip("Quality level for a transparent display.")] - [FormerlySerializedAs("holoLensQualityLevel")] - private int transparentQualityLevel = 0; - - /// - /// Quality level for a transparent display. - /// - public int TransparentQualityLevel => transparentQualityLevel; - - #region Obsolete properties - - /// - /// Quality level for a HoloLens device. - /// - /// - /// HoloLensQualityLevel is obsolete and will be removed in a future Mixed Reality Toolkit release. Please use TransparentQualityLevel. - /// - [Obsolete("HoloLensQualityLevel is obsolete and will be removed in a future Mixed Reality Toolkit release. Please use TransparentQualityLevel.")] - public int HoloLensQualityLevel => transparentQualityLevel; - - #endregion Obsolete properties - - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs.meta deleted file mode 100644 index 885b30c0d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a4a1c93114e9437cb75d8b3ee4e0e1ba -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs deleted file mode 100644 index e7b2d2174..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.CameraSystem -{ - /// - /// Defines the configuration for a camera settings provider. - /// - [Serializable] - public struct MixedRealityCameraSettingsConfiguration : IMixedRealityServiceConfiguration - { - [SerializeField] - [Tooltip("The concrete type of the camera settings provider.")] - [Implements(typeof(IMixedRealityCameraSettingsProvider), TypeGrouping.ByNamespaceFlat)] - private SystemType componentType; - - /// - public SystemType ComponentType => componentType; - - [SerializeField] - [Tooltip("The name of the camera settings provider.")] - private string componentName; - - /// - public string ComponentName => componentName; - - [SerializeField] - [Tooltip("The camera settings provider priority.")] - private uint priority; - - /// - public uint Priority => priority; - - [SerializeField] - [Tooltip("The platform(s) on which the camera settings provider is supported.")] - [EnumFlags] - private SupportedPlatforms runtimePlatform; - - /// - public SupportedPlatforms RuntimePlatform => runtimePlatform; - - [SerializeField] - private BaseCameraSettingsProfile settingsProfile; - - /// - public BaseMixedRealityProfile Profile => settingsProfile; - - /// - /// Camera settings specific configuration profile. - /// - public BaseCameraSettingsProfile SettingsProfile => settingsProfile; - - /// - /// Constructor. - /// - /// The of the provider. - /// The friendly name of the provider. - /// The load priority of the provider. - /// The runtime platform(s) supported by the provider. - /// The configuration profile for the provider. - public MixedRealityCameraSettingsConfiguration( - SystemType componentType, - string componentName, - uint priority, - SupportedPlatforms runtimePlatform, - BaseCameraSettingsProfile configurationProfile) - { - this.componentType = componentType; - this.componentName = componentName; - this.priority = priority; - this.runtimePlatform = runtimePlatform; - this.settingsProfile = configurationProfile; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs.meta deleted file mode 100644 index 9475d937b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/CameraSystem/MixedRealityCameraSettingsConfiguration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f69ed9082ab6c1d44ab5f12daa194ffb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices.meta deleted file mode 100644 index 775f596db..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5c3a2b2396814e36a6bf40dfbefe3b9a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs deleted file mode 100644 index b049b10b3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs +++ /dev/null @@ -1,312 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if UNITY_EDITOR -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; -#endif - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Helper utility to manage all the required Axis configuration for platforms, where required - /// - public static class ControllerMappingLibrary - { - #region Constants - - /// - /// Axis for movement along the up (gravity) vector. - /// - public const string UP_DOWN = "UpDown"; - - /// - /// Mouse: Position Horizontal Movement - /// HTC Vive Controller: Left Controller Trackpad (2) Horizontal Movement - /// Oculus Touch Controller: Axis2D.PrimaryThumbstick Horizontal Movement - /// Valve Knuckles Controller: Left Controller Trackpad Horizontal Movement - /// Windows Mixed Reality Motion Controller: Left Thumbstick Horizontal Movement - /// Xbox Controller: Left Thumbstick Horizontal Movement - /// - public const string AXIS_1 = "AXIS_1"; - - /// - /// Mouse: Position Vertical Movement - /// HTC Vive Controller: Left Controller Trackpad (2) Vertical Movement - /// Oculus Touch Controller: Axis2D.PrimaryThumbstick Vertical Movement - /// Valve Knuckles Controller: Left Controller Trackpad Vertical Movement - /// Windows Mixed Reality Motion Controller: Left Thumbstick Vertical Movement - /// Xbox Controller: Left Thumbstick Vertical Movement - /// - public const string AXIS_2 = "AXIS_2"; - - /// - /// Mouse: Scroll - /// Xbox Controller: Shared Trigger - /// - public const string AXIS_3 = "AXIS_3"; - - /// - /// HTC Vive Controller: Right Controller Trackpad (2) Horizontal Movement - /// Oculus Touch Controller: Axis2D.SecondaryThumbstick Horizontal Movement - /// Valve Knuckles Controller: Right Controller Trackpad Horizontal Movement - /// Windows Mixed Reality Motion Controller: Right Thumbstick Horizontal Movement - /// Xbox Controller: Right Thumbstick Vertical Movement - /// - public const string AXIS_4 = "AXIS_4"; - - /// - /// HTC Vive Controller: Right Controller Trackpad (2) Vertical Movement - /// Oculus Touch Controller: Axis2D.SecondaryThumbstick Vertical Movement - /// Valve Knuckles Controller: Right Controller Trackpad Vertical Movement - /// Windows Mixed Reality Motion Controller: Right Thumbstick Vertical Movement - /// Xbox Controller: Right Thumbstick Vertical Movement - /// - public const string AXIS_5 = "AXIS_5"; - - /// - /// None - /// - public const string AXIS_6 = "AXIS_6"; - - /// - /// Xbox Controller: D-Pad Horizontal - /// - public const string AXIS_7 = "AXIS_7"; - - /// - /// Xbox Controller: D-Pad Vertical - /// - public const string AXIS_8 = "AXIS_8"; - - /// - /// HTC Vive Controller: Left Controller Trigger (7) Squeeze - /// Oculus Touch Controller: Axis1D.PrimaryIndexTrigger Squeeze - /// Valve Knuckles Controller: Left Controller Trigger Squeeze - /// Windows Mixed Reality Motion Controller: Left Trigger Squeeze - /// - public const string AXIS_9 = "AXIS_9"; - - /// - /// HTC Vive Controller: Right Controller Trigger (7) Squeeze - /// Oculus Touch Controller: Axis1D.SecondaryIndexTrigger Movement Squeeze - /// Valve Knuckles Controller: Right Controller Trigger Squeeze - /// Windows Mixed Reality Motion Controller: Right Trigger Squeeze - /// - public const string AXIS_10 = "AXIS_10"; - - /// - /// HTC Vive Controller: Left Controller Grip Button (8) Squeeze - /// Oculus Touch Controller: Axis1D.PrimaryHandTrigger Squeeze - /// Valve Knuckles Controller: Left Controller Grip Average Squeeze - /// Windows Mixed Reality Motion Controller: Left Grip Squeeze - /// - public const string AXIS_11 = "AXIS_11"; - - /// - /// HTC Vive Controller: Right Controller Grip Button (8) Squeeze - /// Oculus Touch Controller: Axis1D.SecondaryHandTrigger Squeeze - /// Valve Knuckles Controller: Right Controller Grip Average Squeeze - /// Windows Mixed Reality Motion Controller: Right Grip Squeeze - /// - public const string AXIS_12 = "AXIS_12"; - - /// - /// Oculus Touch Controller: Axis1D.PrimaryIndexTrigger Near Touch - /// - public const string AXIS_13 = "AXIS_13"; - - /// - /// Oculus Touch Controller: Axis1D.SecondaryIndexTrigger Near Touch - /// - public const string AXIS_14 = "AXIS_14"; - - /// - /// Oculus Touch Controller: Touch.PrimaryThumbRest Near Touch - /// - public const string AXIS_15 = "AXIS_15"; - - /// - /// Oculus Touch Controller: Button.SecondaryThumbstick Near Touch - /// - public const string AXIS_16 = "AXIS_16"; - - /// - /// Windows Mixed Reality Motion Controller: Left Touchpad Horizontal Movement - /// - public const string AXIS_17 = "AXIS_17"; - - /// - /// Windows Mixed Reality Motion Controller: Left Touchpad Vertical Movement - /// - public const string AXIS_18 = "AXIS_18"; - - /// - /// Windows Mixed Reality Motion Controller: Right Touchpad Horizontal Movement - /// - public const string AXIS_19 = "AXIS_19"; - - /// - /// Windows Mixed Reality Motion Controller: Right Touchpad Vertical Movement - /// Valve Knuckles Controller: Left Controller Index Finger Cap Sensor - /// - public const string AXIS_20 = "AXIS_20"; - - /// - /// Valve Knuckles Controller: Right Controller Index Finger Cap Sensor - /// - public const string AXIS_21 = "AXIS_21"; - - /// - /// Valve Knuckles Controller: Left Controller Middle Finger Cap Sensor - /// - public const string AXIS_22 = "AXIS_22"; - - /// - /// Valve Knuckles Controller: Right Controller Middle Finger Cap Sensor - /// - public const string AXIS_23 = "AXIS_23"; - - /// - /// Valve Knuckles Controller: Left Controller Ring Finger Cap Sensor - /// - public const string AXIS_24 = "AXIS_24"; - - /// - /// Valve Knuckles Controller: Right Controller Ring Finger Cap Sensor - /// - public const string AXIS_25 = "AXIS_25"; - - /// - /// Valve Knuckles Controller: Left Controller Pinky Finger Cap Sensor - /// - public const string AXIS_26 = "AXIS_26"; - - /// - /// Valve Knuckles Controller: Right Controller Pinky Finger Cap Sensor - /// - public const string AXIS_27 = "AXIS_27"; - - public const string AXIS_28 = "AXIS_28"; - - #endregion Constants - -#if UNITY_EDITOR - - #region InputAxisConfig - - // Default value for the dead zone. This should match the default used by Unity for the pre-created Horizontal and Vertical axes. - public const float defaultDeadZone = 0.19f; - - /// - /// Get the InputManagerAxis data needed to configure the Input Mappings for a controller - /// - public static InputManagerAxis[] UnityInputManagerAxes => new[] - { - new InputManagerAxis { Name = AXIS_1, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 1 }, - new InputManagerAxis { Name = AXIS_2, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 2 }, - new InputManagerAxis { Name = AXIS_3, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 3 }, - new InputManagerAxis { Name = AXIS_4, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 4 }, - new InputManagerAxis { Name = AXIS_5, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 5 }, - new InputManagerAxis { Name = AXIS_6, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 6 }, - new InputManagerAxis { Name = AXIS_7, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 7 }, - new InputManagerAxis { Name = AXIS_8, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 8 }, - new InputManagerAxis { Name = AXIS_9, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 9 }, - new InputManagerAxis { Name = AXIS_10, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 10 }, - new InputManagerAxis { Name = AXIS_11, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 11 }, - new InputManagerAxis { Name = AXIS_12, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 12 }, - new InputManagerAxis { Name = AXIS_13, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 13 }, - new InputManagerAxis { Name = AXIS_14, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 14 }, - new InputManagerAxis { Name = AXIS_15, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 15 }, - new InputManagerAxis { Name = AXIS_16, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 16 }, - new InputManagerAxis { Name = AXIS_17, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 17 }, - new InputManagerAxis { Name = AXIS_18, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 18 }, - new InputManagerAxis { Name = AXIS_19, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 19 }, - new InputManagerAxis { Name = AXIS_20, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 20 }, - new InputManagerAxis { Name = AXIS_21, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 21 }, - new InputManagerAxis { Name = AXIS_22, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 22 }, - new InputManagerAxis { Name = AXIS_23, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 23 }, - new InputManagerAxis { Name = AXIS_24, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 24 }, - new InputManagerAxis { Name = AXIS_25, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 25 }, - new InputManagerAxis { Name = AXIS_26, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 26 }, - new InputManagerAxis { Name = AXIS_27, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 27 }, - new InputManagerAxis { Name = AXIS_28, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 28 }, - new InputManagerAxis { Name = UP_DOWN, Gravity = 3, Dead = 0.001f, Sensitivity = 3, Snap = true, Invert = false, Type = InputManagerAxisType.KeyOrMouseButton, PositiveButton = "e", NegativeButton = "q" }, - new InputManagerAxis { Name = UP_DOWN, Dead = defaultDeadZone, Sensitivity = 1, Invert = false, Type = InputManagerAxisType.JoystickAxis, Axis = 3 }, - }; - - #endregion InputAxisConfig - - private static Dictionary, Texture2D> cachedTextures = new Dictionary, Texture2D>(); - - public static Texture2D GetControllerTexture(Type controllerType, Handedness handedness) - { - return GetControllerTextureCached(controllerType, handedness, ""); - } - - public static Texture2D GetControllerTextureScaled(Type controllerType, Handedness handedness) - { - return GetControllerTextureCached(controllerType, handedness, "_scaled"); - } - - private static Texture2D GetControllerTextureCached(Type controllerType, Handedness handedness, string suffix) - { - Texture2D texture; - - var key = new Tuple(controllerType, handedness, suffix); - if (cachedTextures.TryGetValue(key, out texture)) - { - return texture; - } - - texture = GetControllerTextureInternal(controllerType, handedness, suffix); - cachedTextures.Add(key, texture); - return texture; - } - - private static Texture2D GetControllerTextureInternal(Type controllerType, Handedness handedness, string suffix) - { - if (controllerType != null) - { - var attr = MixedRealityControllerAttribute.Find(controllerType); - if (attr != null) - { - if (attr.TexturePath.Length > 0) - { - Texture2D texture = GetControllerTextureInternal(attr.TexturePath, handedness, suffix); - if (texture != null) - { - return texture; - } - } - } - } - - return GetControllerTextureInternal("Textures/Generic_controller", Handedness.None, suffix); - } - - private static Texture2D GetControllerTextureInternal(string relativeTexturePath, Handedness handedness, string suffix) - { - string handednessSuffix = string.Empty; - if (handedness == Handedness.Left) - { - handednessSuffix = "_left"; - } - else if (handedness == Handedness.Right) - { - handednessSuffix = "_right"; - } - - string themeSuffix = EditorGUIUtility.isProSkin ? "_white" : "_black"; - - string fullTexturePath = MixedRealityToolkitFiles.MapRelativeFilePath(MixedRealityToolkitModuleType.StandardAssets, $"{relativeTexturePath}{handednessSuffix}{themeSuffix}{suffix}.png"); - return (Texture2D)AssetDatabase.LoadAssetAtPath(fullTexturePath, typeof(Texture2D)); - } - -#endif // UNITY_EDITOR - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs.meta deleted file mode 100644 index 1baf50696..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/ControllerMappingLibrary.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 63448e049fca40c7bfc14ec46b6b21e2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs deleted file mode 100644 index 3b059b406..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - // TODO - Expand input list for additional controller types and have a filter defined by the controller - /// - /// The InputType defines the types of input exposed by a controller. - /// Denoting the available buttons / interactions that a controller supports. - /// - public enum DeviceInputType - { - None = 0, - Gaze, - Voice, - /// - /// 6 Dof Pointer with position and rotation. - /// - SpatialPointer, - /// - /// 3 Dof Pointer with only position. - /// - PointerPosition, - /// - /// 3 Dof Pointer with only rotation. - /// - PointerRotation, - PointerClick, - ButtonPress, - ButtonTouch, - ButtonNearTouch, - Trigger, - TriggerTouch, - TriggerNearTouch, - // TriggerPress, in some cases, maps to the Grab gesture. - TriggerPress, - /// - /// 6 DoF Grip with position and rotation. - /// - SpatialGrip, - /// - /// 3 DoF Grip with only position. - /// - GripPosition, - /// - /// 3 Dof Grip with only rotation. - /// - GripRotation, - ThumbStick, - ThumbStickPress, - ThumbStickTouch, - ThumbStickNearTouch, - Touchpad, - TouchpadTouch, - TouchpadNearTouch, - TouchpadPress, - /// - /// Select maps to the Pinch/Air Tap gesture - /// - Select, - Start, - Menu, - Hand, - Thumb, - ThumbTouch, - ThumbNearTouch, - ThumbPress, - IndexFinger, - IndexFingerTouch, - IndexFingerNearTouch, - IndexFingerPress, - MiddleFinger, - MiddleFingerTouch, - MiddleFingerNearTouch, - MiddleFingerPress, - RingFinger, - RingFingerTouch, - RingFingerNearTouch, - RingFingerPress, - PinkyFinger, - PinkyFingerTouch, - PinkyFingerNearTouch, - PinkyFingerPress, - DirectionalPad, - Scroll, - PrimaryButtonPress, - PrimaryButtonTouch, - PrimaryButtonNearTouch, - SecondaryButtonPress, - SecondaryButtonTouch, - SecondaryButtonNearTouch, - Grip, - GripTouch, - GripNearTouch, - // GripPress, in some cases, maps to the Grab gesture. - GripPress, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs.meta deleted file mode 100644 index 57c77b9c7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/DeviceInputType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ef1c18787847430e8163d5884eb12480 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs deleted file mode 100644 index 893e6fa2b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// The GestureInputType defines the types of gestures exposed by a controller. - /// - public enum GestureInputType - { - None = 0, - Hold, - Navigation, - Manipulation, - Select - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs.meta deleted file mode 100644 index 46e45f00b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/GestureInputType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 41cdb027c55749febc76488d3a4a381a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs deleted file mode 100644 index 51febf98b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - // TODO - currently not used, consider removing maybe? - /// - /// The headset definition defines the headset as defined by the SDK / Unity. - /// - public struct Headset - { - /// - /// The ID assigned to the Headset - /// - public string Id { get; set; } - - /// - /// The designated hand that the controller is managing, as defined by the SDK / Unity. - /// - public SDKType HeadsetSDKType { get; set; } - - /// - /// Indicates whether or not the headset is currently providing position data. - /// - public bool IsPositionAvailable { get; set; } - - /// - /// Outputs the current position of the headset, as defined by the SDK / Unity. - /// - public Vector3 Position { get; set; } - - /// - /// Indicates whether or not the headset is currently providing rotation data. - /// - public bool IsRotationAvailable { get; set; } - - /// - /// Outputs the current rotation of the headset, as defined by the SDK / Unity. - /// - public Quaternion Rotation { get; set; } - - /// - /// Outputs the current state of the headset, whether it is tracked or not. As defined by the SDK / Unity. - /// - public TrackingState TrackingState { get; set; } - - /// - /// Indicates whether or not the headset display is opaque. As defined by the SDK / Unity. - /// - public bool IsOpaque { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs.meta deleted file mode 100644 index 833754d30..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/Headset.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aeb86b84fa9f48bb89e0c82508cc4147 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs deleted file mode 100644 index 097117aac..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// The InputSourceType defines the types of input sources. - /// - public enum InputSourceType - { - Other = 0, - Hand, - Controller, - Voice, - Head, - Eyes - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs.meta deleted file mode 100644 index 79022d35b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/InputSourceType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ffd06547248f42243a0549fa6f484b0b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs deleted file mode 100644 index 18dd6b802..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Flags used by MixedRealityControllerAttribute. - /// - [System.Flags] - public enum MixedRealityControllerConfigurationFlags : byte - { - /// - /// Controllers with custom interaction mappings can have their mappings be added / removed to the - /// controller mapping profile in the property inspector. - /// - UseCustomInteractionMappings = 1 << 0, - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs.meta deleted file mode 100644 index b22a58964..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerConfigurationFlags.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 16b062a49cc40054d8a97c1c7653b17b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs deleted file mode 100644 index 43dce6821..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs +++ /dev/null @@ -1,252 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Runtime.CompilerServices; -using UnityEngine; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Editor.Inspectors")] -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Used to define a controller or other input device's physical buttons, and other attributes. - /// - [Serializable] - public struct MixedRealityControllerMapping - { - /// - /// Constructor. - /// - /// Controller Type to instantiate at runtime. - /// The designated hand that the device is managing. - public MixedRealityControllerMapping(Type controllerType, Handedness handedness = Handedness.None) : this() - { - this.controllerType = new SystemType(controllerType); - this.handedness = handedness; - interactions = null; - } - - /// - /// Description of the Device. - /// - public string Description - { - get - { - string controllerName = "Unknown"; - if (controllerType.Type != null) - { - var attr = MixedRealityControllerAttribute.Find(controllerType); - if (attr != null) - { - controllerName = attr.SupportedControllerType.ToString().ToProperCase(); - } - } - - string handednessText = string.Empty; - switch (handedness) - { - case Handedness.Left: - case Handedness.Right: - handednessText = $"{handedness} Hand "; - // Avoid multiple occurrences of "Hand": - controllerName = controllerName.Replace("Hand", "").Trim(); - break; - } - - return $"{controllerName} {handednessText}Controller"; - } - } - - [SerializeField] - [Tooltip("Controller type to instantiate at runtime.")] - [Implements(typeof(IMixedRealityController), TypeGrouping.ByNamespaceFlat)] - private SystemType controllerType; - - /// - /// Controller Type to instantiate at runtime. - /// - public SystemType ControllerType => controllerType; - - public SupportedControllerType SupportedControllerType - { - get - { - if (controllerType.Type != null) - { - var attr = MixedRealityControllerAttribute.Find(controllerType); - if (attr != null) - { - return attr.SupportedControllerType; - } - } - return 0; - } - } - - [SerializeField] - [Tooltip("The designated hand that the device is managing.")] - private Handedness handedness; - - /// - /// The designated hand that the device is managing. - /// - public Handedness Handedness => handedness; - - /// - /// Is this controller mapping using custom interactions? - /// - public bool HasCustomInteractionMappings - { - get - { - if (controllerType.Type != null) - { - var attr = MixedRealityControllerAttribute.Find(controllerType); - if (attr != null) - { - return attr.Flags.HasFlag(MixedRealityControllerConfigurationFlags.UseCustomInteractionMappings); - } - } - return false; - } - } - - [SerializeField] - [Tooltip("Details the list of available buttons / interactions available from the device.")] - private MixedRealityInteractionMapping[] interactions; - - /// - /// Details the list of available buttons / interactions available from the device. - /// - public MixedRealityInteractionMapping[] Interactions => interactions; - - /// - /// Sets the default interaction mapping based on the current controller type. - /// - internal void SetDefaultInteractionMapping(bool overwrite = false) - { - if (interactions == null || interactions.Length == 0 || overwrite) - { - MixedRealityInteractionMapping[] defaultMappings = GetDefaultInteractionMappings(); - - if (defaultMappings != null) - { - interactions = defaultMappings; - } - } - } - - internal bool UpdateInteractionSettingsFromDefault() - { - if (interactions == null || interactions.Length == 0) { return false; } - - MixedRealityInteractionMapping[] newDefaultInteractions = GetDefaultInteractionMappings(); - - if (newDefaultInteractions == null) - { - return false; - } - - if (interactions.Length != newDefaultInteractions.Length) - { - interactions = CreateNewMatchedMapping(interactions, newDefaultInteractions); - return true; - } - - bool updatedMappings = false; - - for (int i = 0; i < newDefaultInteractions.Length; i++) - { - MixedRealityInteractionMapping currentMapping = interactions[i]; - MixedRealityInteractionMapping currentDefaultMapping = newDefaultInteractions[i]; - - if (!Equals(currentMapping, currentDefaultMapping)) - { - interactions[i] = new MixedRealityInteractionMapping(currentDefaultMapping) - { - MixedRealityInputAction = currentMapping.MixedRealityInputAction - }; - - updatedMappings = true; - } - } - - return updatedMappings; - } - - private MixedRealityInteractionMapping[] CreateNewMatchedMapping(MixedRealityInteractionMapping[] interactions, MixedRealityInteractionMapping[] newDefaultInteractions) - { - MixedRealityInteractionMapping[] newDefaultMapping = new MixedRealityInteractionMapping[newDefaultInteractions.Length]; - - for (int i = 0; i < newDefaultInteractions.Length; i++) - { - for (int j = 0; j < interactions.Length; j++) - { - if (Equals(interactions[j], newDefaultInteractions[i])) - { - newDefaultMapping[i] = new MixedRealityInteractionMapping(newDefaultInteractions[i]) - { - MixedRealityInputAction = interactions[j].MixedRealityInputAction - }; - break; - } - } - - if (newDefaultMapping[i] == null) - { - newDefaultMapping[i] = new MixedRealityInteractionMapping(newDefaultInteractions[i]); - } - } - - return newDefaultMapping; - } - - private bool Equals(MixedRealityInteractionMapping a, MixedRealityInteractionMapping b) - { - return !(a.Description != b.Description || - a.AxisType != b.AxisType || - a.InputType != b.InputType || - a.KeyCode != b.KeyCode || - a.AxisCodeX != b.AxisCodeX || - a.AxisCodeY != b.AxisCodeY || - a.InvertXAxis != b.InvertXAxis || - a.InvertYAxis != b.InvertYAxis); - } - - private MixedRealityInteractionMapping[] GetDefaultInteractionMappings() - { - if (Activator.CreateInstance(controllerType, TrackingState.NotTracked, handedness, null, null) is BaseController detectedController) - { - switch (handedness) - { - case Handedness.Left: - return detectedController.DefaultLeftHandedInteractions ?? detectedController.DefaultInteractions; - case Handedness.Right: - return detectedController.DefaultRightHandedInteractions ?? detectedController.DefaultInteractions; - default: - return detectedController.DefaultInteractions; - } - } - - return null; - } - - /// - /// Synchronizes the input actions of the same physical controller of a different concrete type. - /// - internal void SynchronizeInputActions(MixedRealityInteractionMapping[] otherControllerMapping) - { - if (otherControllerMapping.Length != interactions.Length) - { - throw new ArgumentException($"otherControllerMapping length {otherControllerMapping.Length} does not match this length {interactions.Length}."); - } - - for (int i = 0; i < interactions.Length; i++) - { - interactions[i].MixedRealityInputAction = otherControllerMapping[i].MixedRealityInputAction; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs.meta deleted file mode 100644 index 7d487e589..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMapping.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 02eb7c6d2cea47968dbe9662d1ca935d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs deleted file mode 100644 index 666cbb819..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -#if UNITY_EDITOR -using UnityEditor; -#endif // UNITY_EDITOR -using UnityEngine; -using UnityEngine.Serialization; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// New controller types can be registered by adding the MixedRealityControllerAttribute to - /// the controller class. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Controller Mapping Profile", fileName = "MixedRealityControllerMappingProfile", order = (int)CreateProfileMenuItemIndices.ControllerMapping)] - public class MixedRealityControllerMappingProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("The list of controller mappings your application can use.")] - [FormerlySerializedAs("mixedRealityControllerMappingProfiles")] - private MixedRealityControllerMapping[] mixedRealityControllerMappings = Array.Empty(); - - /// - /// The list of controller mappings your application can use. - /// - public MixedRealityControllerMapping[] MixedRealityControllerMappings => mixedRealityControllerMappings; - - [Obsolete("MixedRealityControllerMappingProfiles is obsolete. Please use MixedRealityControllerMappings.")] - public MixedRealityControllerMapping[] MixedRealityControllerMappingProfiles => mixedRealityControllerMappings; - -#if UNITY_EDITOR - [MenuItem("Mixed Reality Toolkit/Utilities/Update/Controller Mapping Profiles")] - private static void UpdateAllControllerMappingProfiles() - { - string[] guids = AssetDatabase.FindAssets("t:MixedRealityControllerMappingProfile"); - string[] assetPaths = new string[guids.Length]; - for (int i = 0; i < guids.Length; i++) - { - string guid = guids[i]; - assetPaths[i] = AssetDatabase.GUIDToAssetPath(guid); - - MixedRealityControllerMappingProfile asset = AssetDatabase.LoadAssetAtPath(assetPaths[i], typeof(MixedRealityControllerMappingProfile)) as MixedRealityControllerMappingProfile; - - List updatedMappings = new List(); - - foreach (MixedRealityControllerMapping mapping in asset.MixedRealityControllerMappings) - { - if (mapping.ControllerType.Type == null) - { - continue; - } - - if (!mapping.HasCustomInteractionMappings) - { - mapping.UpdateInteractionSettingsFromDefault(); - } - - updatedMappings.Add(mapping); - } - - asset.mixedRealityControllerMappings = updatedMappings.ToArray(); - } - AssetDatabase.ForceReserializeAssets(assetPaths); - } - - private static Type[] controllerMappingTypes; - - public static Type[] ControllerMappingTypes { get { CollectControllerTypes(); return controllerMappingTypes; } } - - public static Type[] CustomControllerMappingTypes { get => (from type in ControllerMappingTypes where UsesCustomInteractionMapping(type) select type).ToArray(); } - - private static void CollectControllerTypes() - { - if (controllerMappingTypes == null) - { - List controllerTypes = new List(); - foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) - { - IEnumerable types = null; - try - { - types = assembly.ExportedTypes; - } - catch (NotSupportedException) - { - // assembly.ExportedTypes may not be supported. - } - catch (ReflectionTypeLoadException e) - { - // Not all assemblies may load correctly, but even upon encountering error - // some subset may have loaded in. - if (e.Types != null) - { - List loadedTypes = new List(); - foreach (Type type in e.Types) - { - // According to API docs, this array may contain null values - // so they must be filtered out here. - if (type != null) - { - loadedTypes.Add(type); - } - } - types = loadedTypes; - } - } - - if (types != null) - { - foreach (Type type in types) - { - if (type.IsSubclassOf(typeof(BaseController)) && - MixedRealityControllerAttribute.Find(type) != null) - { - controllerTypes.Add(type); - } - } - } - } - - controllerMappingTypes = controllerTypes.ToArray(); - } - } - - public void Awake() - { - AddMappings(); - SortMappings(); - } - - private void AddMappings() - { - foreach (var controllerType in ControllerMappingTypes) - { - // Don't auto-add custom mappings when migrating, these can be removed by the user in the inspector. - if (UsesCustomInteractionMapping(controllerType)) - { - continue; - } - - foreach (Handedness handedness in GetSupportedHandedness(controllerType)) - { - // Try to find index of mapping in asset. - int idx = Array.FindIndex(MixedRealityControllerMappings, 0, MixedRealityControllerMappings.Length, - profile => profile.ControllerType.Type == controllerType && profile.Handedness == handedness); - - if (idx < 0) - { - var newMapping = new MixedRealityControllerMapping(controllerType, handedness); - newMapping.SetDefaultInteractionMapping(overwrite: false); - - // Re-use existing mapping with the same supported controller type. - foreach (var otherMapping in mixedRealityControllerMappings) - { - if (otherMapping.SupportedControllerType == newMapping.SupportedControllerType && - otherMapping.Handedness == newMapping.Handedness) - { - try - { - newMapping.SynchronizeInputActions(otherMapping.Interactions); - } - catch (ArgumentException e) - { - Debug.LogError($"Controller mappings between {newMapping.Description} and {otherMapping.Description} do not match. Error message: {e.Message}"); - } - break; - } - } - - idx = mixedRealityControllerMappings.Length; - Array.Resize(ref mixedRealityControllerMappings, idx + 1); - mixedRealityControllerMappings[idx] = newMapping; - } - else - { - mixedRealityControllerMappings[idx].UpdateInteractionSettingsFromDefault(); - } - } - } - } - - private void SortMappings() - { - Array.Sort(mixedRealityControllerMappings, (profile1, profile2) => - { - bool isOptional1 = (profile1.ControllerType.Type == null || profile1.HasCustomInteractionMappings); - bool isOptional2 = (profile2.ControllerType.Type == null || profile2.HasCustomInteractionMappings); - if (!isOptional1 && !isOptional2) - { - int idx1 = Array.FindIndex(ControllerMappingTypes, type => type == profile1.ControllerType.Type); - int idx2 = Array.FindIndex(ControllerMappingTypes, type => type == profile2.ControllerType.Type); - - if (idx1 == idx2) - { - idx1 = (int)profile1.Handedness; - idx2 = (int)profile2.Handedness; - } - - return Math.Sign(idx1 - idx2); - } - - if (isOptional1 && isOptional2) - { - return 0; - } - - return isOptional1 ? 1 : -1; // Put custom mappings at the end. These can be added / removed in the inspector. - }); - } - -#endif // UNITY_EDITOR - - private static bool UsesCustomInteractionMapping(Type controllerType) - { - var attribute = MixedRealityControllerAttribute.Find(controllerType); - return attribute != null ? attribute.Flags.HasFlag(MixedRealityControllerConfigurationFlags.UseCustomInteractionMappings) : false; - } - - private static Handedness[] GetSupportedHandedness(Type controllerType) - { - var attribute = MixedRealityControllerAttribute.Find(controllerType); - return attribute != null ? attribute.SupportedHandedness : Array.Empty(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs.meta deleted file mode 100644 index b98023a93..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerMappingProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1a1cf5fd47e548e6a23bdd3ddcc00cf6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs deleted file mode 100644 index 438cb9c58..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Profile that determines relevant overrides and properties for controller visualization - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Controller Visualization Profile", fileName = "MixedRealityControllerVisualizationProfile", order = (int)CreateProfileMenuItemIndices.ControllerVisualization)] - [MixedRealityServiceProfile(typeof(IMixedRealityControllerVisualizer))] - public class MixedRealityControllerVisualizationProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("Enable and configure the controller rendering of the Motion Controllers on Startup.")] - private bool renderMotionControllers = false; - - /// - /// Enable and configure the controller rendering of the Motion Controllers on Startup. - /// - public bool RenderMotionControllers - { - get => renderMotionControllers; - private set => renderMotionControllers = value; - } - - [SerializeField] - [Implements(typeof(IMixedRealityControllerVisualizer), TypeGrouping.ByNamespaceFlat)] - [Tooltip("The default controller visualization type. This value is used as a fallback if no controller definition exists with a custom visualization type.")] - private SystemType defaultControllerVisualizationType; - - /// - /// The default controller visualization type. This value is used as a fallback if no controller definition exists with a custom visualization type. - /// - public SystemType DefaultControllerVisualizationType - { - get => defaultControllerVisualizationType; - private set => defaultControllerVisualizationType = value; - } - - [SerializeField] - [Tooltip("Check to obtain controller models from the platform SDK. If left unchecked, the global models will be used. Note: this value is overridden by controller definitions.")] - private bool useDefaultModels = false; - - /// - /// Check to obtain controller models from the platform SDK. If left unchecked, the global models will be used. Note: this value is overridden by controller definitions. - /// - public bool UseDefaultModels - { - get => useDefaultModels; - private set => useDefaultModels = value; - } - - [SerializeField] - [Tooltip("The default controller model material when loading platform SDK controller models. This value is used as a fallback if no controller definition exists with a custom material type.")] - private Material defaultControllerModelMaterial; - - /// - /// The default controller model material when loading platform SDK controller models. This value is used as a fallback if no controller definition exists with a custom material type. - /// - public Material DefaultControllerModelMaterial - { - get => defaultControllerModelMaterial; - private set => defaultControllerModelMaterial = value; - } - - [SerializeField] - [Tooltip("Override Left Controller Model.")] - private GameObject globalLeftControllerModel; - - /// - /// The Default controller model when there is no specific controller model for the Left hand or when no hand is specified (Handedness = none) - /// - /// - /// If the default model for the left hand controller can not be found, the controller will fall back and use this for visualization. - /// - public GameObject GlobalLeftHandModel - { - get => globalLeftControllerModel; - private set => globalLeftControllerModel = value; - } - - [SerializeField] - [Tooltip("Override Right Controller Model.\nNote: If the default model is not found, the fallback is the global right hand model.")] - private GameObject globalRightControllerModel; - - /// - /// The Default controller model when there is no specific controller model for the Right hand. - /// - /// - /// If the default model for the right hand controller can not be found, the controller will fall back and use this for visualization. - /// - public GameObject GlobalRightHandModel - { - get => globalRightControllerModel; - private set => globalRightControllerModel = value; - } - - [SerializeField] - [Tooltip("Override Left Hand Visualizer.")] - private GameObject globalLeftHandVisualizer; - - /// - /// The Default controller model when there is no specific controller model for the Left hand or when no hand is specified (Handedness = none) - /// - /// - /// If the default model for the left hand controller can not be found, the controller will fall back and use this for visualization. - /// - public GameObject GlobalLeftHandVisualizer - { - get => globalLeftHandVisualizer; - private set => globalLeftHandVisualizer = value; - } - - [SerializeField] - [Tooltip("Override Right Controller Model.\nNote: If the default model is not found, the fallback is the global right hand model.")] - private GameObject globalRightHandVisualizer; - - /// - /// The Default hand model when there is no specific hand model for the Right hand. - /// - /// - /// If the default model for the right hand can not be found, the hand will fall back and use this for visualization. - /// - public GameObject GlobalRightHandVisualizer - { - get => globalRightHandVisualizer; - private set => globalRightHandVisualizer = value; - } - - [SerializeField] - private MixedRealityControllerVisualizationSetting[] controllerVisualizationSettings = Array.Empty(); - - /// - /// The current list of controller visualization settings. - /// - public MixedRealityControllerVisualizationSetting[] ControllerVisualizationSettings => controllerVisualizationSettings; - - /// - /// Gets the override model for a specific controller type and hand - /// - /// The type of controller to query for - /// The specific hand assigned to the controller - public GameObject GetControllerModelOverride(Type controllerType, Handedness hand) - { - for (int i = 0; i < controllerVisualizationSettings.Length; i++) - { - if (SettingContainsParameters(controllerVisualizationSettings[i], controllerType, hand)) - { - return controllerVisualizationSettings[i].OverrideControllerModel; - } - } - - return null; - } - - /// - /// Gets the override type for a specific controller type and hand. - /// If the requested controller type is not defined, DefaultControllerVisualizationType is returned. - /// - /// The type of controller to query for - /// The specific hand assigned to the controller - public SystemType GetControllerVisualizationTypeOverride(Type controllerType, Handedness hand) - { - for (int i = 0; i < controllerVisualizationSettings.Length; i++) - { - if (SettingContainsParameters(controllerVisualizationSettings[i], controllerType, hand)) - { - return controllerVisualizationSettings[i].ControllerVisualizationType; - } - } - - return defaultControllerVisualizationType; - } - - /// - /// Gets the UseDefaultModels value defined for the specified controller definition. - /// If the requested controller type is not defined, the default UseDefaultModels is returned. - /// - /// The type of controller to query for - /// The specific hand assigned to the controller - public bool GetUseDefaultModelsOverride(Type controllerType, Handedness hand) - { - for (int i = 0; i < controllerVisualizationSettings.Length; i++) - { - if (SettingContainsParameters(controllerVisualizationSettings[i], controllerType, hand)) - { - return controllerVisualizationSettings[i].UseDefaultModel; - } - } - - return useDefaultModels; - } - - /// - /// Gets the DefaultModelMaterial value defined for the specified controller definition. - /// If the requested controller type is not defined, the global DefaultControllerModelMaterial is returned. - /// - /// The type of controller to query for - /// The specific hand assigned to the controller - public Material GetDefaultControllerModelMaterialOverride(Type controllerType, Handedness hand) - { - for (int i = 0; i < controllerVisualizationSettings.Length; i++) - { - if (SettingContainsParameters(controllerVisualizationSettings[i], controllerType, hand)) - { - return controllerVisualizationSettings[i].DefaultModelMaterial; - } - } - - return defaultControllerModelMaterial; - } - - private bool SettingContainsParameters(MixedRealityControllerVisualizationSetting setting, Type controllerType, Handedness hand) - { - return setting.ControllerType != null && - setting.ControllerType.Type == controllerType && - setting.Handedness.HasFlag(hand) && setting.Handedness != Handedness.None; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs.meta deleted file mode 100644 index e06d0c542..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 514da61389c049c0bdaf31b7f6970d33 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs deleted file mode 100644 index cd7d63358..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Used to define a controller's visualization settings. - /// - [Serializable] - public struct MixedRealityControllerVisualizationSetting - { - /// - /// Constructor. - /// - /// Description of the Device. - /// Controller Type to instantiate at runtime. - /// The designated hand that the device is managing. - /// The controller model prefab to be rendered. - public MixedRealityControllerVisualizationSetting(string description, Type controllerType, Handedness handedness = Handedness.None, GameObject overrideModel = null) : this() - { - this.description = description; - this.controllerType = new SystemType(controllerType); - this.handedness = handedness; - this.overrideModel = overrideModel; - useDefaultModel = false; - defaultModelMaterial = null; - } - - [SerializeField] - private string description; - - /// - /// Description of the Device. - /// - public string Description => description; - - [SerializeField] - [Tooltip("Controller type to instantiate at runtime.")] - [Implements(typeof(IMixedRealityController), TypeGrouping.ByNamespaceFlat)] - private SystemType controllerType; - - /// - /// Controller Type to instantiate at runtime. - /// - public SystemType ControllerType => controllerType; - - [SerializeField] - [Tooltip("The designated hand that the device is managing.")] - private Handedness handedness; - - /// - /// The designated hand that the device is managing. - /// - public Handedness Handedness => handedness; - - [SerializeField] - [Tooltip("Check to obtain controller models from the platform SDK. If left unchecked, the global models will be used.")] - private bool useDefaultModel; - - /// - /// Check to obtain controller models from the platform SDK. If left unchecked, the global models will be used. - /// - public bool UseDefaultModel => useDefaultModel; - - [SerializeField] - [Tooltip("The default controller model material when loading platform SDK controller models.")] - private Material defaultModelMaterial; - - /// - /// The default controller model material when loading platform SDK controller models. This value is used as a fallback if no controller definition exists with a custom material type. - /// - public Material DefaultModelMaterial => defaultModelMaterial; - - [SerializeField] - [Tooltip("An override model to display for this specific controller.")] - private GameObject overrideModel; - - /// - /// The controller model prefab to be rendered. - /// - public GameObject OverrideControllerModel => overrideModel; - - [SerializeField] - [Tooltip("The concrete Controller Visualizer component to use on the rendered controller model.")] - [Implements(typeof(IMixedRealityControllerVisualizer), TypeGrouping.ByNamespaceFlat)] - private SystemType controllerVisualizationType; - - /// - /// The concrete Controller Visualizer component to use on the rendered controller model - /// - public SystemType ControllerVisualizationType - { - get => controllerVisualizationType; - private set => controllerVisualizationType = value; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs.meta deleted file mode 100644 index 5195bb8d4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityControllerVisualizationSetting.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 47b950ed46534082a4eacaa769c11eb9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs deleted file mode 100644 index c3d9e9ac5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Eye Tracking Profile", fileName = "MixedRealityEyeTrackingProfile", order = (int)CreateProfileMenuItemIndices.EyeTracking)] - [MixedRealityServiceProfile(requiredTypes: new Type[] { typeof(IMixedRealityEyeGazeDataProvider), typeof(IMixedRealityEyeSaccadeProvider) })] - public class MixedRealityEyeTrackingProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("Use smoothed eye tracking signal.")] - private bool smoothEyeTracking = false; - - /// - /// Use smoothed eye tracking signal. - /// - public bool SmoothEyeTracking => smoothEyeTracking; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs.meta deleted file mode 100644 index 4412cf7d9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityEyeTrackingProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e534d3d8fbada634785d567d8fe8562c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs deleted file mode 100644 index 6fde21217..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Hand Tracking Profile", fileName = "MixedRealityHandTrackingProfile", order = (int)CreateProfileMenuItemIndices.HandTracking)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/HandTracking.html")] - public class MixedRealityHandTrackingProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("The joint prefab to use.")] - private GameObject jointPrefab = null; - - [SerializeField] - [Tooltip("The joint prefab to use for palm.")] - private GameObject palmPrefab = null; - - [SerializeField] - [Tooltip("The joint prefab to use for the index tip (point of interaction.")] - private GameObject fingertipPrefab = null; - - /// - /// The joint prefab to use. - /// - public GameObject JointPrefab => jointPrefab; - - /// - /// The joint prefab to use for palm - /// - public GameObject PalmJointPrefab => palmPrefab; - - /// - /// The joint prefab to use for finger tip - /// - public GameObject FingerTipPrefab => fingertipPrefab; - - [SerializeField] - [Tooltip("If this is not null and hand system supports hand meshes, use this mesh to render hand mesh.")] - private GameObject handMeshPrefab = null; - - /// - /// The hand mesh prefab to use to render the hand - /// - public GameObject HandMeshPrefab => handMeshPrefab; - - /// - /// The hand mesh visualization enable/disable state of the current application mode. - /// - /// - /// If this property is called while in-editor, this will only affect the in-editor settings - /// (i.e. the SupportedApplicationModes.Editor flag of HandMeshVisualizationModes). - /// If this property is called while in-player, this will only affect the in-player settings - /// (i.e. the SupportedApplicationModes.Player flag of HandMeshVisualizationModes). - /// - public bool EnableHandMeshVisualization - { - get => IsSupportedApplicationMode(handMeshVisualizationModes); - set => handMeshVisualizationModes = UpdateSupportedApplicationMode(value, handMeshVisualizationModes); - } - - /// - /// The hand joint visualization enable/disable state of the current application mode. - /// - /// - /// If this property is called while in-editor, this will only affect the in-editor settings - /// (i.e. the SupportedApplicationModes.Editor flag of HandJointVisualizationModes). - /// If this property is called while in-player, this will only affect the in-player settings - /// (i.e. the SupportedApplicationModes.Player flag of HandJointVisualizationModes). - /// - public bool EnableHandJointVisualization - { - get => IsSupportedApplicationMode(handJointVisualizationModes); - set => handJointVisualizationModes = UpdateSupportedApplicationMode(value, handJointVisualizationModes); - } - - [EnumFlags] - [SerializeField] - [Tooltip("The application modes in which hand mesh visualizations will display. " + - "Will only show if the system provides hand mesh data. Note: this could reduce performance")] - private SupportedApplicationModes handMeshVisualizationModes = 0; - public SupportedApplicationModes HandMeshVisualizationModes - { - get => handMeshVisualizationModes; - set => handMeshVisualizationModes = value; - } - - [EnumFlags] - [SerializeField] - [Tooltip("The application modes in which hand joint visualizations will display. " + - "Will only show if the system provides joint data. Note: this could reduce performance")] - private SupportedApplicationModes handJointVisualizationModes = 0; - public SupportedApplicationModes HandJointVisualizationModes - { - get => handJointVisualizationModes; - set => handJointVisualizationModes = value; - } - - /// - /// Returns true if the modes specified by the specified SupportedApplicationModes matches - /// the current mode that the code is running in. - /// - /// - /// For example, if the code is currently running in editor mode (for testing in-editor - /// simulation), this would return true if modes contained the SupportedApplicationModes.Editor - /// bit. - /// - private static bool IsSupportedApplicationMode(SupportedApplicationModes modes) - { -#if UNITY_EDITOR - return (modes & SupportedApplicationModes.Editor) != 0; -#else // !UNITY_EDITOR - return (modes & SupportedApplicationModes.Player) != 0; -#endif - } - - /// - /// Updates the given SupportedApplicationModes by setting the bit associated with the - /// currently active application mode. - /// - /// - /// For example, if the code is currently running in editor mode (for testing in-editor - /// simulation), and modes is currently SupportedApplicationModes.Player | SupportedApplicationModes.Editor - /// and enabled is 'false', this would return SupportedApplicationModes.Player. - /// - private static SupportedApplicationModes UpdateSupportedApplicationMode(bool enabled, SupportedApplicationModes modes) - { -#if UNITY_EDITOR - var bitValue = enabled ? SupportedApplicationModes.Editor : 0; - return (modes & ~SupportedApplicationModes.Editor) | bitValue; -#else // !UNITY_EDITOR - var bitValue = enabled ? SupportedApplicationModes.Player : 0; - return (modes & ~SupportedApplicationModes.Player) | bitValue; -#endif - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs.meta deleted file mode 100644 index 5229b4f26..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityHandTrackingProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8275efdbe76bdff49a97a8e82fba118d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs deleted file mode 100644 index e8752eea9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs +++ /dev/null @@ -1,442 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Maps the capabilities of controllers, linking the Physical inputs of a controller to a Logical construct in a runtime project - /// - /// - /// One definition should exist for each physical device input, such as buttons, triggers, joysticks, dpads, and more. - /// - [Serializable] - public class MixedRealityInteractionMapping - { - /// - /// The constructor for a new Interaction Mapping definition - /// - /// Identity for mapping - /// The description of the interaction mapping. - /// The axis that the mapping operates on, also denotes the data type for the mapping - /// The physical input device / control - /// Optional horizontal or single axis value to get axis data from Unity's old input system. - /// Optional vertical axis value to get axis data from Unity's old input system. - /// Optional horizontal axis invert option. - /// Optional vertical axis invert option. - public MixedRealityInteractionMapping(uint id, string description, AxisType axisType, DeviceInputType inputType, string axisCodeX = "", string axisCodeY = "", bool invertXAxis = false, bool invertYAxis = false) - : this(id, description, axisType, inputType, MixedRealityInputAction.None, KeyCode.None, axisCodeX, axisCodeY, invertXAxis, invertYAxis) { } - - /// - /// The constructor for a new Interaction Mapping definition - /// - /// Identity for mapping - /// The description of the interaction mapping. - /// The axis that the mapping operates on, also denotes the data type for the mapping - /// The physical input device / control - /// Optional KeyCode value to get input from Unity's old input system - public MixedRealityInteractionMapping(uint id, string description, AxisType axisType, DeviceInputType inputType, KeyCode keyCode) - : this(id, description, axisType, inputType, MixedRealityInputAction.None, keyCode) { } - - /// - /// The constructor for a new Interaction Mapping definition - /// - /// Identity for mapping - /// The description of the interaction mapping. - /// The axis that the mapping operates on, also denotes the data type for the mapping - /// The physical input device / control - /// The logical MixedRealityInputAction that this input performs - /// Optional KeyCode value to get input from Unity's old input system - /// Optional horizontal or single axis value to get axis data from Unity's old input system. - /// Optional vertical axis value to get axis data from Unity's old input system. - /// Optional horizontal axis invert option. - /// Optional vertical axis invert option. - public MixedRealityInteractionMapping(uint id, string description, AxisType axisType, DeviceInputType inputType, MixedRealityInputAction inputAction, KeyCode keyCode = KeyCode.None, string axisCodeX = "", string axisCodeY = "", bool invertXAxis = false, bool invertYAxis = false) - { - this.id = id; - this.description = description; - this.axisType = axisType; - this.inputType = inputType; - this.inputAction = inputAction; - this.keyCode = keyCode; - this.axisCodeX = axisCodeX; - this.axisCodeY = axisCodeY; - this.invertXAxis = invertXAxis; - this.invertYAxis = invertYAxis; - - rawData = null; - boolData = false; - floatData = 0f; - vector2Data = Vector2.zero; - positionData = Vector3.zero; - rotationData = Quaternion.identity; - poseData = MixedRealityPose.ZeroIdentity; - changed = false; - } - - public MixedRealityInteractionMapping(MixedRealityInteractionMapping mixedRealityInteractionMapping) - : this(mixedRealityInteractionMapping.id, - mixedRealityInteractionMapping.Description, - mixedRealityInteractionMapping.AxisType, - mixedRealityInteractionMapping.InputType, - mixedRealityInteractionMapping.MixedRealityInputAction, - mixedRealityInteractionMapping.keyCode, - mixedRealityInteractionMapping.axisCodeX, - mixedRealityInteractionMapping.axisCodeY, - mixedRealityInteractionMapping.invertXAxis, - mixedRealityInteractionMapping.invertYAxis) { } - - #region Interaction Properties - - [SerializeField] - [Tooltip("The Id assigned to the Interaction.")] - private uint id; - - /// - /// The Id assigned to the Interaction. - /// - public uint Id => id; - - [SerializeField] - [Tooltip("The description of the interaction mapping.")] - private string description; - - /// - /// The description of the interaction mapping. - /// - public string Description => description; - - [SerializeField] - [Tooltip("The axis type of the button, e.g. Analogue, Digital, etc.")] - private AxisType axisType; - - /// - /// The axis type of the button, e.g. Analogue, Digital, etc. - /// - public AxisType AxisType => axisType; - - [SerializeField] - [Tooltip("The primary action of the input as defined by the controller SDK.")] - private DeviceInputType inputType; - - /// - /// The primary action of the input as defined by the controller SDK. - /// - public DeviceInputType InputType => inputType; - - [SerializeField] - [Tooltip("Action to be raised to the Input Manager when the input data has changed.")] - private MixedRealityInputAction inputAction; - - /// - /// Action to be raised to the Input Manager when the input data has changed. - /// - public MixedRealityInputAction MixedRealityInputAction - { - get { return inputAction; } - internal set { inputAction = value; } - } - - [SerializeField] - [Tooltip("Optional KeyCode value to get input from Unity's old input system.")] - private KeyCode keyCode; - - /// - /// Optional KeyCode value to get input from Unity's old input system. - /// - public KeyCode KeyCode => keyCode; - - [SerializeField] - [Tooltip("Optional horizontal or single axis value to get axis data from Unity's old input system.")] - private string axisCodeX; - - /// - /// Optional horizontal or single axis value to get axis data from Unity's old input system. - /// - public string AxisCodeX => axisCodeX; - - [SerializeField] - [Tooltip("Optional vertical axis value to get axis data from Unity's old input system.")] - private string axisCodeY; - - /// - /// Optional vertical axis value to get axis data from Unity's old input system. - /// - public string AxisCodeY => axisCodeY; - - [SerializeField] - [Tooltip("Should the X axis be inverted?")] - private bool invertXAxis = false; - - /// - /// Should the X axis be inverted? - /// - /// - /// Only valid for and inputs. - /// - public bool InvertXAxis - { - get { return invertXAxis; } - set - { - if (AxisType != AxisType.SingleAxis && AxisType != AxisType.DualAxis) - { - Debug.LogWarning("Inverted X axis only valid for Single or Dual Axis inputs."); - return; - } - - invertXAxis = value; - } - } - - [SerializeField] - [Tooltip("Should the Y axis be inverted?")] - private bool invertYAxis = false; - - /// - /// Should the Y axis be inverted? - /// - /// - /// Only valid for inputs. - /// - public bool InvertYAxis - { - get { return invertYAxis; } - set - { - if (AxisType != AxisType.DualAxis) - { - Debug.LogWarning("Inverted Y axis only valid for Dual Axis inputs."); - return; - } - - invertYAxis = value; - } - } - - private bool changed; - - /// - /// Has the value changed since the last reading. - /// - public bool Changed - { - get - { - bool returnValue = changed; - - if (changed) - { - changed = false; - } - - return returnValue; - } - private set - { - changed = value; - } - } - - #endregion Interaction Properties - - #region Definition Data Items - - private object rawData; - - private bool boolData; - - private float floatData; - - private Vector2 vector2Data; - - private Vector3 positionData; - - private Quaternion rotationData; - - private MixedRealityPose poseData; - - #endregion Definition Data Items - - #region Data Properties - - /// - /// The Raw (object) data value. - /// - /// Only supported for a Raw mapping axis type - public object RawData - { - get - { - return rawData; - } - - set - { - if (AxisType != AxisType.Raw) - { - Debug.LogError($"SetRawValue is only valid for AxisType.Raw InteractionMappings\nPlease check the {InputType} mapping for the current controller"); - } - - Changed = rawData != value; - rawData = value; - } - } - - /// - /// The Bool data value. - /// - /// Only supported for a Digital mapping axis type - public bool BoolData - { - get - { - return boolData; - } - - set - { - if (AxisType != AxisType.Digital && AxisType != AxisType.SingleAxis && AxisType != AxisType.DualAxis) - { - Debug.LogError($"SetBoolValue is only valid for AxisType.Digital, AxisType.SingleAxis, or AxisType.DualAxis InteractionMappings\nPlease check the {InputType} mapping for the current controller"); - } - - Changed = boolData != value; - boolData = value; - } - } - - /// - /// The Float data value. - /// - /// Only supported for a SingleAxis mapping axis type - public float FloatData - { - get - { - return floatData; - } - - set - { - if (AxisType != AxisType.SingleAxis) - { - Debug.LogError($"SetFloatValue is only valid for AxisType.SingleAxis InteractionMappings\nPlease check the {InputType} mapping for the current controller"); - } - - if (invertXAxis) - { - Changed = !floatData.Equals(value * -1f); - floatData = value * -1f; - } - else - { - Changed = !floatData.Equals(value); - floatData = value; - } - } - } - - /// - /// The Vector2 data value. - /// - /// Only supported for a DualAxis mapping axis type - public Vector2 Vector2Data - { - get - { - return vector2Data; - } - - set - { - if (AxisType != AxisType.DualAxis) - { - Debug.LogError($"SetVector2Value is only valid for AxisType.DualAxis InteractionMappings\nPlease check the {InputType} mapping for the current controller"); - } - - Vector2 newValue = value * new Vector2(invertXAxis ? -1f : 1f, invertYAxis ? -1f : 1f); - Changed = vector2Data != newValue; - vector2Data = newValue; - } - } - - /// - /// The ThreeDof Vector3 Position data value. - /// - /// Only supported for a ThreeDof mapping axis type - public Vector3 PositionData - { - get - { - return positionData; - } - - set - { - if (AxisType != AxisType.ThreeDofPosition) - { - { - Debug.LogError($"SetPositionValue is only valid for AxisType.ThreeDoFPosition InteractionMappings\nPlease check the {InputType} mapping for the current controller"); - } - } - - Changed = positionData != value; - positionData = value; - } - } - - /// - /// The ThreeDof Quaternion Rotation data value. - /// - /// Only supported for a ThreeDof mapping axis type - public Quaternion RotationData - { - get - { - return rotationData; - } - - set - { - if (AxisType != AxisType.ThreeDofRotation) - { - Debug.LogError($"SetRotationValue is only valid for AxisType.ThreeDoFRotation InteractionMappings\nPlease check the {InputType} mapping for the current controller"); - } - - Changed = rotationData != value; - rotationData = value; - } - } - - /// - /// The Pose data value. - /// - /// Only supported for a SixDof mapping axis type - public MixedRealityPose PoseData - { - get - { - return poseData; - } - set - { - if (AxisType != AxisType.SixDof) - { - Debug.LogError($"SetPoseValue is only valid for AxisType.SixDoF InteractionMappings\nPlease check the {InputType} mapping for the current controller"); - } - - Changed = poseData != value; - - poseData = value; - positionData = poseData.Position; - rotationData = poseData.Rotation; - } - } - - #endregion Data Properties - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs.meta deleted file mode 100644 index 2766a169c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/MixedRealityInteractionMapping.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0e42e1b320254879911ebf94fc274939 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs deleted file mode 100644 index be181f82f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// The SDKType lists the XR SDKs that are supported by the Mixed Reality Toolkit. - /// Initially, this lists proposed SDKs, not all may be implemented at this time (please see ReleaseNotes for more details) - /// - public enum SDKType - { - /// - /// No specified type or Standalone / non-XR type - /// - None = 0, - /// - /// Undefined SDK. - /// - Other, - /// - /// The Windows 10 Mixed reality SDK provided by the Universal Windows Platform (UWP), for Immersive MR headsets and HoloLens. - /// - WindowsMR, - /// - /// The OpenVR platform provided by Unity (does not support the downloadable SteamVR SDK). - /// - OpenVR, - /// - /// The OpenXR platform. SDK to be determined once released. - /// - OpenXR - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs.meta deleted file mode 100644 index cd6006e9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SDKType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 958811dd1ef749ffa71f909abe458eb2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs deleted file mode 100644 index 750a6fdf6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - // todo: remove this.... it requires customization to add new device types - - /// - /// The SDKType lists the XR SDKs that are supported by the Mixed Reality Toolkit. - /// Initially, this lists proposed SDKs, not all may be implemented at this time (please see ReleaseNotes for more details) - /// - [Flags] - public enum SupportedControllerType - { - GenericOpenVR = 1 << 0, - ViveWand = 1 << 1, - ViveKnuckles = 1 << 2, - OculusTouch = 1 << 3, - OculusRemote = 1 << 4, - WindowsMixedReality = 1 << 5, - GenericUnity = 1 << 6, - Xbox = 1 << 7, - TouchScreen = 1 << 8, - Mouse = 1 << 9, - ArticulatedHand = 1 << 10, - GGVHand = 1 << 11 - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs.meta deleted file mode 100644 index 07b18afa7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/SupportedControllerType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4d7b06c23db4419b90fe7d8192856e91 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs deleted file mode 100644 index 71fe0c0b3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// The Tracking State defines how a device is currently being tracked. - /// This enables developers to be able to handle non-tracked situations and react accordingly. - /// - /// - /// Tracking is being defined as receiving sensor (positional and/or rotational) data from the device. - /// - public enum TrackingState - { - /// - /// The device does not support tracking (ex: a traditional game controller). - /// - NotApplicable = 0, - /// - /// The device is not tracked. - /// - NotTracked, - /// - /// The device is tracked (positionally and/or rotationally). - /// - /// - /// Some devices provide additional details regarding the accuracy of the tracking. - /// - Tracked - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs.meta deleted file mode 100644 index b14e1a59c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Devices/TrackingState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1866a0c9bb60461ba5c3d76f75951794 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics.meta deleted file mode 100644 index 384f91cf0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e2cc991907254864d8d1847b3b5b2854 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs deleted file mode 100644 index d47b76b9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using UnityEngine.Serialization; - -namespace Microsoft.MixedReality.Toolkit.Diagnostics -{ - /// - /// Configuration profile settings for setting up diagnostics. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Diagnostics Profile", fileName = "MixedRealityDiagnosticsProfile", order = (int)CreateProfileMenuItemIndices.Diagnostics)] - [MixedRealityServiceProfile(typeof(IMixedRealityDiagnosticsSystem))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Diagnostics/DiagnosticsSystemGettingStarted.html")] - public class MixedRealityDiagnosticsProfile : BaseMixedRealityProfile - { - [SerializeField] - [FormerlySerializedAs("visible")] - [Tooltip("Display all enabled diagnostics")] - private bool showDiagnostics = true; - - /// - /// Show or hide diagnostic visualizations. - /// - public bool ShowDiagnostics => showDiagnostics; - - [SerializeField] - [Tooltip("Display profiler")] - private bool showProfiler = true; - - /// - /// Show or hide the profiler UI. - /// - public bool ShowProfiler => showProfiler; - - [SerializeField] - [Tooltip("Display the frame info (per frame stats).")] - private bool showFrameInfo = true; - - /// - /// Show or hide the frame info (per frame stats). - /// - public bool ShowFrameInfo => showFrameInfo; - - [SerializeField] - [Tooltip("Display the memory stats (used, peak, and limit).")] - private bool showMemoryStats = true; - - /// - /// Show or hide the memory stats (used, peak, and limit). - /// - public bool ShowMemoryStats => showMemoryStats; - - [SerializeField] - [FormerlySerializedAs("frameRateDuration")] - [Tooltip("The amount of time, in seconds, to collect frames for frame rate calculation.")] - [Range(0, 5)] - private float frameSampleRate = 0.1f; - - /// - /// The amount of time, in seconds, to collect frames for frame rate calculation. - /// - public float FrameSampleRate => frameSampleRate; - - [SerializeField] - [Tooltip("What part of the view port to anchor the window to.")] - private TextAnchor windowAnchor = TextAnchor.LowerCenter; - - /// - /// What part of the view port to anchor the window to. - /// - public TextAnchor WindowAnchor => windowAnchor; - - [SerializeField] - [Tooltip("The offset from the view port center applied based on the window anchor selection.")] - private Vector2 windowOffset = new Vector2(0.1f, 0.1f); - - /// - /// The offset from the view port center applied based on the window anchor selection. - /// - public Vector2 WindowOffset => windowOffset; - - [SerializeField] - [Tooltip("Use to scale the window size up or down, can simulate a zooming effect.")] - private float windowScale = 1.0f; - - /// - /// Use to scale the window size up or down, can simulate a zooming effect. - /// - public float WindowScale => windowScale; - - [SerializeField] - [Tooltip("How quickly to interpolate the window towards its target position and rotation.")] - private float windowFollowSpeed = 5.0f; - - /// - /// How quickly to interpolate the window towards its target position and rotation. - /// - public float WindowFollowSpeed => windowFollowSpeed; - - [SerializeField] - [Tooltip("A material that the diagnostics system can use to render objects with instanced color support.")] - private Material defaultInstancedMaterial = null; - - /// - /// A material that the diagnostics system can use to render objects with instanced color support. - /// A asset reference is required here to make sure the shader permutation is pulled into player builds. - /// - public Material DefaultInstancedMaterial => defaultInstancedMaterial; - - [SerializeField] - [Tooltip("If the diagnostics profiler should be visible while a mixed reality capture is happening on HoloLens.")] - private bool showProfilerDuringMRC = false; - - /// - /// If the diagnostics profiler should be visible while a mixed reality capture is happening on HoloLens. - /// - /// This is not usually recommended, as MRC can have an effect on an app's frame rate. - public bool ShowProfilerDuringMRC => showProfilerDuringMRC; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs.meta deleted file mode 100644 index 459ac4255..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Diagnostics/MixedRealityDiagnosticsProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8c2d00f2d26cc124caed106ffbfe3f06 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem.meta deleted file mode 100644 index e3d51b44b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1f295446ce9f4343b200ce4d0855d3a6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs deleted file mode 100644 index 0a3baf0cf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [Serializable] - public class AnimatedCursorStateData : AnimatedCursorData { } - - [Serializable] - public class AnimatedCursorContextData : AnimatedCursorData { } - - /// - /// Data struct for cursor state information for the Animated Cursor, which leverages the Unity animation system. - /// This defines a modification to an Unity animation parameter, based on cursor state. - /// - [Serializable] - public class AnimatedCursorData - { - - [SerializeField] - [Tooltip("The name of this specific cursor state.")] - protected string name; - - /// - /// The name of this specific cursor state. - /// - public string Name => name; - - [SerializeField] - [Tooltip("The Cursor State for this specific animation.")] - protected T cursorState; - - /// - /// The Cursor State for this specific animation. - /// - public T CursorState => cursorState; - - [SerializeField] - [Tooltip("Animator parameter definition for this cursor state.")] - protected AnimatorParameter parameter; - - /// - /// Animator parameter definition for this cursor state. - /// - public AnimatorParameter Parameter => parameter; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs.meta deleted file mode 100644 index 4a4d27407..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/AnimatedCursorData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b32a2d63c851467ca803851b4bfc2b24 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs deleted file mode 100644 index 392b44380..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Enum for current cursor context - /// - public enum CursorContextEnum - { - None = -1, - MoveEastWest, - MoveNorthSouth, - MoveNorthwestSoutheast, - MoveNortheastSouthwest, - MoveCross, - RotateEastWest, - RotateNorthSouth, - Contextual - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs.meta deleted file mode 100644 index 9d111853e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorContextEnum.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d3d0769d312b177439f3415aad3486fa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs deleted file mode 100644 index e4f1fbe39..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Enum for current cursor state - /// - public enum CursorStateEnum - { - /// - /// Useful for releasing external override. - /// See CursorStateEnum.Contextual - /// - None = -1, - /// - /// Not IsHandDetected OR HasTeleportIntent - /// - Observe, - /// - /// Not IsHandDetected AND not IsPointerDown AND TargetedObject exists OR HasTeleportIntent AND Teleport Surface IsValid - /// - ObserveHover, - /// - /// IsHandDetected AND not IsPointerDown AND TargetedObject is NULL - /// - Interact, - /// - /// IsHandDetected AND not IsPointerDown AND TargetedObject exists - /// - InteractHover, - /// - /// IsHandDetected AND IsPointerDown - /// - Select, - /// - /// Available for use by classes that extend Cursor. - /// No logic for setting Release state exists in the base Cursor class. - /// - Release, - /// - /// Allows for external override - /// - Contextual - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs.meta deleted file mode 100644 index f884a8054..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/CursorStateEnum.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 25bc355c777d4df790f9455a93d6333a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs deleted file mode 100644 index cef640cd2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; -using UnityEngine.Events; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Data class that maps s to s wired up in the inspector. - /// - [Serializable] - public struct InputActionEventPair - { - /// - /// Constructor. - /// - public InputActionEventPair(MixedRealityInputAction inputAction, UnityEvent unityEvent) - { - this.inputAction = inputAction; - this.unityEvent = unityEvent; - } - - [SerializeField] - [Tooltip("The MixedRealityInputAction to listen for to invoke the UnityEvent.")] - private MixedRealityInputAction inputAction; - - /// - /// The to listen for to invoke the . - /// - public MixedRealityInputAction InputAction => inputAction; - - [SerializeField] - [Tooltip("The UnityEvent to invoke when MixedRealityInputAction is raised.")] - private UnityEvent unityEvent; - - /// - /// The to invoke when is raised. - /// - public UnityEvent UnityEvent => unityEvent; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs.meta deleted file mode 100644 index 9e774cc44..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionEventPair.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d97d1c3ab07b4ed4bbfc253887cfcf2e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs deleted file mode 100644 index 49300bee5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Generic Input Action Rule for raising actions based on specific criteria. - /// - [Serializable] - public struct InputActionRuleDigital : IInputActionRule - { - /// - /// Constructor. - /// - /// The Base Action that the rule will listen to. - /// The Action to raise if the criteria is met. - /// The criteria to check against for determining if the action should be raised. - public InputActionRuleDigital(MixedRealityInputAction baseAction, MixedRealityInputAction ruleAction, bool criteria) - { - this.baseAction = baseAction; - this.ruleAction = ruleAction; - this.criteria = criteria; - } - - [SerializeField] - [Tooltip("The Base Action that the rule will listen to.")] - private MixedRealityInputAction baseAction; - - /// - public MixedRealityInputAction BaseAction => baseAction; - - [SerializeField] - [Tooltip("The Action to raise if the criteria is met.")] - private MixedRealityInputAction ruleAction; - - /// - public MixedRealityInputAction RuleAction => ruleAction; - - [SerializeField] - [Tooltip("The criteria to check against for determining if the action should be raised.")] - private bool criteria; - - /// - public bool Criteria => criteria; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs.meta deleted file mode 100644 index 5e0de3019..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDigital.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 314f71e5252e4aabbf166d5840a5728b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs deleted file mode 100644 index d2cef9681..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Generic Input Action Rule for raising actions based on specific criteria. - /// - [Serializable] - public struct InputActionRuleDualAxis : IInputActionRule - { - /// - /// Constructor. - /// - /// The Base Action that the rule will listen to. - /// The Action to raise if the criteria is met. - /// The criteria to check against for determining if the action should be raised. - public InputActionRuleDualAxis(MixedRealityInputAction baseAction, MixedRealityInputAction ruleAction, Vector2 criteria) - { - this.baseAction = baseAction; - this.ruleAction = ruleAction; - this.criteria = criteria; - } - - [SerializeField] - [Tooltip("The Base Action that the rule will listen to.")] - private MixedRealityInputAction baseAction; - - /// - public MixedRealityInputAction BaseAction => baseAction; - - [SerializeField] - [Tooltip("The Action to raise if the criteria is met.")] - private MixedRealityInputAction ruleAction; - - /// - public MixedRealityInputAction RuleAction => ruleAction; - - [SerializeField] - [Tooltip("The criteria to check against for determining if the action should be raised.")] - private Vector2 criteria; - - /// - public Vector2 Criteria => criteria; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs.meta deleted file mode 100644 index fcaffca2e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleDualAxis.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 257fe64c9bf54235b76d1505266122b2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs deleted file mode 100644 index 46fac9caf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Generic Input Action Rule for raising actions based on specific criteria. - /// - [Serializable] - public struct InputActionRulePoseAxis : IInputActionRule - { - /// - /// Constructor. - /// - /// The Base Action that the rule will listen to. - /// The Action to raise if the criteria is met. - /// The criteria to check against for determining if the action should be raised. - public InputActionRulePoseAxis(MixedRealityInputAction baseAction, MixedRealityInputAction ruleAction, MixedRealityPose criteria) - { - this.baseAction = baseAction; - this.ruleAction = ruleAction; - this.criteria = criteria; - } - - [SerializeField] - [Tooltip("The Base Action that the rule will listen to.")] - private MixedRealityInputAction baseAction; - - /// - public MixedRealityInputAction BaseAction => baseAction; - - [SerializeField] - [Tooltip("The Action to raise if the criteria is met.")] - private MixedRealityInputAction ruleAction; - - /// - public MixedRealityInputAction RuleAction => ruleAction; - - [SerializeField] - [Tooltip("The criteria to check against for determining if the action should be raised.")] - private MixedRealityPose criteria; - - /// - public MixedRealityPose Criteria => criteria; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs.meta deleted file mode 100644 index 4f0cbda6b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRulePoseAxis.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0c13b12f17d249ceb2757ea5837f9ed7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs deleted file mode 100644 index 0cad75db2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Generic Input Action Rule for raising actions based on specific criteria. - /// - [Serializable] - public struct InputActionRuleQuaternionAxis : IInputActionRule - { - /// - /// Constructor. - /// - /// The Base Action that the rule will listen to. - /// The Action to raise if the criteria is met. - /// The criteria to check against for determining if the action should be raised. - public InputActionRuleQuaternionAxis(MixedRealityInputAction baseAction, MixedRealityInputAction ruleAction, Quaternion criteria) - { - this.baseAction = baseAction; - this.ruleAction = ruleAction; - this.criteria = criteria; - } - - [SerializeField] - [Tooltip("The Base Action that the rule will listen to.")] - private MixedRealityInputAction baseAction; - - /// - public MixedRealityInputAction BaseAction => baseAction; - - [SerializeField] - [Tooltip("The Action to raise if the criteria is met.")] - private MixedRealityInputAction ruleAction; - - /// - public MixedRealityInputAction RuleAction => ruleAction; - - [SerializeField] - [Tooltip("The criteria to check against for determining if the action should be raised.")] - private Quaternion criteria; - - /// - public Quaternion Criteria => criteria; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs.meta deleted file mode 100644 index 6e24339da..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleQuaternionAxis.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a3a544a8ca494fa797c3a7334f98298c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs deleted file mode 100644 index 1f04b699f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Generic Input Action Rule for raising actions based on specific criteria. - /// - [Serializable] - public struct InputActionRuleSingleAxis : IInputActionRule - { - /// - /// Constructor. - /// - /// The Base Action that the rule will listen to. - /// The Action to raise if the criteria is met. - /// The criteria to check against for determining if the action should be raised. - public InputActionRuleSingleAxis(MixedRealityInputAction baseAction, MixedRealityInputAction ruleAction, float criteria) - { - this.baseAction = baseAction; - this.ruleAction = ruleAction; - this.criteria = criteria; - } - - [SerializeField] - [Tooltip("The Base Action that the rule will listen to.")] - private MixedRealityInputAction baseAction; - - /// - public MixedRealityInputAction BaseAction => baseAction; - - [SerializeField] - [Tooltip("The Action to raise if the criteria is met.")] - private MixedRealityInputAction ruleAction; - - /// - public MixedRealityInputAction RuleAction => ruleAction; - - [SerializeField] - [Tooltip("The criteria to check against for determining if the action should be raised.")] - private float criteria; - - /// - public float Criteria => criteria; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs.meta deleted file mode 100644 index 3364d73ab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleSingleAxis.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b95f48a8b6244cc79828e1e956ffdc67 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs deleted file mode 100644 index b485ac23a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Generic Input Action Rule for raising actions based on specific criteria. - /// - [Serializable] - public struct InputActionRuleVectorAxis : IInputActionRule - { - /// - /// Constructor. - /// - /// The Base Action that the rule will listen to. - /// The Action to raise if the criteria is met. - /// The criteria to check against for determining if the action should be raised. - public InputActionRuleVectorAxis(MixedRealityInputAction baseAction, MixedRealityInputAction ruleAction, Vector3 criteria) - { - this.baseAction = baseAction; - this.ruleAction = ruleAction; - this.criteria = criteria; - } - - [SerializeField] - [Tooltip("The Base Action that the rule will listen to.")] - private MixedRealityInputAction baseAction; - - /// - public MixedRealityInputAction BaseAction => baseAction; - - [SerializeField] - [Tooltip("The Action to raise if the criteria is met.")] - private MixedRealityInputAction ruleAction; - - /// - public MixedRealityInputAction RuleAction => ruleAction; - - [SerializeField] - [Tooltip("The criteria to check against for determining if the action should be raised.")] - private Vector3 criteria; - - /// - public Vector3 Criteria => criteria; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs.meta deleted file mode 100644 index 210980547..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/InputActionRuleVectorAxis.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4fbc1b935f564f83aac269fb6c600920 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs deleted file mode 100644 index 39b5da4b4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; -using UnityEngine.Events; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Keyword/UnityEvent pair that ties voice input to UnityEvents wired up in the inspector. - /// - [Serializable] - public struct KeywordAndResponse - { - /// - /// Constructor. - /// - /// The keyword to listen for. - /// The handler to be invoked when the keyword is recognized. - public KeywordAndResponse(string keyword, UnityEvent response) - { - this.keyword = keyword; - this.response = response; - } - - [SerializeField] - [Tooltip("The keyword to listen for.")] - private string keyword; - - /// - /// The keyword to listen for. - /// - public string Keyword => keyword; - - [SerializeField] - [Tooltip("The handler to be invoked when the keyword is recognized.")] - private UnityEvent response; - - /// - /// The handler to be invoked when the keyword is recognized. - /// - public UnityEvent Response => response; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs.meta deleted file mode 100644 index cb16cdcc4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/KeywordAndResponse.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 25ecffaec23b402193f8b6c3fcc37721 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs deleted file mode 100644 index dacc86455..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Data structure for mapping gestures to s that can be raised by the Input System. - /// - [Serializable] - public struct MixedRealityGestureMapping - { - /// - /// Constructor. - /// - public MixedRealityGestureMapping(string description, GestureInputType gestureType, MixedRealityInputAction action) - { - this.description = description; - this.gestureType = gestureType; - this.action = action; - } - - [SerializeField] - private string description; - - /// - /// Simple, human readable description of the gesture. - /// - public string Description => description; - - [SerializeField] - private GestureInputType gestureType; - - /// - /// Type of Gesture. - /// - public GestureInputType GestureType => gestureType; - - [SerializeField] - private MixedRealityInputAction action; - - /// - /// Action for the associated gesture. - /// - public MixedRealityInputAction Action => action; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs.meta deleted file mode 100644 index c2cfcd3aa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGestureMapping.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a90ce54668fe43a4ae6cfd9283c078b9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs deleted file mode 100644 index c107ac933..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Windows.Input; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Configuration profile settings for setting up and consuming Input Actions. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Gestures Profile", fileName = "MixedRealityGesturesProfile", order = (int)CreateProfileMenuItemIndices.Gestures)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Gestures.html")] - public class MixedRealityGesturesProfile : BaseMixedRealityProfile - { - [EnumFlags] - [SerializeField] - [Tooltip("The recognizable Manipulation Gestures.")] - private WindowsGestureSettings manipulationGestures = 0; - - /// - /// The recognizable Manipulation Gestures. - /// - public WindowsGestureSettings ManipulationGestures => manipulationGestures; - - [EnumFlags] - [SerializeField] - [Tooltip("The recognizable Navigation Gestures.")] - private WindowsGestureSettings navigationGestures = 0; - - /// - /// The recognizable Navigation Gestures. - /// - public WindowsGestureSettings NavigationGestures => navigationGestures; - - [SerializeField] - [Tooltip("Should the Navigation use Rails on start?\nNote: This can be changed at runtime to switch between the two Navigation settings.")] - private bool useRailsNavigation = false; - - public bool UseRailsNavigation => useRailsNavigation; - - [EnumFlags] - [SerializeField] - [Tooltip("The recognizable Rails Navigation Gestures.")] - private WindowsGestureSettings railsNavigationGestures = 0; - - /// - /// The recognizable Navigation Gestures. - /// - public WindowsGestureSettings RailsNavigationGestures => railsNavigationGestures; - - [SerializeField] - private AutoStartBehavior windowsGestureAutoStart = AutoStartBehavior.AutoStart; - - public AutoStartBehavior WindowsGestureAutoStart => windowsGestureAutoStart; - - [SerializeField] - private MixedRealityGestureMapping[] gestures = - { - new MixedRealityGestureMapping("Hold", GestureInputType.Hold, MixedRealityInputAction.None), - new MixedRealityGestureMapping("Navigation", GestureInputType.Navigation, MixedRealityInputAction.None), - new MixedRealityGestureMapping("Manipulation", GestureInputType.Manipulation, MixedRealityInputAction.None), - }; - - /// - /// The currently configured gestures for the application. - /// - public MixedRealityGestureMapping[] Gestures => gestures; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs.meta deleted file mode 100644 index e97cdbe0a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityGesturesProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7554812f08ec49e694a8d9d4ee235a9c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs deleted file mode 100644 index f075d703a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// An Input Action for mapping an action to an Input Sources Button, Joystick, Sensor, etc. - /// - [Serializable] - public struct MixedRealityInputAction : IEqualityComparer - { - /// - /// Constructor. - /// - public MixedRealityInputAction(uint id, string description, AxisType axisConstraint = AxisType.None) - { - this.id = id; - this.description = description; - this.axisConstraint = axisConstraint; - } - - public static MixedRealityInputAction None { get; } = new MixedRealityInputAction(0, "None"); - - /// - /// The Unique Id of this Input Action. - /// - public uint Id => id; - - [SerializeField] - private uint id; - - /// - /// A short description of the Input Action. - /// - public string Description => description; - - [SerializeField] - private string description; - - /// - /// The Axis constraint for the Input Action - /// - public AxisType AxisConstraint => axisConstraint; - - [SerializeField] - private AxisType axisConstraint; - - public static bool operator ==(MixedRealityInputAction left, MixedRealityInputAction right) - { - return left.Equals(right); - } - - public static bool operator !=(MixedRealityInputAction left, MixedRealityInputAction right) - { - return !left.Equals(right); - } - - #region IEqualityComparer Implementation - - bool IEqualityComparer.Equals(object left, object right) - { - if (ReferenceEquals(null, left) || ReferenceEquals(null, right)) { return false; } - if (!(left is MixedRealityInputAction) || !(right is MixedRealityInputAction)) { return false; } - return ((MixedRealityInputAction)left).Equals((MixedRealityInputAction)right); - } - - public bool Equals(MixedRealityInputAction other) - { - return Id == other.Id && - AxisConstraint == other.AxisConstraint; - } - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) { return false; } - return obj is MixedRealityInputAction && Equals((MixedRealityInputAction)obj); - } - - int IEqualityComparer.GetHashCode(object obj) - { - return obj is MixedRealityInputAction ? ((MixedRealityInputAction)obj).GetHashCode() : 0; - } - - public override int GetHashCode() - { - return $"{Id}.{AxisConstraint}".GetHashCode(); - } - - #endregion IEqualityComparer Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs.meta deleted file mode 100644 index 2463d97db..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputAction.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f3bb489e64434852a26a446c4efc841d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs deleted file mode 100644 index 2ff49bb75..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Input Action Rules Profile", fileName = "MixedRealityInputActionRulesProfile", order = (int)CreateProfileMenuItemIndices.InputActionRules)] - public class MixedRealityInputActionRulesProfile : BaseMixedRealityProfile - { - [SerializeField] - private InputActionRuleDigital[] inputActionRulesDigital = null; - - /// - /// All the Input Action Rules for based s - /// - public InputActionRuleDigital[] InputActionRulesDigital => inputActionRulesDigital; - - [SerializeField] - private InputActionRuleSingleAxis[] inputActionRulesSingleAxis = null; - - /// - /// All the Input Action Rules for based s - /// - public InputActionRuleSingleAxis[] InputActionRulesSingleAxis => inputActionRulesSingleAxis; - - [SerializeField] - private InputActionRuleDualAxis[] inputActionRulesDualAxis = null; - - /// - /// All the Input Action Rules for Vector2 based s - /// - public InputActionRuleDualAxis[] InputActionRulesDualAxis => inputActionRulesDualAxis; - - [SerializeField] - private InputActionRuleVectorAxis[] inputActionRulesVectorAxis = null; - - /// - /// All the Input Action Rules for Vector3 based s - /// - public InputActionRuleVectorAxis[] InputActionRulesVectorAxis => inputActionRulesVectorAxis; - - [SerializeField] - private InputActionRuleQuaternionAxis[] inputActionRulesQuaternionAxis = null; - - /// - /// All the Input Action Rules for Quaternion based s - /// - public InputActionRuleQuaternionAxis[] InputActionRulesQuaternionAxis => inputActionRulesQuaternionAxis; - - [SerializeField] - private InputActionRulePoseAxis[] inputActionRulesPoseAxis = null; - - /// - /// All the Input Action Rules for based s - /// - public InputActionRulePoseAxis[] InputActionRulesPoseAxis => inputActionRulesPoseAxis; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs.meta deleted file mode 100644 index 7dddf9085..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionRulesProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ee54661ca8af487c9db40e57d479fa48 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs deleted file mode 100644 index e28a6523c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Configuration profile settings for setting up and consuming Input Actions. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Input Actions Profile", fileName = "MixedRealityInputActionsProfile", order = (int)CreateProfileMenuItemIndices.InputActions)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/InputActions.html")] - public class MixedRealityInputActionsProfile : BaseMixedRealityProfile - { - private readonly string[] defaultInputActions = - { - "Select", - "Menu", - "Grip", - "Pointer", - "Walk", - "Look", - "Interact", - "Pickup", - "Inventory", - "ConversationSelect" - }; // Examples only, to be refined later. - - private readonly AxisType[] defaultInputActionsAxis = - { - AxisType.Digital, - AxisType.Digital, - AxisType.SixDof, - AxisType.SixDof, - AxisType.DualAxis, - AxisType.DualAxis, - AxisType.DualAxis, - AxisType.Digital, - AxisType.DualAxis, - AxisType.DualAxis - }; // Examples only, to be refined later - - [SerializeField] - [Tooltip("The list of actions users can do in your application.")] - private MixedRealityInputAction[] inputActions = - { - // 0 is reserved for "None" - new MixedRealityInputAction(1, "Select"), - new MixedRealityInputAction(2, "Menu"), - new MixedRealityInputAction(3, "Grip") - }; // Examples only, to be refined later - - /// - /// The list of actions users can do in your application. - /// - /// Input Actions are device agnostic and can be paired with any number of device inputs across all platforms. - public MixedRealityInputAction[] InputActions => inputActions; - - /// - /// Reset the current InputActions definitions to the Mixed Reality Toolkit defaults - /// If existing mappings exist, they will be preserved and pushed to the end of the array - /// - /// Default MRTK Actions plus any custom actions (if already configured) - public MixedRealityInputAction[] LoadMixedRealityToolKitDefaults() - { - var defaultActions = new List(); - bool exists = false; - - for (uint i = 0; i < defaultInputActions.Length; i++) - { - defaultActions.Add(new MixedRealityInputAction(i, defaultInputActions[i], defaultInputActionsAxis[i])); - } - - for (int i = 0; i < inputActions.Length; i++) - { - if (defaultActions.Contains(inputActions[i])) - { - exists = true; - } - - if (!exists) - { - defaultActions.Add(inputActions[i]); - } - - exists = false; - } - - return inputActions = defaultActions.ToArray(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs.meta deleted file mode 100644 index fc87ed8c0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputActionsProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d1a15d870c8b4e52acc4643bd258ed6e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs deleted file mode 100644 index 09ca3559a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using System.Globalization; -using System.Runtime.CompilerServices; -using UnityEngine; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.EditModeTests")] -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.PlayModeTests")] -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Configuration profile settings for setting up controller pointers. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Input System Profile", fileName = "MixedRealityInputSystemProfile", order = (int)CreateProfileMenuItemIndices.Input)] - [MixedRealityServiceProfile(typeof(IMixedRealityInputSystem))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Overview.html")] - public class MixedRealityInputSystemProfile : BaseMixedRealityProfile - { - [SerializeField] - private MixedRealityInputDataProviderConfiguration[] dataProviderConfigurations = System.Array.Empty(); - - /// - /// List of input data provider configurations to initialize and manage by the Input System registrar - /// - public MixedRealityInputDataProviderConfiguration[] DataProviderConfigurations - { - get { return dataProviderConfigurations; } - internal set { dataProviderConfigurations = value; } - } - - [SerializeField] - [Tooltip("The focus provider service concrete type to use when raycasting.")] - [Implements(typeof(IMixedRealityFocusProvider), TypeGrouping.ByNamespaceFlat)] - private SystemType focusProviderType; - - /// - /// The focus provider service concrete type to use when raycasting. - /// - public SystemType FocusProviderType - { - get { return focusProviderType; } - internal set { focusProviderType = value; } - } - - [SerializeField] - [Tooltip("The raycast provider service concrete type to use when raycasting.")] - [Implements(typeof(IMixedRealityRaycastProvider), TypeGrouping.ByNamespaceFlat)] - private SystemType raycastProviderType; - - /// - /// The raycast provider service concrete type to use when raycasting. - /// - public SystemType RaycastProviderType - { - get { return raycastProviderType; } - internal set { raycastProviderType = value; } - } - - /// - /// Maximum number of colliders that can be detected in a SphereOverlap scene query. - /// - public int FocusQueryBufferSize => focusQueryBufferSize; - - [SerializeField] - [Range(1, 2048)] - [Tooltip("Maximum number of colliders that can be detected in a SphereOverlap scene query.")] - private int focusQueryBufferSize = 128; - - [SerializeField] - [Tooltip("In case of a compound collider, does the individual collider receive focus")] - private bool focusIndividualCompoundCollider = false; - - /// - /// In case of a compound collider, does the individual collider receive focus - /// - public bool FocusIndividualCompoundCollider - { - get { return focusIndividualCompoundCollider; } - set { focusIndividualCompoundCollider = value; } - } - - [SerializeField] - [Tooltip("Input System Action Mapping profile for wiring up Controller input to Actions.")] - private MixedRealityInputActionsProfile inputActionsProfile; - - /// - /// Input System Action Mapping profile for wiring up Controller input to Actions. - /// - public MixedRealityInputActionsProfile InputActionsProfile - { - get { return inputActionsProfile; } - internal set { inputActionsProfile = value; } - } - - [SerializeField] - [Tooltip("Input Action Rules Profile for raising actions based on specific criteria.")] - private MixedRealityInputActionRulesProfile inputActionRulesProfile; - - /// - /// Input Action Rules Profile for raising actions based on specific criteria. - /// - public MixedRealityInputActionRulesProfile InputActionRulesProfile - { - get { return inputActionRulesProfile; } - internal set { inputActionRulesProfile = value; } - } - - [SerializeField] - [Tooltip("Pointer Configuration options")] - private MixedRealityPointerProfile pointerProfile; - - /// - /// Pointer configuration options - /// - public MixedRealityPointerProfile PointerProfile - { - get { return pointerProfile; } - internal set { pointerProfile = value; } - } - - [SerializeField] - [Tooltip("Gesture Mapping Profile for recognizing gestures across all platforms.")] - private MixedRealityGesturesProfile gesturesProfile; - - /// - /// Gesture Mapping Profile for recognizing gestures across all platforms. - /// - public MixedRealityGesturesProfile GesturesProfile - { - get { return gesturesProfile; } - internal set { gesturesProfile = value; } - } - - /// - /// The list of cultures where speech recognition is supported - /// - private List supportedVoiceCultures = new List - { - new CultureInfo("en-US"), - new CultureInfo("en-CA"), - new CultureInfo("fr-CA"), - new CultureInfo("en-GB"), - new CultureInfo("en-AU"), - new CultureInfo("de-DE"), - new CultureInfo("fr-FR"), - new CultureInfo("zh-CN"), - new CultureInfo("ja-JP"), - new CultureInfo("es-ES"), - new CultureInfo("it-IT") - }; - - /// - /// Returns whether speech is supported for the current language or not - /// - public bool IsSpeechSupported - { - get - { - return supportedVoiceCultures.Contains(CultureInfo.CurrentUICulture); - } - } - - [SerializeField] - [Tooltip("Speech Command profile for wiring up Voice Input to Actions.")] - private MixedRealitySpeechCommandsProfile speechCommandsProfile; - - /// - /// Speech commands profile for configured speech commands, for use by the speech recognition system - /// - public MixedRealitySpeechCommandsProfile SpeechCommandsProfile - { - get { return speechCommandsProfile; } - internal set { speechCommandsProfile = value; } - } - - [SerializeField] - [Tooltip("Enable and configure the devices for your application.")] - private bool enableControllerMapping = false; - - /// - /// Enable and configure the devices for your application. - /// - public bool IsControllerMappingEnabled - { - get { return controllerMappingProfile != null && enableControllerMapping; } - internal set { enableControllerMapping = value; } - } - - [SerializeField] - [Tooltip("Device profile for wiring up physical inputs to Actions.")] - private MixedRealityControllerMappingProfile controllerMappingProfile; - - /// - /// Active profile for controller mapping configuration - /// - public MixedRealityControllerMappingProfile ControllerMappingProfile - { - get { return controllerMappingProfile; } - internal set { controllerMappingProfile = value; } - } - - [SerializeField] - [Tooltip("Device profile for rendering spatial controllers.")] - private MixedRealityControllerVisualizationProfile controllerVisualizationProfile; - - /// - /// Device profile for rendering spatial controllers. - /// - public MixedRealityControllerVisualizationProfile ControllerVisualizationProfile - { - get { return controllerVisualizationProfile; } - internal set { controllerVisualizationProfile = value; } - } - - [SerializeField] - [Tooltip("Profile for configuring Hands tracking.")] - private MixedRealityHandTrackingProfile handTrackingProfile; - - /// - /// Active profile for hands tracking - /// - public MixedRealityHandTrackingProfile HandTrackingProfile - { - get { return handTrackingProfile; } - private set { handTrackingProfile = value; } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs.meta deleted file mode 100644 index 15bce68f4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityInputSystemProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b71cb900fa9dec5488df2deb180db58f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs deleted file mode 100644 index 8601ebf7d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Configuration profile settings for setting up controller pointers. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Pointer Profile", fileName = "MixedRealityInputPointerProfile", order = (int)CreateProfileMenuItemIndices.Pointer)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Pointers.html")] - public class MixedRealityPointerProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("Maximum distance at which all pointers can collide with a GameObject, unless it has an override extent.")] - private float pointingExtent = 10f; - - /// - /// Maximum distance at which all pointers can collide with a GameObject, unless it has an override extent. - /// - public float PointingExtent => pointingExtent; - - [SerializeField] - [Tooltip("The LayerMasks, in prioritized order, that are used to determine the GazeTarget when raycasting.")] - private LayerMask[] pointingRaycastLayerMasks = { UnityEngine.Physics.DefaultRaycastLayers }; - - /// - /// The LayerMasks, in prioritized order, that are used to determine the GazeTarget when raycasting. - /// - public LayerMask[] PointingRaycastLayerMasks => pointingRaycastLayerMasks; - - [SerializeField] - private bool debugDrawPointingRays = false; - - /// - /// Toggle to enable or disable debug pointing rays. - /// - public bool DebugDrawPointingRays => debugDrawPointingRays; - - [SerializeField] - private Color[] debugDrawPointingRayColors = null; - - /// - /// The colors to use when debugging pointer rays. - /// - public Color[] DebugDrawPointingRayColors => debugDrawPointingRayColors; - - [Prefab] - [SerializeField] - [Tooltip("The gaze cursor prefab to use on the Gaze pointer.")] - private GameObject gazeCursorPrefab = null; - - /// - /// The gaze cursor prefab to use on the Gaze pointer. - /// - public GameObject GazeCursorPrefab => gazeCursorPrefab; - - [SerializeField] - [Tooltip("The concrete type of IMixedRealityGazeProvider to use.")] - [Implements(typeof(IMixedRealityGazeProvider), TypeGrouping.ByNamespaceFlat)] - private SystemType gazeProviderType; - - /// - /// The concrete type of to use. - /// - public SystemType GazeProviderType - { - get { return gazeProviderType; } - internal set { gazeProviderType = value; } - } - - [SerializeField] - [Tooltip("If true, platform-specific head gaze override is used, when available. Otherwise, the center of the camera frame is used by default.")] - private bool useHeadGazeOverride = false; - - /// - /// If true, platform-specific head gaze override is used, when available. Otherwise, the center of the camera frame is used by default. - /// - public bool UseHeadGazeOverride => useHeadGazeOverride; - - [SerializeField] - [Tooltip("If true, eye-based tracking will be used as gaze input when available. Requires the 'Gaze Input' permission and device eye calibration to have been run.")] - private bool isEyeTrackingEnabled = false; - - /// - /// If true, eye-based tracking will be used as gaze input when available. - /// - public bool IsEyeTrackingEnabled - { - get { return isEyeTrackingEnabled; } - internal set { isEyeTrackingEnabled = value; } - } - - [SerializeField] - [Tooltip("The Pointer options for this profile.")] - private PointerOption[] pointerOptions = System.Array.Empty(); - - /// - /// The Pointer options for this profile. - /// - public PointerOption[] PointerOptions => pointerOptions; - - [SerializeField] - [Implements(typeof(IMixedRealityPointerMediator), TypeGrouping.ByNamespaceFlat)] - [Tooltip("The concrete Pointer Mediator component to use. This is a component that mediates all pointers in system, disabling / enabling them based on the state of other pointers.")] - private SystemType pointerMediator = null; - - /// - /// The concrete Pointer Mediator component to use. - /// This is a component that mediates all pointers in system, disabling / enabling them based on the state of other pointers. - /// - public SystemType PointerMediator - { - get { return pointerMediator; } - } - - [SerializeField] - [Implements(typeof(IMixedRealityPrimaryPointerSelector), TypeGrouping.ByNamespaceFlat)] - [Tooltip("Primary pointer selector implementation to use. This is used by the focus provider to choose the primary pointer.")] - private SystemType primaryPointerSelector = null; - - /// - /// Primary pointer selector implementation to use. This is used by the focus provider to choose the primary pointer. - /// - public SystemType PrimaryPointerSelector - { - get { return primaryPointerSelector; } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs.meta deleted file mode 100644 index 39eae6bf1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityPointerProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: db393d206eab4604ab74278cb6cda355 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs deleted file mode 100644 index 42a9fb6aa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// The resulting hit information from an IMixedRealityRaycastProvider. - /// - public struct MixedRealityRaycastHit - { - public Vector3 point; - public Vector3 normal; - public Vector3 barycentricCoordinate; - public float distance; - public int triangleIndex; - public Vector2 textureCoord; - public Vector2 textureCoord2; - public Transform transform; - public Vector2 lightmapCoord; - public bool raycastValid; - public Collider collider; - - public MixedRealityRaycastHit(bool raycastValid, RaycastHit hitInfo) - { - this.raycastValid = raycastValid; - if (raycastValid) - { - point = hitInfo.point; - normal = hitInfo.normal; - barycentricCoordinate = hitInfo.barycentricCoordinate; - distance = hitInfo.distance; - triangleIndex = hitInfo.triangleIndex; - textureCoord = hitInfo.textureCoord; - MeshCollider meshCollider = hitInfo.collider as MeshCollider; - if (meshCollider == null || meshCollider.sharedMesh.isReadable) - { - textureCoord2 = hitInfo.textureCoord2; - } - else - { - textureCoord2 = Vector2.zero; - } - transform = hitInfo.transform; - lightmapCoord = hitInfo.lightmapCoord; - collider = hitInfo.collider; - } - else - { - point = Vector3.zero; - normal = Vector3.zero; - barycentricCoordinate = Vector3.zero; - distance = 0; - triangleIndex = 0; - textureCoord = Vector2.zero; - textureCoord2 = Vector2.zero; - transform = null; - lightmapCoord = Vector2.zero; - collider = null; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs.meta deleted file mode 100644 index 5ce163327..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealityRaycastHit.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4c83a552926f36e45ab326756050af3f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs deleted file mode 100644 index dc9b28070..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Configuration profile settings for setting up and consuming Speech Commands. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Speech Commands Profile", fileName = "MixedRealitySpeechCommandsProfile", order = (int)CreateProfileMenuItemIndices.Speech)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Speech.html")] - public class MixedRealitySpeechCommandsProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("Whether the recognizer should be activated on start.")] - private AutoStartBehavior startBehavior = AutoStartBehavior.AutoStart; - - /// - /// The list of Speech Commands users use in your application. - /// - public AutoStartBehavior SpeechRecognizerStartBehavior => startBehavior; - - [SerializeField] - [Tooltip("Select the minimum confidence level for recognized words")] - private RecognitionConfidenceLevel recognitionConfidenceLevel = RecognitionConfidenceLevel.Medium; - - /// - /// The speech recognizer's minimum confidence level setting that will raise the action. - /// - public RecognitionConfidenceLevel SpeechRecognitionConfidenceLevel => recognitionConfidenceLevel; - - [SerializeField] - [Tooltip("The list of Speech Commands users use in your application.")] - private SpeechCommands[] speechCommands = System.Array.Empty(); - - /// - /// The list of Speech Commands users use in your application. - /// - public SpeechCommands[] SpeechCommands => speechCommands; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs.meta deleted file mode 100644 index dac15b62d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/MixedRealitySpeechCommandsProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1f18fec9b55c4f818e284af454161962 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs deleted file mode 100644 index 7ad157d87..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs +++ /dev/null @@ -1,27 +0,0 @@ - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Specifies how a pointer in MRTK's default input system behaves. - /// - public enum PointerBehavior - { - /// - /// Pointer active state is managed by MRTK input system. If it is a near pointer (grab, poke), it - /// will be always enabled. If it is not a near pointer, it will get disabled if any near pointer on the - /// same hand is active. This is what allows rays to turn off when a hand is near a grabbable. - /// - Default = 0, - /// - /// Pointer is always on, regardless of what other pointers are active. - /// - AlwaysOn, - /// - /// Pointer is always off, regardless of what other pointers are active. - /// - AlwaysOff - }; -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs.meta deleted file mode 100644 index 5b6a41b52..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerBehavior.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bd85cf387e8e41446ad2330a8caaa9b5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs deleted file mode 100644 index b54b30e4b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Defines a pointer option to assign to a controller. - /// - [Serializable] - public struct PointerOption - { - /// - /// Constructor. - /// - public PointerOption(SupportedControllerType controllerType, Handedness handedness, GameObject pointerPrefab) - { - this.controllerType = controllerType; - this.handedness = handedness; - this.pointerPrefab = pointerPrefab; - } - - [EnumFlags] - [SerializeField] - [Tooltip("The type of Controller this pointer can be attached to at runtime.")] - private SupportedControllerType controllerType; - - /// - /// The type of Controller this pointer can be attached to at runtime. - /// - /// If is selected, then it will attach to any controller type - public SupportedControllerType ControllerType => controllerType; - - [SerializeField] - [Tooltip("Defines valid hand(s) to create the pointer prefab on.")] - private Handedness handedness; - - /// - /// Defines valid hand(s) to create the pointer prefab on. - /// - public Handedness Handedness => handedness; - - [SerializeField] - [Tooltip("The prefab with an IMixedRealityPointer component to create when a valid controller becomes available.")] - private GameObject pointerPrefab; - - /// - /// The prefab with an component to create when a valid controller becomes available. - /// - public GameObject PointerPrefab => pointerPrefab; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs.meta deleted file mode 100644 index c4b5c3901..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/PointerOption.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b64872b3e5aa40cb862ecd0762edddc6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs deleted file mode 100644 index a3f255d6b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Data structure for mapping Voice and Keyboard input to s that can be raised by the Input System. - /// - [Serializable] - public struct SpeechCommands - { - /// - /// Constructor. - /// - /// The Keyword. - /// The KeyCode. - /// The Action to perform when Keyword or KeyCode is recognized. - /// An optional key to use to override the keyword with a localized version - public SpeechCommands(string keyword, KeyCode keyCode, MixedRealityInputAction action, string localizationKey = "") - { - this.keyword = keyword; - this.keyCode = keyCode; - this.action = action; - this.localizationKey = localizationKey; - this.localizedKeyword = null; - } - - [SerializeField] - [Tooltip("The key to use to find a localized keyword")] - private string localizationKey; - - private string localizedKeyword; - - /// - /// The localized version of the keyword - /// - public string LocalizedKeyword - { - get - { -#if WINDOWS_UWP - if (!string.IsNullOrWhiteSpace(localizationKey) && string.IsNullOrWhiteSpace(localizedKeyword)) - { - try - { - var resourceLoader = global::Windows.ApplicationModel.Resources.ResourceLoader.GetForViewIndependentUse(); - localizedKeyword = resourceLoader.GetString(localizationKey); - } - catch(System.Exception e) - { - // Ignore the exception and just use the fallback - Debug.LogError("GetLocalizedKeywordException: " + e.Message); - } - } -#endif - return string.IsNullOrWhiteSpace(localizedKeyword) ? keyword : localizedKeyword; - } - } - - [SerializeField] - [Tooltip("The Fallback keyword to listen for.")] - private string keyword; - - /// - /// The Fallback Keyword to listen for, or the localization key if no fallback keyword was set. - /// - public string Keyword - { - get - { - return string.IsNullOrWhiteSpace(keyword) ? localizationKey : keyword; - } - } - - [SerializeField] - [Tooltip("The corresponding KeyCode that also raises the same action as the Localized Keyword.")] - private KeyCode keyCode; - - /// - /// The corresponding KeyCode that also raises the same action as the Keyword. - /// - public KeyCode KeyCode => keyCode; - - [SerializeField] - [Tooltip("The Action that is raised by either the Localized Keyword or KeyCode.")] - private MixedRealityInputAction action; - - /// - /// The that is raised by either the Keyword or KeyCode. - /// - public MixedRealityInputAction Action => action; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs.meta deleted file mode 100644 index c12b8e15c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/SpeechCommands.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2e3ab1f2131a421d8c3e05386d24074d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs deleted file mode 100644 index 017eabef2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Type of Events to receive from a PokePointer. - /// - public enum TouchableEventType - { - Touch, - Pointer, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs.meta deleted file mode 100644 index c59c0570e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/TouchableEventType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a5e75d2e7738c7748a605a5349a762b2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs deleted file mode 100644 index 5ed693477..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Windows.Input -{ - /// - /// Copy of Unity's GestureSettings - /// - [Flags] - public enum WindowsGestureSettings - { - /// - /// Enable support for the tap gesture. - /// - Tap = 1 << 0, // HEX: 0x00000001 | Decimal: 1 - - /// - /// Enable support for the double-tap gesture. - /// - DoubleTap = 1 << 1, // HEX: 0x00000002 | Decimal: 2 - - /// - /// Enable support for the hold gesture. - /// - Hold = 1 << 2, // HEX: 0x00000004 | Decimal: 4 - - /// - /// Enable support for the manipulation gesture which tracks changes to the hand's position. This gesture is relative to the start position of the gesture and measures an absolute movement through the world. - /// - ManipulationTranslate = 1 << 3, // HEX: 0x00000008 | Decimal: 8 - - /// - /// Enable support for the navigation gesture, in the horizontal axis. - /// - NavigationX = 1 << 4, // HEX: 0x00000010 | Decimal: 16 - - /// - /// Enable support for the navigation gesture, in the vertical axis. - /// - NavigationY = 1 << 5, // HEX: 0x00000020 | Decimal: 32 - - /// - /// Enable support for the navigation gesture, in the depth axis. - /// - NavigationZ = 1 << 6, // HEX: 0x00000040 | Decimal: 64 - - /// - /// Enable support for the navigation gesture, in the horizontal axis using rails (guides). - /// - NavigationRailsX = 1 << 7, // HEX: 0x00000080 | Decimal: 128 - - /// - /// Enable support for the navigation gesture, in the vertical axis using rails (guides). - /// - NavigationRailsY = 1 << 8, // HEX: 0x00000100 | Decimal: 256 - - /// - /// Enable support for the navigation gesture, in the depth axis using rails (guides). - /// - NavigationRailsZ = 1 << 9, // HEX: 0x00000200 | Decimal: 512 - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs.meta deleted file mode 100644 index b1a8a6eeb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/InputSystem/WindowsGestureSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 997ae55289cd25b41b389340334d2ba0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines.meta deleted file mode 100644 index d605c87a0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8cbd134ae9ff4b1ab2b5b8def14d1053 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs deleted file mode 100644 index 10e60106c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// How to apply the distortion along the line. - /// - public enum DistortionMode - { - /// - /// Use the normalized length of the line plus its distortion strength curve to determine distortion strength - /// - NormalizedLength = 0, - /// - /// Use a single value to determine distortion strength - /// - Uniform, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs.meta deleted file mode 100644 index 137ef52d4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/DistortionMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8dd26458b9d6400b99f86ca6336ebed8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs deleted file mode 100644 index a558cbc91..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Default options for how to distribute interpolated points in a line renderer - /// - public enum InterpolationMode - { - /// - /// Specify the number of interpolation steps manually - /// - FromSteps = 0, - /// - /// Create steps based on total length of line + manually specified length - /// - FromLength, - /// - /// Create steps based on total length of line + animation curve - /// - FromCurve - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs.meta deleted file mode 100644 index a5cdd7a34..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cf8e569c382e4377a831fd0f095830c2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs deleted file mode 100644 index 22d9c648d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines the type of interpolation to use when calculating a spline. - /// - public enum InterpolationType - { - Bezier = 0, - CatmullRom, - Hermite, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs.meta deleted file mode 100644 index 44c4ca162..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/InterpolationType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e5291c0ac0fc496982ec8afeed071587 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs deleted file mode 100644 index 2611a649e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines how a base line data provider will transform its points - /// - public enum LinePointTransformMode - { - /// - /// Use the local line transform. More reliable but with a performance cost. - /// - UseTransform, - /// - /// Use a matrix. Lines that are not active and enabled will not update point positions. - /// - UseMatrix, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs.meta deleted file mode 100644 index 286e64a4e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LinePointTransformMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 89d2256185b38ab4d94c2d07ba805ddc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs deleted file mode 100644 index e9a1e5eb1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines how to calculate the line's rotation at any given point. - /// - public enum LineRotationMode - { - /// - /// Don't rotate - /// - None = 0, - /// - /// Use velocity to calculate the line's rotation - /// - Velocity, - /// - /// Rotate relative to direction from origin point - /// - RelativeToOrigin, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs.meta deleted file mode 100644 index a61ab46f0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/LineRotationMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3b2c29c9e22e4e62b81b27026ed45019 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs deleted file mode 100644 index c0e902c35..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines how to get an interpolated point along a line - /// - public enum PointDistributionMode - { - /// - /// Don't adjust placement - /// - None = 0, - /// - /// Adjust placement automatically (default) - /// - Auto, - /// - /// Place based on distance - /// - DistanceSingleValue, - /// - /// Place based on curve - /// - DistanceCurveValue, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs.meta deleted file mode 100644 index 4039a2a64..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/PointDistributionMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b3d54b2ce3b84633ab7196ba563bf842 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs deleted file mode 100644 index aeeb946ee..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines how to generate points in a line renderer - /// - public enum StepMode - { - /// - /// Draw points based on LineStepCount - /// - Interpolated = 0, - /// - /// Draw only the points available in the source - use this for hard edges - /// - FromSource, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs.meta deleted file mode 100644 index 80fa57dde..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Lines/StepMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c25f5594e515484d9eb9eb91cc7434e9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs deleted file mode 100644 index fe147ddba..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [Serializable] - public struct MixedRealityInputDataProviderConfiguration : IMixedRealityServiceConfiguration - { - [SerializeField] - [Implements(typeof(IMixedRealityInputDeviceManager), TypeGrouping.ByNamespaceFlat)] - private SystemType componentType; - - /// - public SystemType ComponentType => componentType; - - [SerializeField] - private string componentName; - - /// - public string ComponentName => componentName; - - [SerializeField] - private uint priority; - - /// - public uint Priority => priority; - - [SerializeField] - [EnumFlags] - private SupportedPlatforms runtimePlatform; - - /// - public SupportedPlatforms RuntimePlatform => runtimePlatform; - - [SerializeField] - private BaseMixedRealityProfile deviceManagerProfile; - - /// - public BaseMixedRealityProfile Profile => deviceManagerProfile; - - /// - /// Device manager specific configuration profile. - /// - public BaseMixedRealityProfile DeviceManagerProfile => deviceManagerProfile; - - /// - /// Constructor. - /// - /// The of the data provider. - /// The friendly name of the data provider. - /// The load priority of the data provider. - /// The runtime platform(s) supported by the data provider. - /// The configuration profile for the data provider. - public MixedRealityInputDataProviderConfiguration( - SystemType componentType, - string componentName, - uint priority, - SupportedPlatforms runtimePlatform, - BaseMixedRealityProfile profile) - { - this.componentType = componentType; - this.componentName = componentName; - this.priority = priority; - this.runtimePlatform = runtimePlatform; - deviceManagerProfile = profile; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs.meta deleted file mode 100644 index c320d6ba9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityInputDataProviderConfiguration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 502de787a9d657e439beedf2a862e7ae -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs deleted file mode 100644 index a81c79b48..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Registered Service Providers Profile", fileName = "MixedRealityRegisteredServiceProvidersProfile", order = (int)CreateProfileMenuItemIndices.RegisteredServiceProviders)] - public class MixedRealityRegisteredServiceProvidersProfile : BaseMixedRealityProfile - { - [SerializeField] - private MixedRealityServiceConfiguration[] configurations = null; - - /// - /// Currently registered system and manager configurations. - /// - public MixedRealityServiceConfiguration[] Configurations => configurations; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs.meta deleted file mode 100644 index 6469814c5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityRegisteredServiceProvidersProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: eebbca41bb0b40d298ef201735d08616 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs deleted file mode 100644 index 7646509eb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines a system, feature, or manager to be registered with as a on startup. - /// - [Serializable] - public struct MixedRealityServiceConfiguration : IMixedRealityServiceConfiguration - { - /// - /// Constructor. - /// - /// The concrete type for the system, feature or manager. - /// The simple, human readable name for the system, feature, or manager. - /// The priority this system, feature, or manager will be initialized in. - /// The runtime platform(s) to run this system, feature, or manager on. - /// The configuration profile for the service. - public MixedRealityServiceConfiguration( - SystemType componentType, - string componentName, - uint priority, - SupportedPlatforms runtimePlatform, - BaseMixedRealityProfile configurationProfile) - { - this.componentType = componentType; - this.componentName = componentName; - this.priority = priority; - this.runtimePlatform = runtimePlatform; - this.configurationProfile = configurationProfile; - } - - [SerializeField] - [Implements(typeof(IMixedRealityExtensionService), TypeGrouping.ByNamespaceFlat)] - private SystemType componentType; - - /// - public SystemType ComponentType => componentType; - - [SerializeField] - private string componentName; - - /// - public string ComponentName => componentName; - - [SerializeField] - private uint priority; - - /// - public uint Priority => priority; - - [EnumFlags] - [SerializeField] - private SupportedPlatforms runtimePlatform; - - /// - public SupportedPlatforms RuntimePlatform => runtimePlatform; - - [SerializeField] - private BaseMixedRealityProfile configurationProfile; - - /// - public BaseMixedRealityProfile Profile => configurationProfile; - - /// - /// The configuration profile for the service. - /// - [Obsolete("Use Profile property instead")] - public BaseMixedRealityProfile ConfigurationProfile => configurationProfile; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs.meta deleted file mode 100644 index 520358a08..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityServiceConfiguration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a0d7ee77470e4f228ba6eb25fd883db8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs deleted file mode 100644 index ee1bfc3ea..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - [Serializable] - public struct MixedRealitySpatialObserverConfiguration : IMixedRealityServiceConfiguration - { - [SerializeField] - [Implements(typeof(IMixedRealitySpatialAwarenessObserver), TypeGrouping.ByNamespaceFlat)] - private SystemType componentType; - - /// - public SystemType ComponentType => componentType; - - [SerializeField] - private string componentName; - - /// - public string ComponentName => componentName; - - [SerializeField] - private uint priority; - - /// - public uint Priority => priority; - - [SerializeField] - [EnumFlags] - private SupportedPlatforms runtimePlatform; - - /// - public SupportedPlatforms RuntimePlatform => runtimePlatform; - - [SerializeField] - private BaseSpatialAwarenessObserverProfile observerProfile; - - /// - public BaseMixedRealityProfile Profile => observerProfile; - - /// - /// Spatial Observer specific configuration profile. - /// - public BaseSpatialAwarenessObserverProfile ObserverProfile => observerProfile; - - /// - /// Constructor. - /// - /// The of the observer. - /// The friendly name of the observer. - /// The load priority of the observer. - /// The runtime platform(s) supported by the observer. - /// The configuration profile for the observer. - public MixedRealitySpatialObserverConfiguration( - SystemType componentType, - string componentName, - uint priority, - SupportedPlatforms runtimePlatform, - BaseSpatialAwarenessObserverProfile configurationProfile) - { - this.componentType = componentType; - this.componentName = componentName; - this.priority = priority; - this.runtimePlatform = runtimePlatform; - this.observerProfile = configurationProfile; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs.meta deleted file mode 100644 index ae4320c8e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealitySpatialObserverConfiguration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a1988fca42a2f664b870efd7a39bb203 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs deleted file mode 100644 index 5d410092d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs +++ /dev/null @@ -1,362 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Boundary; -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Diagnostics; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.SceneSystem; -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Teleport; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Runtime.CompilerServices; -using UnityEngine; -using UnityEngine.Serialization; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.EditModeTests")] -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.PlayModeTests")] -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Configuration profile settings for the Mixed Reality Toolkit. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Toolkit Configuration Profile", fileName = "MixedRealityToolkitConfigurationProfile", order = (int)CreateProfileMenuItemIndices.Configuration)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/MixedRealityConfigurationGuide.html")] - public class MixedRealityToolkitConfigurationProfile : BaseMixedRealityProfile - { - #region Mixed Reality Toolkit configurable properties - - [SerializeField] - [Tooltip("The scale of the Mixed Reality experience.")] - private ExperienceScale targetExperienceScale = ExperienceScale.Room; - - /// - /// The desired the scale of the experience. - /// - public ExperienceScale TargetExperienceScale - { - get { return targetExperienceScale; } - set { targetExperienceScale = value; } - } - - [SerializeField] - [FormerlySerializedAs("enableCameraProfile")] - [Tooltip("Enable the Camera System on Startup.")] - private bool enableCameraSystem = false; - - /// - /// Enable and configure the Camera Profile for the Mixed Reality Toolkit - /// - public bool IsCameraSystemEnabled - { - get { return CameraProfile != null && cameraSystemType != null && cameraSystemType.Type != null && enableCameraSystem; } - internal set { enableCameraSystem = value; } - } - - [SerializeField] - [Tooltip("Camera profile.")] - private MixedRealityCameraProfile cameraProfile; - - /// - /// Profile for customizing your camera and quality settings based on if your - /// head mounted display (HMD) is a transparent device or an occluded device. - /// - public MixedRealityCameraProfile CameraProfile - { - get { return cameraProfile; } - internal set { cameraProfile = value; } - } - - /// - /// Camera System class to instantiate at runtime. - /// - public SystemType CameraSystemType - { - get { return cameraSystemType; } - internal set { cameraSystemType = value; } - } - - [SerializeField] - [Tooltip("Camera System Class to instantiate at runtime.")] - [Implements(typeof(IMixedRealityCameraSystem), TypeGrouping.ByNamespaceFlat)] - private SystemType cameraSystemType; - - [SerializeField] - [Tooltip("Enable the Input System on Startup.")] - private bool enableInputSystem = false; - - /// - /// Enable and configure the Input System component for the Mixed Reality Toolkit - /// - public bool IsInputSystemEnabled - { - get { return inputSystemProfile != null && inputSystemType != null && inputSystemType.Type != null && enableInputSystem; } - internal set { enableInputSystem = value; } - } - - [SerializeField] - [Tooltip("Input System profile for setting wiring up events and actions to input devices.")] - private MixedRealityInputSystemProfile inputSystemProfile; - - /// - /// Input System profile for configuring events and actions to input devices. - /// - public MixedRealityInputSystemProfile InputSystemProfile - { - get { return inputSystemProfile; } - internal set { inputSystemProfile = value; } - } - - [SerializeField] - [Tooltip("Input System class to instantiate at runtime.")] - [Implements(typeof(IMixedRealityInputSystem), TypeGrouping.ByNamespaceFlat)] - private SystemType inputSystemType; - - /// - /// Input System class to instantiate at runtime. - /// - public SystemType InputSystemType - { - get { return inputSystemType; } - internal set { inputSystemType = value; } - } - - [SerializeField] - [Tooltip("Enable the Boundary on Startup")] - private bool enableBoundarySystem = false; - - /// - /// Enable and configure the boundary system. - /// - public bool IsBoundarySystemEnabled - { - get { return boundarySystemType != null && boundarySystemType.Type != null && enableBoundarySystem && boundaryVisualizationProfile != null; } - internal set { enableBoundarySystem = value; } - } - - [SerializeField] - [Tooltip("Boundary System class to instantiate at runtime.")] - [Implements(typeof(IMixedRealityBoundarySystem), TypeGrouping.ByNamespaceFlat)] - private SystemType boundarySystemType; - - /// - /// Boundary System class to instantiate at runtime. - /// - public SystemType BoundarySystemSystemType - { - get { return boundarySystemType; } - internal set { boundarySystemType = value; } - } - - [SerializeField] - [Tooltip("Profile for wiring up boundary visualization assets.")] - private MixedRealityBoundaryVisualizationProfile boundaryVisualizationProfile; - - /// - /// Active profile for boundary visualization - /// - public MixedRealityBoundaryVisualizationProfile BoundaryVisualizationProfile - { - get { return boundaryVisualizationProfile; } - internal set { boundaryVisualizationProfile = value; } - } - - [SerializeField] - [Tooltip("Enable the Teleport System on Startup")] - private bool enableTeleportSystem = false; - - /// - /// Enable and configure the teleport system. - /// - public bool IsTeleportSystemEnabled - { - get { return teleportSystemType != null && teleportSystemType.Type != null && enableTeleportSystem; } - internal set { enableTeleportSystem = value; } - } - - [SerializeField] - [Tooltip("Boundary System Class to instantiate at runtime.")] - [Implements(typeof(IMixedRealityTeleportSystem), TypeGrouping.ByNamespaceFlat)] - private SystemType teleportSystemType; - - /// - /// Teleport System class to instantiate at runtime. - /// - public SystemType TeleportSystemSystemType - { - get { return teleportSystemType; } - internal set { teleportSystemType = value; } - } - - [SerializeField] - [Tooltip("Enable the Spatial Awareness system on startup")] - private bool enableSpatialAwarenessSystem = false; - - /// - /// Enable and configure the spatial awareness system. - /// - public bool IsSpatialAwarenessSystemEnabled - { - get { return spatialAwarenessSystemType != null && spatialAwarenessSystemType.Type != null && enableSpatialAwarenessSystem; } - internal set { enableSpatialAwarenessSystem = value; } - } - - [SerializeField] - [Tooltip("Spatial Awareness System Class to instantiate at runtime.")] - [Implements(typeof(IMixedRealitySpatialAwarenessSystem), TypeGrouping.ByNamespaceFlat)] - private SystemType spatialAwarenessSystemType; - - /// - /// Spatial Awareness System class to instantiate at runtime. - /// - public SystemType SpatialAwarenessSystemSystemType - { - get { return spatialAwarenessSystemType; } - internal set { spatialAwarenessSystemType = value; } - } - - [SerializeField] - [Tooltip("Profile for configuring the spatial awareness system.")] - private MixedRealitySpatialAwarenessSystemProfile spatialAwarenessSystemProfile; - - /// - /// Active profile for spatial awareness system - /// - public MixedRealitySpatialAwarenessSystemProfile SpatialAwarenessSystemProfile - { - get { return spatialAwarenessSystemProfile; } - internal set { spatialAwarenessSystemProfile = value; } - } - - [SerializeField] - [Tooltip("Profile for configuring diagnostic components.")] - private MixedRealityDiagnosticsProfile diagnosticsSystemProfile; - - /// - /// Active profile for diagnostic configuration - /// - public MixedRealityDiagnosticsProfile DiagnosticsSystemProfile - { - get { return diagnosticsSystemProfile; } - internal set { diagnosticsSystemProfile = value; } - } - - [SerializeField] - [Tooltip("Enable diagnostic system")] - private bool enableDiagnosticsSystem = false; - - /// - /// Is the Diagnostics System enabled? - /// - public bool IsDiagnosticsSystemEnabled - { - get { return enableDiagnosticsSystem && DiagnosticsSystemSystemType?.Type != null && diagnosticsSystemProfile != null; } - internal set { enableDiagnosticsSystem = value; } - } - - [SerializeField] - [Tooltip("Diagnostics System class to instantiate at runtime.")] - [Implements(typeof(IMixedRealityDiagnosticsSystem), TypeGrouping.ByNamespaceFlat)] - private SystemType diagnosticsSystemType; - - /// - /// Diagnostics System Script File to instantiate at runtime - /// - public SystemType DiagnosticsSystemSystemType - { - get { return diagnosticsSystemType; } - internal set { diagnosticsSystemType = value; } - } - - [SerializeField] - [Tooltip("Profile for configuring scene system components.")] - private MixedRealitySceneSystemProfile sceneSystemProfile; - - /// - /// Active profile for scene configuration - /// - public MixedRealitySceneSystemProfile SceneSystemProfile - { - get { return sceneSystemProfile; } - internal set { sceneSystemProfile = value; } - } - - [SerializeField] - [Tooltip("Enable scene system")] - private bool enableSceneSystem = false; - - /// - /// Is the Scene System enabled? - /// - public bool IsSceneSystemEnabled - { - get { return enableSceneSystem && SceneSystemSystemType?.Type != null && sceneSystemProfile != null; } - internal set { enableSceneSystem = value; } - } - - [SerializeField] - [Tooltip("Scene System class to instantiate at runtime.")] - [Implements(typeof(IMixedRealitySceneSystem), TypeGrouping.ByNamespaceFlat)] - private SystemType sceneSystemType; - - /// - /// Scene System Script File to instantiate at runtime - /// - public SystemType SceneSystemSystemType - { - get { return sceneSystemType; } - internal set { sceneSystemType = value; } - } - - [SerializeField] - [Tooltip("All the additional non-required services registered with the Mixed Reality Toolkit.")] - private MixedRealityRegisteredServiceProvidersProfile registeredServiceProvidersProfile = null; - - /// - /// All the additional non-required systems, features, and managers registered with the Mixed Reality Toolkit. - /// - public MixedRealityRegisteredServiceProvidersProfile RegisteredServiceProvidersProfile => registeredServiceProvidersProfile; - - /// - /// If true, MRTK will generate components that let you to view the state of running services. These objects will not be generated at runtime. - /// - [Obsolete("Service inspectors will be removed in an upcoming release")] - public bool UseServiceInspectors - { - get { return useServiceInspectors; } - } - - [Obsolete("Service inspectors will be removed in an upcoming release")] - [SerializeField] - [Tooltip("Deprecated: If true, MRTK will generate components that let you to view the state of running services. These objects will not be generated at runtime.")] - private bool useServiceInspectors = false; - - /// - /// If true, MRTK will render the depth buffer as color. Only valid in editor. - /// - public bool RenderDepthBuffer - { - get { return renderDepthBuffer; } - } - - [SerializeField] - [Tooltip("If true, MRTK will render the depth buffer as color. Only valid in editor.")] - private bool renderDepthBuffer = false; - - /// - /// If true, verbose logging will be enabled for MRTK components. - /// - public bool EnableVerboseLogging - { - get { return enableVerboseLogging; } - set { enableVerboseLogging = value; } - } - - [SerializeField] - [Tooltip("If true, verbose logging will be enabled for MRTK components.")] - private bool enableVerboseLogging = false; - - #endregion Mixed Reality Toolkit configurable properties - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs.meta deleted file mode 100644 index c1545a817..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/MixedRealityToolkitConfigurationProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7612acbc1a4a4ed0afa5f4ccbe42bee4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Physics.meta deleted file mode 100644 index 51cc59345..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7f75169e4f3e4dda85043966a2490b3b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs deleted file mode 100644 index d0e96a421..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - public struct ComparableRaycastResult - { - public readonly int LayerMaskIndex; - public readonly RaycastResult RaycastResult; - - public ComparableRaycastResult(RaycastResult raycastResult, int layerMaskIndex = 0) - { - RaycastResult = raycastResult; - LayerMaskIndex = layerMaskIndex; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs.meta deleted file mode 100644 index bb5b26d76..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/ComparableRaycastResult.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8e21752251bc4090a3f41b86244bcd8b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs deleted file mode 100644 index ffd66fafd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// Contains information about which game object has the focus currently. - /// Also contains information about the normal of that point. - /// - public struct FocusDetails - { - /// - /// Distance along the ray until a hit, or until the end of the ray if no hit - /// - public float RayDistance { get; set; } - - /// - /// The hit point of the raycast. - /// - public Vector3 Point { get; set; } - - /// - /// The normal of the raycast. - /// - public Vector3 Normal { get; set; } - - /// - /// The object hit by the last raycast. - /// - public GameObject Object { get; set; } - - /// - /// The last raycast hit info. - /// - public MixedRealityRaycastHit LastRaycastHit { get; set; } - - /// - /// The last raycast hit info for graphic raycast - /// - public RaycastResult LastGraphicsRaycastResult { get; set; } - - public Vector3 PointLocalSpace { get; set; } - public Vector3 NormalLocalSpace { get; set; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs.meta deleted file mode 100644 index 4fdca78e3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/FocusDetails.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d367ed81359c4a2cb435788d6e4b533b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs deleted file mode 100644 index cfd0b2a7a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - [Serializable] - public struct RayStep - { - // Re-use static space to avoid additional allocation - private static Vector3 dist; - private static Vector3 dir; - private static Vector3 pos; - - public RayStep(Vector3 origin, Vector3 terminus) : this() - { - UpdateRayStep(ref origin, ref terminus); - - epsilon = 0.01f; - } - - public Vector3 Origin { get; private set; } - public Vector3 Terminus { get; private set; } - public Vector3 Direction { get; private set; } - - public float Length { get; private set; } - - private readonly float epsilon; - - public Vector3 GetPoint(float distance) - { - if (Length <= distance || Length == 0f) - { - return Origin; - } - - pos.x = Origin.x + Direction.x * distance; - pos.y = Origin.y + Direction.y * distance; - pos.z = Origin.z + Direction.z * distance; - - return pos; - } - - /// - /// Update current raystep with new origin and terminus points. - /// Pass by ref to avoid unnecessary struct copy into function since values will be copied anyways locally - /// - /// beginning of raystep origin - /// end of raystep - public void UpdateRayStep(ref Vector3 origin, ref Vector3 terminus) - { - Origin = origin; - Terminus = terminus; - - dist.x = Terminus.x - Origin.x; - dist.y = Terminus.y - Origin.y; - dist.z = Terminus.z - Origin.z; - - Length = Mathf.Sqrt((dist.x * dist.x) + (dist.y * dist.y) + (dist.z * dist.z)); - - if (Length > 0) - { - dir.x = dist.x / Length; - dir.y = dist.y / Length; - dir.z = dist.z / Length; - } - else - { - dir = dist; - } - - Direction = dir; - } - - public void CopyRay(Ray ray, float rayLength) - { - Length = rayLength; - Origin = ray.origin; - Direction = ray.direction; - - pos.x = Origin.x + Direction.x * Length; - pos.y = Origin.y + Direction.y * Length; - pos.z = Origin.z + Direction.z * Length; - - Terminus = pos; - } - - public bool Contains(Vector3 point) - { - dist.x = Origin.x - point.x; - dist.y = Origin.y - point.y; - dist.z = Origin.z - point.z; - float sqrMagOriginPoint = (dist.x * dist.x) + (dist.y * dist.y) + (dist.z * dist.z); - - dist.x = point.x - Terminus.x; - dist.y = point.y - Terminus.y; - dist.z = point.z - Terminus.z; - float sqrMagPointTerminus = (dist.x * dist.x) + (dist.y * dist.y) + (dist.z * dist.z); - - float sqrLength = Length * Length; - float sqrEpsilon = epsilon * epsilon; - - return (sqrMagOriginPoint + sqrMagPointTerminus) - sqrLength > sqrEpsilon; - } - - public static implicit operator Ray(RayStep r) - { - return new Ray(r.Origin, r.Direction); - } - - #region static utility functions - - /// - /// Returns a point along an array of RaySteps by distance - /// - public static Vector3 GetPointByDistance(RayStep[] steps, float distance) - { - Debug.Assert(steps != null); - Debug.Assert(steps.Length > 0); - - float remainingDistance = 0; - RayStep rayStep = GetStepByDistance(steps, distance, ref remainingDistance); - if (remainingDistance > 0) - { - return Vector3.Lerp(rayStep.Origin, rayStep.Terminus, remainingDistance / rayStep.Length); - } - else - { - return rayStep.Terminus; - } - } - - /// - /// Returns a RayStep along an array of RaySteps by distance - /// - public static RayStep GetStepByDistance(RayStep[] steps, float distance, ref float remainingDistance) - { - Debug.Assert(steps != null && steps.Length > 0); - - float traveledDistance = 0; - float stepLength = 0; - RayStep currentStep = new RayStep(); - - - foreach (var step in steps) - { - currentStep = step; - stepLength = step.Length; - - if (distance > traveledDistance + stepLength) - { - traveledDistance += stepLength; - } - else - { - remainingDistance = Mathf.Clamp(distance - traveledDistance, 0f, stepLength); - return currentStep; - } - } - - remainingDistance = 0; - return currentStep; - } - - /// - /// Returns a direction along an array of RaySteps by distance - /// - public static Vector3 GetDirectionByDistance(RayStep[] steps, float distance) - { - Debug.Assert(steps != null); - Debug.Assert(steps.Length > 0); - - float traveledDistance = 0; - return GetStepByDistance(steps, distance, ref traveledDistance).Direction; - } - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs.meta deleted file mode 100644 index 35510e425..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/RayStep.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6f24b53b8c6c4029819e1fe282bdae74 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs deleted file mode 100644 index 33bbbdb43..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// Defines the different scene query types. Mostly used by pointers. - /// - public enum SceneQueryType - { - /// - /// Use a simple raycast from a single point in a given direction. - /// - SimpleRaycast, - - /// - /// Complex raycast from multiple points using a box collider. - /// - BoxRaycast, - - /// - /// Use Sphere cast. - /// - SphereCast, - - /// - /// Check for colliders within a specific radius. - /// - SphereOverlap - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs.meta deleted file mode 100644 index ae332df19..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/SceneQueryType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7fc42c41eca042b4e9f5ebebe595e099 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs deleted file mode 100644 index a932e4a34..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - [Serializable] - public enum TeleportSurfaceResult - { - None = 0, - Valid, - Invalid, - HotSpot, - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs.meta deleted file mode 100644 index 7911bf6af..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Physics/TeleportSurfaceResult.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2e66db5ac6aa4ad898424ce73f433e80 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem.meta deleted file mode 100644 index 97fbc92c6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 12e18c40067f70c44b00e556c871441f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs deleted file mode 100644 index 2f6a7497b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - /// - /// Used by scene service to control how to transition from one lighting scene to another. - /// - public enum LightingSceneTransitionType - { - None, // Previous lighting scene is unloaded, new lighting scene is loaded. No transition. - FadeToBlack, // Previous lighting scene fades out to black. New lighting scene is loaded, then faded up from black. Useful for smooth transitions between locations. - CrossFade, // Previous lighting scene fades out as new lighting scene fades in. Useful for smooth transitions between lighting setups in the same location. NOTE: This will not work with different skyboxes. - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs.meta deleted file mode 100644 index 519ed63e4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/LightingSceneTransitionType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5e9c320c7cffbfd4291e04b3d3344fe3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs deleted file mode 100644 index 068c6b2a5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs +++ /dev/null @@ -1,391 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Linq; -#if UNITY_EDITOR -using UnityEditor; -#endif -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - /// - /// Configuration profile settings for setting up scene system. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Scene System Profile", fileName = "MixedRealitySceneSystemProfile", order = (int)CreateProfileMenuItemIndices.SceneSystem)] - [MixedRealityServiceProfile(typeof(IMixedRealitySceneSystem))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SceneSystem/SceneSystemGettingStarted.html")] - public class MixedRealitySceneSystemProfile : BaseMixedRealityProfile - { - /// - /// Internal class used to cache lighting settings associated with a scene. - /// - [Serializable] - internal sealed class CachedLightingSettings - { - public string SceneName; - public RuntimeRenderSettings RenderSettings; - public RuntimeLightingSettings LightingSettings; - public RuntimeSunlightSettings SunlightSettings; - public DateTime TimeStamp; - } - - public bool UseManagerScene { get { return useManagerScene && !managerScene.IsEmpty; } } - - public bool UseLightingScene { get { return useLightingScene && lightingScenes.Count > 0; } } - - public SceneInfo ManagerScene => managerScene; - - public SceneInfo DefaultLightingScene { get { return lightingScenes[defaultLightingSceneIndex]; } } - - public IEnumerable LightingScenes { get { return lightingScenes; } } - - public IEnumerable ContentScenes { get { return contentScenes; } } - - public IEnumerable ContentTags { get { return contentTags; } } - - public int NumLightingScenes { get { return lightingScenes.Count; } } - - public int NumContentScenes { get { return contentScenes.Count; } } - - public IEnumerable PermittedLightingSceneComponentTypes - { - get - { - foreach (SystemType systemType in permittedLightingSceneComponentTypes) { yield return systemType.Type; } - } - } - -#if UNITY_EDITOR - public bool EditorManageBuildSettings => editorManageBuildSettings; - - public bool EditorManageLoadedScenes => editorManageLoadedScenes; - - public bool EditorEnforceSceneOrder => editorEnforceSceneOrder; - - public bool EditorEnforceLightingSceneTypes => editorEnforceLightingSceneTypes; - - public bool EditorLightingCacheOutOfDate => editorLightingCacheOutOfDate; - - public bool EditorLightingCacheUpdateRequested { get; set; } -#endif - - [SerializeField] - private bool useManagerScene = true; - - [SerializeField] - private SceneInfo managerScene = default(SceneInfo); - - [SerializeField] - private bool useLightingScene = true; - - [SerializeField] - private int defaultLightingSceneIndex = 0; - - [SerializeField] - private List lightingScenes = new List(); - - [SerializeField] - private List contentScenes = new List(); - - [SerializeField] - private SystemType[] permittedLightingSceneComponentTypes = new SystemType[] { - new SystemType(typeof(Transform)), - new SystemType(typeof(GameObject)), - new SystemType(typeof(Light)), - new SystemType(typeof(ReflectionProbe)), - new SystemType(typeof(LightProbeGroup)), - new SystemType(typeof(LightProbeProxyVolume)), - }; - - // These will be hidden by the default inspector. - [SerializeField] - [Tooltip("Cached content tags found in your content scenes")] - private List contentTags = new List(); - - // These will be hidden by the default inspector. - [SerializeField] - [Tooltip("Cached lighting settings from your lighting scenes")] - private List cachedLightingSettings = new List(); - - #region editor settings - - // CS414 is disabled during this section because these properties are being used in the editor - // scenario - when this file is build for player scenario, these serialized fields still exist - // but are not used. -#pragma warning disable 414 - [SerializeField] - [Tooltip("If true, the service will update your build settings automatically, ensuring that all manager, lighting and content scenes are added. Disable this if you want total control over build settings.")] - private bool editorManageBuildSettings = true; - - [SerializeField] - [Tooltip("If true, the service will ensure manager scene is displayed first in scene hierarchy, followed by lighting and then content. Disable this if you want total control over scene hierarchy.")] - private bool editorEnforceSceneOrder = true; - - [SerializeField] - [Tooltip("If true, service will ensure that manager scenes and lighting scenes are always loaded. Disable if you want total control over which scenes are loaded in editor.")] - private bool editorManageLoadedScenes = true; - - [SerializeField] - [Tooltip("If true, service will ensure that only lighting-related components are allowed in lighting scenes. Disable if you want total control over the content of lighting scenes.")] - private bool editorEnforceLightingSceneTypes = true; - - [SerializeField] - private bool editorLightingCacheOutOfDate = false; -#pragma warning restore 414 - - #endregion - - public bool GetLightingSceneSettings( - string lightingSceneName, - out SceneInfo lightingScene, - out RuntimeLightingSettings lightingSettings, - out RuntimeRenderSettings renderSettings, - out RuntimeSunlightSettings sunlightSettings) - { - lightingSettings = default(RuntimeLightingSettings); - renderSettings = default(RuntimeRenderSettings); - sunlightSettings = default(RuntimeSunlightSettings); - lightingScene = SceneInfo.Empty; - - for (int i = 0; i < lightingScenes.Count; i++) - { - if (lightingScenes[i].Name == lightingSceneName) - { - lightingScene = lightingScenes[i]; - break; - } - } - - if (lightingScene.IsEmpty) - { // If we didn't find a lighting scene, don't bother looking for a cache - return false; - } - - bool foundCache = false; - for (int i = 0; i < cachedLightingSettings.Count; i++) - { - CachedLightingSettings cache = cachedLightingSettings[i]; - if (cache.SceneName == lightingSceneName) - { - lightingSettings = cache.LightingSettings; - renderSettings = cache.RenderSettings; - sunlightSettings = cache.SunlightSettings; - foundCache = true; - break; - } - } - - return foundCache; - } - - public IEnumerable GetContentSceneNamesByTag(string tag) - { - foreach (SceneInfo contentScene in contentScenes) - { - if (contentScene.Tag == tag) - yield return contentScene.Name; - } - } - -#if UNITY_EDITOR - #region validation - private void OnValidate() - { - if (Application.isPlaying || EditorApplication.isCompiling) - { - return; - } - - bool saveChanges = false; - - // Remove any duplicate entries from our lighting and content scene lists - saveChanges |= (RemoveOrClearDuplicateEntries(lightingScenes) || RemoveOrClearDuplicateEntries(contentScenes)); - - // Ensure that manager scenes are not contained in content or lighting scenes - saveChanges |= (UseManagerScene && (RemoveScene(lightingScenes, managerScene) || RemoveScene(contentScenes, managerScene))); - - // Ensure that content scenes are not included in lighting scenes - saveChanges |= (UseLightingScene && RemoveScenes(lightingScenes, contentScenes)); - - // Build our content tags - List newContentTags = new List(); - foreach (SceneInfo contentScene in contentScenes) - { - if (string.IsNullOrEmpty(contentScene.Tag)) - { - continue; - } - - if (contentScene.Tag == "Untagged") - { - continue; - } - - if (!newContentTags.Contains(contentScene.Tag)) - { - newContentTags.Add(contentScene.Tag); - } - } - - // See if our content tags have changed - if (!contentTags.SequenceEqual(newContentTags)) - { - contentTags = newContentTags; - saveChanges = true; - } - - defaultLightingSceneIndex = Mathf.Clamp(defaultLightingSceneIndex, 0, lightingScenes.Count - 1); - - if (saveChanges) - { // We need to tie this directly to lighting scenes somehow - editorLightingCacheOutOfDate = true; - // Make sure our changes are saved to disk! - AssetDatabase.Refresh(); - EditorUtility.SetDirty(this); - AssetDatabase.SaveAssets(); - } - } - - /// - /// Clears cached lighting settings. - /// Used to ensure we don't end up with 'dead' cached data. - /// - public void ClearLightingCache() - { - cachedLightingSettings.Clear(); - } - - /// - /// Used to update the cached lighting / render settings. - /// Since extracting them is complex and requires scene loading, I thought it best to avoid having the profile do it. - /// - /// The scene these settings belong to. - public void SetLightingCache(SceneInfo sceneInfo, RuntimeLightingSettings lightingSettings, RuntimeRenderSettings renderSettings, RuntimeSunlightSettings sunlightSettings) - { - CachedLightingSettings settings = new CachedLightingSettings(); - settings.SceneName = sceneInfo.Name; - settings.LightingSettings = lightingSettings; - settings.RenderSettings = renderSettings; - settings.SunlightSettings = sunlightSettings; - settings.TimeStamp = DateTime.Now; - - cachedLightingSettings.Add(settings); - - editorLightingCacheOutOfDate = false; - } - - /// - /// Sets editorLightingCacheOutOfDate to true and saves the profile. - /// - public void SetLightingCacheDirty() - { - editorLightingCacheOutOfDate = true; - - AssetDatabase.Refresh(); - EditorUtility.SetDirty(this); - AssetDatabase.SaveAssets(); - } - - public DateTime GetEarliestLightingCacheTimestamp() - { - if (cachedLightingSettings.Count <= 0) - { - return DateTime.MinValue; - } - - DateTime earliestTimeStamp = DateTime.MaxValue; - foreach (CachedLightingSettings settings in cachedLightingSettings) - { - if (settings.TimeStamp < earliestTimeStamp) - { - earliestTimeStamp = settings.TimeStamp; - } - } - - return earliestTimeStamp; - } - - private static bool RemoveScenes(List sceneList, List scenesToRemove) - { - bool changed = false; - - for (int i = sceneList.Count - 1; i >= 0; i--) - { - if (sceneList[i].IsEmpty) - { - continue; - } - - foreach (SceneInfo sceneToRemove in scenesToRemove) - { - if (sceneToRemove.IsEmpty) - { - continue; - } - - if (sceneList[i].Asset == sceneToRemove.Asset) - { - Debug.LogWarning("Removing scene " + sceneToRemove.Name + " from scene list."); - sceneList[i] = SceneInfo.Empty; - changed = true; - break; - } - } - } - - return changed; - } - - private static bool RemoveScene(List sceneList, SceneInfo sceneToRemove) - { - bool changed = false; - - for (int i = sceneList.Count - 1; i >= 0; i--) - { - if (sceneList[i].IsEmpty) - { - continue; - } - - if (sceneList[i].Asset == sceneToRemove.Asset) - { - Debug.LogWarning("Removing manager scene " + sceneToRemove.Name + " from scene list."); - sceneList[i] = SceneInfo.Empty; - changed = true; - } - } - - return changed; - } - - private static bool RemoveOrClearDuplicateEntries(List sceneList) - { - HashSet scenePaths = new HashSet(); - bool changed = false; - - for (int i = 0; i < sceneList.Count; i++) - { - if (sceneList[i].IsEmpty) - { - continue; - } - - if (!scenePaths.Add(sceneList[i].Path)) - { // If we encounter a duplicate, just set it to empty. - // This will ensure we don't get duplicates when we add new elements to the array. - Debug.LogWarning("Found duplicate entry in scene list at " + i + ", removing"); - sceneList[i] = SceneInfo.Empty; - changed = true; - } - } - - return changed; - } - #endregion -#endif - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs.meta deleted file mode 100644 index ce12cb88e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/MixedRealitySceneSystemProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b81dae1d46879b444aa9847f7961649f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs deleted file mode 100644 index a2bffac2d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - /// - /// A struct that mimics the lighting settings stored in a scene. - /// Used to store, retrieve and interpolate lighting settings. - /// Omits any editor-only settings. - /// - [Serializable] - public struct RuntimeLightingSettings - { - public float BounceScale; - public float IndirectOutputScale; - public float AlbedoBoost; - public MixedLightingMode EnvironmentLightingMode; - public bool EnableBakedLightmaps; - public bool EnabledRealtimeLightmaps; - - /// - /// Lerps between two settings - /// - /// Value from 0 to 1 - public static RuntimeLightingSettings Lerp(RuntimeLightingSettings from, RuntimeLightingSettings to, float t) - { - bool notStarted = t <= 0; - to.AlbedoBoost = Mathf.Lerp(from.AlbedoBoost, to.AlbedoBoost, t); - to.BounceScale = Mathf.Lerp(from.BounceScale, to.BounceScale, t); - to.EnableBakedLightmaps = notStarted ? from.EnableBakedLightmaps : to.EnableBakedLightmaps; - to.EnabledRealtimeLightmaps = notStarted ? from.EnabledRealtimeLightmaps : to.EnabledRealtimeLightmaps; - to.EnvironmentLightingMode = notStarted ? from.EnvironmentLightingMode : to.EnvironmentLightingMode; - to.IndirectOutputScale = Mathf.Lerp(from.IndirectOutputScale, to.IndirectOutputScale, t); - return to; - } - - /// - /// Sets continuous settings to 'black' without changing any discrete features. - /// - public static RuntimeLightingSettings Black(RuntimeLightingSettings source) - { - source.AlbedoBoost = 0; - source.BounceScale = 0; - source.IndirectOutputScale = 0; - return source; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs.meta deleted file mode 100644 index b6fb80cb4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeLightingSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b0148fadb9ada61458e61015e93f5848 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs deleted file mode 100644 index 802cdfede..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; -using UnityEngine.Rendering; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - - /// - /// A struct that mimics the render settings stored in a scene. - /// Used to store, retrieve and interpolate render settings. - /// Omits any editor-only settings, as well as some settings that are seldom used. - /// - [Serializable] - public struct RuntimeRenderSettings - { - public bool Fog; - public Color FogColor; - public FogMode FogMode; - public float FogDensity; - public float LinearFogStart; - public float LinearFogEnd; - public Color AmbientSkyColor; - public Color AmbientEquatorColor; - public Color AmbientGroundColor; - public Color AmbientLight; - public float AmbientIntensity; - public int AmbientMode; - public Color SubtractiveShadowColor; - public Material SkyboxMaterial; - public DefaultReflectionMode DefaultReflectionMode; - public int DefaultReflectionResolution; - public int ReflectionBounces; - public float ReflectionIntensity; - public Cubemap CustomReflection; - public bool UseRadianceAmbientProbe; - - /// - /// Lerps between two settings - /// - /// Value from 0 to 1 - public static RuntimeRenderSettings Lerp(RuntimeRenderSettings from, RuntimeRenderSettings to, float t) - { - bool notStarted = t <= 0; - to.AmbientEquatorColor = Color.Lerp(from.AmbientEquatorColor, to.AmbientEquatorColor, t); - to.AmbientGroundColor = Color.Lerp(from.AmbientGroundColor, to.AmbientGroundColor, t); - to.AmbientIntensity = Mathf.Lerp(from.AmbientIntensity, to.AmbientIntensity, t); - to.AmbientLight = Color.Lerp(from.AmbientLight, to.AmbientLight, t); - to.AmbientMode = notStarted ? from.AmbientMode : to.AmbientMode; - to.AmbientSkyColor = Color.Lerp(from.AmbientSkyColor, to.AmbientSkyColor, t); - to.CustomReflection = notStarted ? from.CustomReflection : to.CustomReflection; - to.DefaultReflectionMode = notStarted ? from.DefaultReflectionMode : to.DefaultReflectionMode; - to.DefaultReflectionResolution = notStarted ? from.DefaultReflectionResolution : to.DefaultReflectionResolution; - to.Fog = notStarted ? from.Fog : to.Fog; - to.FogColor = Color.Lerp(from.FogColor, to.FogColor, t); - to.FogDensity = Mathf.Lerp(from.FogDensity, to.FogDensity, t); - to.FogMode = notStarted ? from.FogMode : to.FogMode; - to.LinearFogEnd = Mathf.Lerp(from.LinearFogEnd, to.LinearFogEnd, t); - to.LinearFogStart = Mathf.Lerp(from.LinearFogStart, to.LinearFogStart, t); - to.ReflectionBounces = notStarted ? from.ReflectionBounces : to.ReflectionBounces; - to.ReflectionIntensity = Mathf.Lerp(from.ReflectionIntensity, to.ReflectionIntensity, t); - to.SkyboxMaterial = notStarted ? from.SkyboxMaterial : to.SkyboxMaterial; - to.SubtractiveShadowColor = Color.Lerp(from.SubtractiveShadowColor, to.SubtractiveShadowColor, t); - to.UseRadianceAmbientProbe = notStarted ? from.UseRadianceAmbientProbe : to.UseRadianceAmbientProbe; - return to; - } - - - /// - /// Sets continuous settings to 'black' without changing any discrete features. - /// - public static RuntimeRenderSettings Black(RuntimeRenderSettings source) - { - source.AmbientEquatorColor = Color.clear; - source.AmbientGroundColor = Color.clear; - source.AmbientIntensity = 0; - source.AmbientLight = Color.clear; - source.AmbientSkyColor = Color.clear; - source.FogColor = Color.clear; - source.FogDensity = 0; - source.LinearFogEnd = 0; - source.LinearFogStart = 0; - source.ReflectionIntensity = 0; - source.SubtractiveShadowColor = Color.clear; - return source; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs.meta deleted file mode 100644 index 62a9799e0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeRenderSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aaa90ba5cea178647b2aeb4c1bcc7440 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs deleted file mode 100644 index e7ff74d58..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - /// - /// Struct for storing directional sunlight settings stored in a scene. - /// - [Serializable] - public struct RuntimeSunlightSettings - { - public bool UseSunlight; - public Color Color; - public float Intensity; - public float XRotation; - public float YRotation; - public float ZRotation; - - /// - /// Lerps between two settings - /// - /// Value from 0 to 1 - public static RuntimeSunlightSettings Lerp(RuntimeSunlightSettings from, RuntimeSunlightSettings to, float t) - { - bool notStarted = t <= 0; - to.Color = Color.Lerp(from.Color, to.Color, t); - to.Intensity = Mathf.Lerp(from.Intensity, to.Intensity, t); - to.XRotation = Mathf.Lerp(from.XRotation, to.XRotation, t); - to.YRotation = Mathf.Lerp(from.YRotation, to.YRotation, t); - to.ZRotation = Mathf.Lerp(from.ZRotation, to.ZRotation, t); - to.UseSunlight = notStarted ? from.UseSunlight : to.UseSunlight; - return to; - } - - /// - /// Sets continuous settings to 'black' without changing any discrete features. - /// - public static RuntimeSunlightSettings Black(RuntimeSunlightSettings source) - { - source.Color = Color.clear; - source.Intensity = 0; - - return source; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs.meta deleted file mode 100644 index bcf09820b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/RuntimeSunlightSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2a6317eb707db6d478a060aaaf845ee9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs deleted file mode 100644 index 71fb9943f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - /// - /// Used by scene system to control when newly loaded scenes are activated. - /// - public class SceneActivationToken - { - /// - /// When true, the operation is waiting on AllowSceneActivation to be set to true before proceeding. - /// - public bool ReadyToProceed { get; private set; } = false; - - /// - /// Setting this to true grants permission for scene operation to activate loaded scenes. - /// - public bool AllowSceneActivation { get; set; } = false; - - /// - /// Sets ReadyToProceed value - /// - public void SetReadyToProceed(bool readyToProceed) - { - ReadyToProceed = readyToProceed; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs.meta deleted file mode 100644 index 5cb981f3c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneActivationToken.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6cb3aff58cf814344b557534ef336ff4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs deleted file mode 100644 index 4dc63a959..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - [Serializable] - public struct SceneInfo - { - public static SceneInfo Empty { get { return empty; } } - private static SceneInfo empty = default(SceneInfo); - - /// - /// Scene asset is not set. - /// - public bool IsEmpty - { - get - { - return Asset == null; - } - } - - /// - /// Returns true if the asset is not null and if the scene has a valid build index. Doesn't respect whether scene is enabled in build settings. - /// - public bool IsInBuildSettings - { - get - { - return Asset != null && Included; - } - } - - public bool IsEnabled - { - get - { - return IsInBuildSettings & BuildIndex >= 0; - } - } - - /// - /// Name of the scene. Set by the property drawer. - /// - public string Name; - - /// - /// Path of the scene. Set by the property drawer. - /// - public string Path; - - /// - /// True if scene is included in build (NOT necessarily enabled) - /// - public bool Included; - - /// - /// Build index of the scene. If included in build settings and enabled, this will be a value greater than zero. - /// If not included or disabled, this will be -1 - /// - public int BuildIndex; - - /// - /// Optional tag used to load and unload scenes in groups. - /// -#if UNITY_EDITOR - [TagProperty] -#endif - public string Tag; - -#if UNITY_EDITOR - [SceneAssetReference] -#endif - /// - /// SceneAsset reference. Since SceneAsset is an editor-only asset, we store an object reference instead. - /// - public UnityEngine.Object Asset; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs.meta deleted file mode 100644 index 3764a5015..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SceneSystem/SceneInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e3b67e72d22c83344ba12cefe88200b0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness.meta deleted file mode 100644 index 7dc311652..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cbb3f0c327f621645b5c28b4f44410db -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs deleted file mode 100644 index 011b4f266..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - public partial class BaseSpatialAwarenessObject : IMixedRealitySpatialAwarenessObject - { - /// - public int Id { get; set; } - - /// - public GameObject GameObject { get; set; } - - /// - public MeshRenderer Renderer { get; set; } - - /// - /// The MeshFilter associated with this spatial object's renderer. - /// - public MeshFilter Filter { get; set; } - - /// - public virtual void CleanObject() - { - // todo: consider if this should be virtual, and what params it should contain - } - - /// - /// Constructor. - /// - protected BaseSpatialAwarenessObject() - { - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs.meta deleted file mode 100644 index 88f7ff115..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObject.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c10b9af3de3f9c14ca6462bec3d582e2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs deleted file mode 100644 index 8617acd30..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Abstract class that provides base profile information for Spatial Awareness Observers and their configuration - /// - [Serializable] - public abstract class BaseSpatialAwarenessObserverProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("How should the observer behave at startup?")] - private AutoStartBehavior startupBehavior = AutoStartBehavior.AutoStart; - - /// - /// Indicates if the observer is to start immediately or wait for manual startup. - /// - public AutoStartBehavior StartupBehavior => startupBehavior; - - [SerializeField] - [Tooltip("Should the spatial observer remain in a fixed location?")] - private bool isStationaryObserver = false; - - /// - /// Indicates whether or not the spatial observer is to remain in a fixed location. - /// - public bool IsStationaryObserver => isStationaryObserver; - - [SerializeField] - [Tooltip("The dimensions of the spatial observer volume, in meters.")] - private Vector3 observationExtents = Vector3.one * 3; - - /// - /// The size of the volume, in meters per axis, from which individual observations will be made. - /// - public Vector3 ObservationExtents => observationExtents; - - [SerializeField] - [Tooltip("The shape of observation volume")] - private VolumeType observerVolumeType = VolumeType.AxisAlignedCube; - - /// - /// The shape (ex: axis aligned cube) of the observation volume. - /// - public VolumeType ObserverVolumeType => observerVolumeType; - - [SerializeField] - [Tooltip("How often, in seconds, should the spatial observer update?")] - private float updateInterval = 3.5f; - - /// - /// The frequency, in seconds, at which the spatial observer updates. - /// - public float UpdateInterval => updateInterval; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs.meta deleted file mode 100644 index 3e6319491..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/BaseSpatialAwarenessObserverProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 92a6c43827fff704ca802cc4777484ae -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs deleted file mode 100644 index 9f058cd67..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Configuration profile settings for spatial awareness mesh observers. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Spatial Awareness Mesh Observer Profile", fileName = "MixedRealitySpatialAwarenessMeshObserverProfile", order = (int)CreateProfileMenuItemIndices.SpatialAwarenessMeshObserver)] - [MixedRealityServiceProfile(typeof(IMixedRealitySpatialAwarenessMeshObserver))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SpatialAwareness/ConfiguringSpatialAwarenessMeshObserver.html")] - public class MixedRealitySpatialAwarenessMeshObserverProfile : BaseSpatialAwarenessObserverProfile - { - #region IMixedRealitySpatialAwarenessMeshObserver settings - - [PhysicsLayer] - [SerializeField] - [Tooltip("Physics layer on which to set observed meshes.")] - private int meshPhysicsLayer = BaseSpatialObserver.DefaultSpatialAwarenessLayer; - - /// - /// The Unity Physics Layer on which to set observed meshes. - /// - public int MeshPhysicsLayer => meshPhysicsLayer; - - [SerializeField] - [Tooltip("Level of detail used when creating the mesh")] - private SpatialAwarenessMeshLevelOfDetail levelOfDetail = SpatialAwarenessMeshLevelOfDetail.Coarse; - - /// - /// The level of detail used when creating the mesh. - /// - public SpatialAwarenessMeshLevelOfDetail LevelOfDetail => levelOfDetail; - - [SerializeField] - [Tooltip("Level of detail, in triangles per cubic meter.\nIgnored unless LevelOfDetail is set to Custom.")] - private int trianglesPerCubicMeter = 0; - - /// - /// The level of detail, in triangles per cubic meter, for the returned spatial mesh. - /// - /// This value is ignored, unless is set to Custom. - public int TrianglesPerCubicMeter => trianglesPerCubicMeter; - - [SerializeField] - [Tooltip("Should normals be recalculated when a mesh is added or updated?")] - private bool recalculateNormals = true; - - /// - /// Indicates if the spatial awareness system to generate normal for the returned meshes - /// as some platforms may not support returning normal along with the spatial mesh. - /// - public bool RecalculateNormals => recalculateNormals; - - [SerializeField] - [Tooltip("How should spatial meshes be displayed?")] - private SpatialAwarenessMeshDisplayOptions displayOption = SpatialAwarenessMeshDisplayOptions.Visible; - - /// - /// Indicates how the mesh subsystem is to display surface meshes within the application. - /// - public SpatialAwarenessMeshDisplayOptions DisplayOption => displayOption; - - [SerializeField] - [Tooltip("Material to use when displaying observed meshes")] - private Material visibleMaterial = null; - - /// - /// The material to be used when displaying observed meshes. - /// - public Material VisibleMaterial => visibleMaterial; - - [SerializeField] - [Tooltip("Material to use when observed meshes should occlude other objects")] - private Material occlusionMaterial = null; - - /// - /// The material to be used when observed meshes should occlude other objects. - /// - public Material OcclusionMaterial => occlusionMaterial; - - [SerializeField] - [Tooltip("Optional physics material to apply to spatial mesh")] - private PhysicMaterial physicsMaterial = null; - - public PhysicMaterial PhysicsMaterial => physicsMaterial; - - - - #endregion IMixedRealitySpatialAwarenessMeshObserver settings - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs.meta deleted file mode 100644 index 599409e57..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessMeshObserverProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d561f5f963b45674aa423435fb820879 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs deleted file mode 100644 index 1145b1a90..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Configuration profile settings for spatial awareness mesh observers. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Spatial Awareness System Profile", fileName = "MixedRealitySpatialAwarenessSystemProfile", order = (int)CreateProfileMenuItemIndices.SpatialAwareness)] - [MixedRealityServiceProfile(typeof(IMixedRealitySpatialAwarenessSystem))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SpatialAwareness/SpatialAwarenessGettingStarted.html")] - public class MixedRealitySpatialAwarenessSystemProfile : BaseMixedRealityProfile - { - [SerializeField] - private MixedRealitySpatialObserverConfiguration[] observerConfigurations = System.Array.Empty(); - - public MixedRealitySpatialObserverConfiguration[] ObserverConfigurations - { - get { return observerConfigurations; } - internal set { observerConfigurations = value; } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs.meta deleted file mode 100644 index 68b0d9528..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/MixedRealitySpatialAwarenessSystemProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 19f279aded72cb741b4de89a54359dd4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs deleted file mode 100644 index a489ce12e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Enumeration defining levels of detail for the spatial awareness mesh subsystem. - /// - public enum SpatialAwarenessMeshLevelOfDetail - { - /// - /// The custom level of detail allows specifying a custom value for - /// TrianglesPerCubicMeter. - /// - Custom = -1, - - /// - /// The coarse level of detail is well suited for identifying large - /// environmental features, such as floors and walls. - /// - Coarse = 0, - - /// - /// The medium level of detail is often useful for experiences that - /// continually scan the environment (ex: a virtual pet). - /// - Medium, - - /// - /// The fine level of detail is well suited for using as an occlusion - /// mesh. - /// - Fine - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs.meta deleted file mode 100644 index 1d6565c2e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshLevelOfDetail.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 46f2975a9da9d1648849a773339b0732 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs deleted file mode 100644 index be54b3ed6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Object encapsulating the components of a spatial awareness mesh object. - /// - public class SpatialAwarenessMeshObject : BaseSpatialAwarenessObject - { - /// - /// When a mesh is created we will need to create a game object with a minimum - /// set of components to contain the mesh. These are the required component types. - /// - private static readonly Type[] requiredMeshComponents = - { - typeof(MeshFilter), - typeof(MeshRenderer), - typeof(MeshCollider) - }; - - /// - /// The collider for the mesh object. - /// - public MeshCollider Collider { get; set; } - - /// - /// Constructor. - /// - private SpatialAwarenessMeshObject() : base() { } - - /// - /// Creates a . - /// - /// - /// SpatialMeshObject containing the fields that describe the mesh. - /// - public static SpatialAwarenessMeshObject Create( - Mesh mesh, - int layer, - string name, - int meshId, - GameObject meshParent = null) - { - SpatialAwarenessMeshObject newMesh = new SpatialAwarenessMeshObject - { - Id = meshId, - GameObject = new GameObject(name, requiredMeshComponents) - { - layer = layer - } - }; - - /// Preserve local transform when attaching to parent. - newMesh.GameObject.transform.SetParent(meshParent != null ? meshParent.transform : null, false); - - newMesh.Filter = newMesh.GameObject.GetComponent(); - newMesh.Filter.sharedMesh = mesh; - - newMesh.Renderer = newMesh.GameObject.GetComponent(); - - // Reset the surface mesh collider to fit the updated mesh. - // Unity tribal knowledge indicates that to change the mesh assigned to a - // mesh collider, the mesh must first be set to null. Presumably there - // is a side effect in the setter when setting the shared mesh to null. - newMesh.Collider = newMesh.GameObject.GetComponent(); - newMesh.Collider.sharedMesh = null; - newMesh.Collider.sharedMesh = newMesh.Filter.sharedMesh; - - return newMesh; - } - - /// - /// Clean up the resources associated with the surface. - /// - /// The whose resources will be cleaned up. - public static void Cleanup(SpatialAwarenessMeshObject meshObject, bool destroyGameObject = true, bool destroyMeshes = true) - { - if (meshObject.GameObject == null) - { - return; - } - - if (destroyGameObject) - { - UnityEngine.Object.Destroy(meshObject.GameObject); - meshObject.GameObject = null; - return; - } - - if (destroyMeshes) - { - Mesh filterMesh = meshObject.Filter.sharedMesh; - Mesh colliderMesh = meshObject.Collider.sharedMesh; - - if (filterMesh != null) - { - UnityEngine.Object.Destroy(filterMesh); - meshObject.Filter.sharedMesh = null; - } - - if ((colliderMesh != null) && (colliderMesh != filterMesh)) - { - UnityEngine.Object.Destroy(colliderMesh); - meshObject.Collider.sharedMesh = null; - } - } - } - - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs.meta deleted file mode 100644 index e56958e91..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessMeshObject.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 90274f04089fd9f48bf49eefd1fa16c8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs deleted file mode 100644 index 637530b2b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - public partial class SpatialAwarenessPlanarObject : BaseSpatialAwarenessObject - { - /// - /// The BoxCollider associated with this plane's GameObject. - /// - public BoxCollider Collider { get; set; } - - /// - /// Constructor. - /// - public SpatialAwarenessPlanarObject() : base() { } - - /// - /// Creates a . - /// - /// - /// SpatialAwarenessPlanarObject containing the fields that describe the plane. - /// - public static SpatialAwarenessPlanarObject CreateSpatialObject(Vector3 size, int layer, string name, int planeId) - { - SpatialAwarenessPlanarObject newMesh = new SpatialAwarenessPlanarObject(); - - newMesh.Id = planeId; - newMesh.GameObject = GameObject.CreatePrimitive(PrimitiveType.Cube); - newMesh.GameObject.layer = layer; - newMesh.GameObject.transform.localScale = size; - - newMesh.Filter = newMesh.GameObject.GetComponent(); - newMesh.Renderer = newMesh.GameObject.GetComponent(); - newMesh.Collider = newMesh.GameObject.GetComponent(); - - return newMesh; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs.meta deleted file mode 100644 index b85141ec2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessPlanarObject.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2d9842a78541d2045aad3a8161195c62 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs deleted file mode 100644 index 6d5893fce..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Enumeration defining the types of planar surfaces that are supported by the spatial awareness surface finding subsystem. - /// - [System.Flags] - public enum SpatialAwarenessSurfaceTypes - { - /// - /// An unknown / unsupported type of surface. - /// - Unknown = 1 << 0, - - /// - /// The environment’s floor. - /// - Floor = 1 << 1, - - /// - /// The environment’s ceiling. - /// - Ceiling = 1 << 2, - - /// - /// A wall within the user’s space. - /// - Wall = 1 << 3, - - /// - /// A raised, horizontal surface such as a shelf. - /// - /// - /// Platforms, like floors, that can be used for placing objects - /// requiring a horizontal surface. - /// - Platform = 1 << 4 - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs.meta deleted file mode 100644 index 8fbb5dec6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialAwarenessSurfaceTypes.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4928868ecc4076d40880a37740b8e492 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs deleted file mode 100644 index 567fed5c7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Options for how the spatial mesh is to be displayed by the spatial awareness system. - /// - public enum SpatialAwarenessMeshDisplayOptions - { - /// - /// Do not display the spatial mesh - /// - None = 0, - - /// - /// Display the spatial mesh using the configured material - /// - Visible, - - /// - /// Display the spatial mesh using the configured occlusion material - /// - Occlusion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs.meta deleted file mode 100644 index ec41f7c87..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/SpatialAwareness/SpatialMeshDisplayOptions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 63d8cc27a28ed1946a4690c625b93806 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities.meta deleted file mode 100644 index 250831a25..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f64522f38b6743178c98c60d303aeb23 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs deleted file mode 100644 index 4b105e272..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// A copy of the AnimatorControllerParameter because that class is not Serializable and cannot be modified in the editor. - /// - [Serializable] - public struct AnimatorParameter - { - /// - /// Constructor. - /// - /// Name of the animation parameter to modify. - /// Type of the animation parameter to modify. - /// If the animation parameter type is an int, value to set. Ignored otherwise. - /// If the animation parameter type is a float, value to set. Ignored otherwise. - /// "If the animation parameter type is a bool, value to set. Ignored otherwise. - public AnimatorParameter(string name, AnimatorControllerParameterType parameterType, int defaultInt = 0, float defaultFloat = 0f, bool defaultBool = false) - { - this.parameterType = parameterType; - this.defaultInt = defaultInt; - this.defaultFloat = defaultFloat; - this.defaultBool = defaultBool; - this.name = name; - nameStringHash = null; - } - - [SerializeField] - [Tooltip("Type of the animation parameter to modify.")] - private AnimatorControllerParameterType parameterType; - - /// - /// Type of the animation parameter to modify. - /// - public AnimatorControllerParameterType ParameterType => parameterType; - - [SerializeField] - [Tooltip("If the animation parameter type is an int, value to set. Ignored otherwise.")] - private int defaultInt; - - /// - /// If the animation parameter type is an int, value to set. Ignored otherwise. - /// - public int DefaultInt => defaultInt; - - [SerializeField] - [Tooltip("If the animation parameter type is a float, value to set. Ignored otherwise.")] - private float defaultFloat; - - /// - /// If the animation parameter type is a float, value to set. Ignored otherwise. - /// - public float DefaultFloat => defaultFloat; - - [SerializeField] - [Tooltip("If the animation parameter type is a bool, value to set. Ignored otherwise.")] - private bool defaultBool; - - /// - /// If the animation parameter type is a bool, value to set. Ignored otherwise. - /// - public bool DefaultBool => defaultBool; - - [SerializeField] - [Tooltip("Name of the animation parameter to modify.")] - private string name; - - /// - /// Name of the animation parameter to modify. - /// - public string Name => name; - - private int? nameStringHash; - - /// - /// Animator Name String to Hash. - /// - public int NameHash - { - get - { - if (!nameStringHash.HasValue && !string.IsNullOrEmpty(Name)) - { - nameStringHash = Animator.StringToHash(Name); - } - - Debug.Assert(nameStringHash != null); - return nameStringHash.Value; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs.meta deleted file mode 100644 index 4eebcd728..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AnimatorParameter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5a06e28a39fe4c848d5c994848297c41 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs deleted file mode 100644 index 59e56d0a1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs +++ /dev/null @@ -1,343 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using System; -using System.Collections.Generic; -using System.IO; - -#if UNITY_EDITOR -using UnityEditor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -#endif - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Shape of an articulated hand defined by joint poses. - /// - public class ArticulatedHandPose - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - /// - /// Joint poses are stored as right-hand poses in camera space. - /// Output poses are computed in world space, and mirroring on the x axis for the left hand. - /// - private MixedRealityPose[] localJointPoses; - - public ArticulatedHandPose() - { - localJointPoses = new MixedRealityPose[jointCount]; - SetZero(); - } - - public ArticulatedHandPose(MixedRealityPose[] _localJointPoses) - { - localJointPoses = new MixedRealityPose[jointCount]; - Array.Copy(_localJointPoses, localJointPoses, jointCount); - } - - public MixedRealityPose GetLocalJointPose(TrackedHandJoint joint, Handedness handedness) - { - MixedRealityPose pose = localJointPoses[(int)joint]; - - // Pose offset are for right hand, mirror on X axis if left hand is needed - if (handedness == Handedness.Left) - { - pose = new MixedRealityPose( - new Vector3(-pose.Position.x, pose.Position.y, pose.Position.z), - new Quaternion(pose.Rotation.x, -pose.Rotation.y, -pose.Rotation.z, pose.Rotation.w)); - } - - return pose; - } - - /// - /// Compute world space poses from camera-space joint data. - /// - /// Handedness of the resulting pose - /// Rotational offset of the resulting pose - /// Translational offset of the resulting pose - /// Output array of joint poses - public void ComputeJointPoses( - Handedness handedness, - Quaternion rotation, - Vector3 position, - MixedRealityPose[] jointsOut) - { - for (int i = 0; i < jointCount; i++) - { - // Initialize from local offsets - MixedRealityPose pose = GetLocalJointPose((TrackedHandJoint)i, handedness); - Vector3 p = pose.Position; - Quaternion r = pose.Rotation; - - // Apply external transform - p = position + rotation * p; - r = rotation * r; - - jointsOut[i] = new MixedRealityPose(p, r); - } - } - - /// - /// Take world space joint poses from any hand and convert into right-hand, camera-space poses. - /// - /// Input joint poses - /// Handedness of the input data - /// Rotational offset of the input data - /// Translational offset of the input data - public void ParseFromJointPoses( - MixedRealityPose[] joints, - Handedness handedness, - Quaternion rotation, - Vector3 position) - { - Quaternion invRotation = Quaternion.Inverse(rotation); - Quaternion invCameraRotation = Quaternion.Inverse(CameraCache.Main.transform.rotation); - - for (int i = 0; i < jointCount; i++) - { - Vector3 p = joints[i].Position; - Quaternion r = joints[i].Rotation; - - // Apply inverse external transform - p = invRotation * (p - position); - r = invRotation * r; - - // To camera space - p = invCameraRotation * p; - r = invCameraRotation * r; - - // Pose offset are for right hand, mirror on X axis if left hand is given - if (handedness == Handedness.Left) - { - p.x = -p.x; - r.y = -r.y; - r.z = -r.z; - } - - localJointPoses[i] = new MixedRealityPose(p, r); - } - } - - /// - /// Set all poses to zero. - /// - public void SetZero() - { - for (int i = 0; i < jointCount; i++) - { - localJointPoses[i] = MixedRealityPose.ZeroIdentity; - } - } - - /// - /// Copy data from another articulated hand pose. - /// - public void Copy(ArticulatedHandPose other) - { - Array.Copy(other.localJointPoses, localJointPoses, jointCount); - } - - /// - /// Blend between two hand poses. - /// - public void InterpolateOffsets(ArticulatedHandPose poseA, ArticulatedHandPose poseB, float value) - { - for (int i = 0; i < jointCount; i++) - { - var p = Vector3.Lerp(poseA.localJointPoses[i].Position, poseB.localJointPoses[i].Position, value); - var r = Quaternion.Slerp(poseA.localJointPoses[i].Rotation, poseB.localJointPoses[i].Rotation, value); - localJointPoses[i] = new MixedRealityPose(p, r); - } - } - - /// - /// Supported hand gestures. - /// - public enum GestureId - { - /// - /// Unspecified hand shape - /// - None = 0, - /// - /// Flat hand with fingers spread out - /// - Flat, - /// - /// Relaxed hand pose - /// - Open, - /// - /// Index finger and Thumb touching, grab point does not move - /// - Pinch, - /// - /// Index finger and Thumb touching, wrist does not move - /// - PinchSteadyWrist, - /// - /// Index finger stretched out - /// - Poke, - /// - /// Grab with whole hand, fist shape - /// - Grab, - /// - /// OK sign - /// - ThumbsUp, - /// - /// Victory sign - /// - Victory, - /// - /// Relaxed hand pose, grab point does not move - /// - OpenSteadyGrabPoint, - } - - [Obsolete("Use SimulatedArticulatedHandPoses class or other custom class")] - private static readonly Dictionary handPoses = new Dictionary(); - - /// - /// Get pose data for a supported gesture. - /// - [Obsolete("Use SimulatedArticulatedHandPoses.GetGesturePose() or other custom class")] - public static ArticulatedHandPose GetGesturePose(GestureId gesture) - { - if (handPoses.TryGetValue(gesture, out ArticulatedHandPose pose)) - { - return pose; - } - return null; - } - -#if UNITY_EDITOR - /// - /// Load pose data from files. - /// - [Obsolete("Use SimulatedArticulatedHandPoses or other custom class")] - public static void LoadGesturePoses() - { - string[] gestureNames = Enum.GetNames(typeof(GestureId)); - string basePath = Path.Combine("InputSimulation", "ArticulatedHandPoses"); - for (int i = 0; i < gestureNames.Length; ++i) - { - string relPath = Path.Combine(basePath, String.Format("ArticulatedHandPose_{0}.json", gestureNames[i])); - string absPath = MixedRealityToolkitFiles.MapRelativeFilePath(MixedRealityToolkitModuleType.Services, relPath); - LoadGesturePose((GestureId)i, absPath); - } - } - - [Obsolete("Use SimulatedArticulatedHandPoses class or other custom class")] - private static ArticulatedHandPose LoadGesturePose(GestureId gesture, string filePath) - { - if (!string.IsNullOrEmpty(filePath)) - { - var pose = new ArticulatedHandPose(); - pose.FromJson(File.ReadAllText(filePath)); - handPoses.Add(gesture, pose); - return pose; - } - return null; - } - - [Obsolete("Use SimulatedArticulatedHandPoses class or other custom class")] - public static void ResetGesturePoses() - { - handPoses.Clear(); - } -#endif - - /// Utility class to serialize hand pose as a dictionary with full joint names - [Serializable] - internal struct ArticulatedHandPoseItem - { - private static readonly string[] jointNames = Enum.GetNames(typeof(TrackedHandJoint)); - - public string joint; - public MixedRealityPose pose; - - public TrackedHandJoint JointIndex - { - get - { - int nameIndex = Array.FindIndex(jointNames, IsJointName); - if (nameIndex < 0) - { - Debug.LogError($"Joint name {joint} not in TrackedHandJoint enum"); - return TrackedHandJoint.None; - } - return (TrackedHandJoint)nameIndex; - } - set { joint = jointNames[(int)value]; } - } - - private bool IsJointName(string s) - { - return s == joint; - } - - public ArticulatedHandPoseItem(TrackedHandJoint joint, MixedRealityPose pose) - { - this.joint = jointNames[(int)joint]; - this.pose = pose; - } - } - - /// Utility class to serialize hand pose as a dictionary with full joint names - [Serializable] - internal class ArticulatedHandPoseDictionary - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - public ArticulatedHandPoseItem[] items = null; - - public void FromJointPoses(MixedRealityPose[] jointPoses) - { - items = new ArticulatedHandPoseItem[jointCount]; - for (int i = 0; i < jointCount; ++i) - { - items[i].JointIndex = (TrackedHandJoint)i; - items[i].pose = jointPoses[i]; - } - } - - public void ToJointPoses(MixedRealityPose[] jointPoses) - { - for (int i = 0; i < jointCount; ++i) - { - jointPoses[i] = MixedRealityPose.ZeroIdentity; - } - foreach (var item in items) - { - jointPoses[(int)item.JointIndex] = item.pose; - } - } - } - - /// - /// Serialize pose data to JSON format. - /// - public string ToJson() - { - var dict = new ArticulatedHandPoseDictionary(); - dict.FromJointPoses(localJointPoses); - return JsonUtility.ToJson(dict, true); - } - - /// - /// Deserialize pose data from JSON format. - /// - public void FromJson(string json) - { - var dict = JsonUtility.FromJson(json); - dict.ToJointPoses(localJointPoses); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs.meta deleted file mode 100644 index 50ecd4ee9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ArticulatedHandPose.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 521d0baa937716a4fbcfed7bd6bbde0e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs deleted file mode 100644 index b9d2ea9b6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// This enumeration identifies two different ways to handle the startup behavior for a feature. - /// Both will warm up the component, ready for its use (e.g. connecting backend services or registering for events. - /// The first causes the feature to start immediately. The second allows the feature to be manually started at a later time. - /// - public enum AutoStartBehavior - { - /// - /// Automatically start the feature - /// - AutoStart = 0, - /// - /// Delay the start of the feature until the user requests it to begin - /// - ManualStart - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs.meta deleted file mode 100644 index db8a3ce08..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AutoStartBehavior.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 22ae876eef4f0e647a461b56ef37893e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs deleted file mode 100644 index 7f673f759..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Flags used to represent a set of 3D axes - /// - [System.Flags] - public enum AxisFlags - { - XAxis = 1 << 0, - YAxis = 1 << 1, - ZAxis = 1 << 2 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs.meta deleted file mode 100644 index 6b2cf4383..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisFlags.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0b4e4a9d78a31d044857f2fdabe5a4fc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs deleted file mode 100644 index a1b85872c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The AxisType identifies the type of button or input being sent to the framework from a controller. - /// This is mainly information only or for advanced users to understand the input coming directly from the controller. - /// - public enum AxisType - { - /// - /// No Specified type. - /// - None = 0, - /// - /// Raw stream from input (proxy only). - /// - Raw, - /// - /// Digital On/Off input. - /// - Digital, - /// - /// Single Axis analogue input. - /// - SingleAxis, - /// - /// Dual Axis analogue input. - /// - DualAxis, - /// - /// Position only Axis analogue input. - /// - ThreeDofPosition, - /// - /// Rotation only Axis analogue input. - /// - ThreeDofRotation, - /// - /// Position AND Rotation analogue input. - /// - SixDof - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs.meta deleted file mode 100644 index f1de1a99c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/AxisType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15ab48ddceae418a8c8d072ee1ea658c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs deleted file mode 100644 index 1434e938b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Collation order type used for sorting - /// - public enum CollationOrder - { - /// - /// Don't sort, just display in order received - /// - None = 0, - /// - /// Sort by child order of parent - /// - ChildOrder, - /// - /// Sort by transform name - /// - Alphabetical, - /// - /// Sort by child order of parent, reversed - /// - ChildOrderReversed, - /// - /// Sort by transform name, reversed - /// - AlphabeticalReversed - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs.meta deleted file mode 100644 index 37bcd2b4d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/CollationOrder.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1a692aa62f838a94988eb5b913d5939b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs deleted file mode 100644 index 7d6221846..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The ExperienceScale identifies the environment for which the experience is designed. - /// - [System.Serializable] - public enum ExperienceScale - { - /// - /// An experience which utilizes only the headset orientation and is gravity aligned. The coordinate system origin is at head level. - /// - OrientationOnly = 0, - /// - /// An experience designed for seated use. The coordinate system origin is at head level. - /// - Seated, - /// - /// An experience designed for stationary standing use. The coordinate system origin is at floor level. - /// - Standing, - /// - /// An experience designed to support movement throughout a room. The coordinate system origin is at floor level. - /// - Room, - /// - /// An experience designed to utilize and move through the physical world. The coordinate system origin is at head level. - /// - World - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs.meta deleted file mode 100644 index 6cbd14d9a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ExperienceScale.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 76a29d9960bc445289c706baa75160d7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs deleted file mode 100644 index 354df3fc1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The Handedness defines which hand a controller is currently operating in. - /// It is up to the developer to determine whether this affects the use of a controller or not. - /// "Other" defines potential controllers that will offer a "third" hand, e.g. a full body tracking suit. - /// - [Flags] - public enum Handedness : byte - { - /// - /// No hand specified by the SDK for the controller - /// - None = 0 << 0, - /// - /// The controller is identified as being provided in a Left hand - /// - Left = 1 << 0, - /// - /// The controller is identified as being provided in a Right hand - /// - Right = 1 << 1, - /// - /// The controller is identified as being either left and/or right handed. - /// - Both = Left | Right, - /// - /// Reserved, for systems that provide alternate hand state. - /// - Other = 1 << 2, - /// - /// Global catchall, used to map actions to any controller (provided the controller supports it) - /// - /// Note, by default the specific hand actions will override settings mapped as both - Any = Other | Left | Right, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs.meta deleted file mode 100644 index a12d3cee9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Handedness.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f7c9d27c99e649e983cab045ea9aaea1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs deleted file mode 100644 index 94aae789b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Flags used to represent the number of hands that can be used in manipulation - /// - [System.Flags] - public enum ManipulationHandFlags - { - OneHanded = 1 << 0, - TwoHanded = 1 << 1, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs.meta deleted file mode 100644 index e490945a8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationHandFlags.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 331dc46d2942d1947964376312ddc59c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs deleted file mode 100644 index 5ffcb2ac6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Flags used to represent whether manipulation can be far, near or both - /// - [System.Flags] - public enum ManipulationProximityFlags - { - Near = 1 << 0, - Far = 1 << 1, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs.meta deleted file mode 100644 index c1e51fefb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ManipulationProximityFlags.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c3cf8def1e3e5484c86b3dc60576feba -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs deleted file mode 100644 index 5ff68df8d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Mixed reality platform capabilities. - /// - public enum MixedRealityCapability - { - /// - /// Articulated hand input - /// - ArticulatedHand = 0, - - /// - /// Gaze-Gesture-Voice hand input - /// - GGVHand, - - /// - /// Motion controller input - /// - MotionController, - - /// - /// Eye gaze targeting - /// - EyeTracking, - - /// - /// Voice commands using app defined keywords - /// - VoiceCommand, - - /// - /// Voice to text dictation - /// - VoiceDictation, - - /// - /// Spatial meshes - /// - SpatialAwarenessMesh, - - /// - /// Spatial planes - /// - SpatialAwarenessPlane, - - /// - /// Spatial points - /// - SpatialAwarenessPoint - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs.meta deleted file mode 100644 index 1c343e916..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityCapability.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 05049f6c0dbfa71458a983f2bdc55920 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs deleted file mode 100644 index 7b0be7e27..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - [Serializable] - public struct MixedRealityPose : IEqualityComparer - { - /// - /// Constructor. - /// - public MixedRealityPose(Vector3 position, Quaternion rotation) - { - this.position = position; - this.rotation = rotation; - } - - /// - /// Constructor. - /// - public MixedRealityPose(Vector3 position) - { - this.position = position; - rotation = Quaternion.identity; - } - - /// - /// Constructor. - /// - public MixedRealityPose(Quaternion rotation) - { - position = Vector3.zero; - this.rotation = rotation; - } - - /// - /// The default value for a Six Dof Transform. - /// - /// - /// Vector3.zero and Quaternion.identity. - /// - public static MixedRealityPose ZeroIdentity { get; } = new MixedRealityPose(Vector3.zero, Quaternion.identity); - - [SerializeField] - [Tooltip("The position of the pose")] - private Vector3 position; - - /// - /// The position of the pose. - /// - public Vector3 Position { get { return position; } set { position = value; } } - - [SerializeField] - [Tooltip("The rotation of the pose.")] - private Quaternion rotation; - - /// - /// The rotation of the pose. - /// - public Quaternion Rotation { get { return rotation; } set { rotation = value; } } - - public static MixedRealityPose operator +(MixedRealityPose left, MixedRealityPose right) - { - return new MixedRealityPose(left.Position + right.Position, left.Rotation * right.Rotation); - } - - public static bool operator ==(MixedRealityPose left, MixedRealityPose right) - { - return left.Equals(right); - } - - public static bool operator !=(MixedRealityPose left, MixedRealityPose right) - { - return !left.Equals(right); - } - - public override string ToString() - { - return $"{position} | {rotation}"; - } - - /// - /// The Z axis of the pose in world space. - /// - public Vector3 Forward => rotation * Vector3.forward; - - /// - /// The Y axis of the pose in world space. - /// - public Vector3 Up => rotation * Vector3.up; - - /// - /// The X axis of the pose in world space. - /// - public Vector3 Right => rotation * Vector3.right; - - #region IEqualityComparer Implementation - - bool IEqualityComparer.Equals(object left, object right) - { - if (ReferenceEquals(null, left) || ReferenceEquals(null, right)) { return false; } - if (!(left is MixedRealityPose) || !(right is MixedRealityPose)) { return false; } - return ((MixedRealityPose)left).Equals((MixedRealityPose)right); - } - - public bool Equals(MixedRealityPose other) - { - return Position == other.Position && - Rotation.Equals(other.Rotation); - } - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) { return false; } - return obj is MixedRealityPose && Equals((MixedRealityPose)obj); - } - - int IEqualityComparer.GetHashCode(object obj) - { - return obj is MixedRealityPose ? ((MixedRealityPose)obj).GetHashCode() : 0; - } - - /// - public override int GetHashCode() - { - return base.GetHashCode(); - } - - #endregion IEqualityComparer Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs.meta deleted file mode 100644 index 8a57ce705..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityPose.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f0c78c64d2484ac98ee537d88340eaac -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs deleted file mode 100644 index 2e124bf7d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - [Serializable] - public struct MixedRealityTransform : IEqualityComparer - { - - /// - /// Constructor. - /// - public MixedRealityTransform(Transform transform) - { - this.pose = new MixedRealityPose(transform.position, transform.rotation); - this.scale = transform.localScale; - } - - /// - /// Constructor. - /// - public MixedRealityTransform(Vector3 position, Quaternion rotation, Vector3 scale) - { - this.pose = new MixedRealityPose(position, rotation); - this.scale = scale; - } - - /// - /// Create a transform with only given position - /// - public static MixedRealityTransform NewTranslate(Vector3 position) - { - return new MixedRealityTransform(position, Quaternion.identity, Vector3.one); - } - - /// - /// Create a transform with only given rotation - /// - public static MixedRealityTransform NewRotate(Quaternion rotation) - { - return new MixedRealityTransform(Vector3.zero, rotation, Vector3.one); - } - - /// - /// Create a transform with only given scale - /// - public static MixedRealityTransform NewScale(Vector3 scale) - { - return new MixedRealityTransform(Vector3.zero, Quaternion.identity, scale); - } - - /// - /// The default value for a Six Dof Transform. - /// - public static MixedRealityTransform Identity { get; } = new MixedRealityTransform(Vector3.zero, Quaternion.identity, Vector3.one); - - [SerializeField] - [Tooltip("The pose (position and rotation) of the transform")] - private MixedRealityPose pose; - - /// - /// The position of the transform. - /// - public Vector3 Position { get { return pose.Position; } set { pose.Position = value; } } - - /// - /// The rotation of the transform. - /// - public Quaternion Rotation { get { return pose.Rotation; } set { pose.Rotation = value; } } - - [SerializeField] - [Tooltip("The scale of the transform.")] - private Vector3 scale; - - /// - /// The scale of the transform. - /// - public Vector3 Scale { get { return scale; } set { scale = value; } } - - public static MixedRealityTransform operator +(MixedRealityTransform left, MixedRealityTransform right) - { - return new MixedRealityTransform(left.Position + right.Position, left.Rotation * right.Rotation, Vector3.Scale(left.Scale, right.Scale)); - } - - public static bool operator ==(MixedRealityTransform left, MixedRealityTransform right) - { - return left.Equals(right); - } - - public static bool operator !=(MixedRealityTransform left, MixedRealityTransform right) - { - return !left.Equals(right); - } - - public override string ToString() - { - return $"{pose.Position} | {pose.Rotation}"; - } - - /// - /// The Z axis of the pose in world space. - /// - public Vector3 Forward => (pose.Rotation * Vector3.Scale(scale, Vector3.forward)).normalized; - - /// - /// The Y axis of the pose in world space. - /// - public Vector3 Up => (pose.Rotation * Vector3.Scale(scale, Vector3.up)).normalized; - - /// - /// The X axis of the pose in world space. - /// - public Vector3 Right => (pose.Rotation * Vector3.Scale(scale, Vector3.right)).normalized; - - #region IEqualityComparer Implementation - - bool IEqualityComparer.Equals(object left, object right) - { - if (ReferenceEquals(null, left) || ReferenceEquals(null, right)) { return false; } - if (!(left is MixedRealityTransform) || !(right is MixedRealityTransform)) { return false; } - return ((MixedRealityTransform)left).Equals((MixedRealityTransform)right); - } - - public bool Equals(MixedRealityTransform other) - { - return Position == other.Position && - Rotation.Equals(other.Rotation); - } - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) { return false; } - return obj is MixedRealityTransform && Equals((MixedRealityTransform)obj); - } - - int IEqualityComparer.GetHashCode(object obj) - { - return obj is MixedRealityTransform ? ((MixedRealityTransform)obj).GetHashCode() : 0; - } - - /// - public override int GetHashCode() - { - return base.GetHashCode(); - } - - #endregion IEqualityComparer Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs.meta deleted file mode 100644 index 5f988b451..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MixedRealityTransform.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1d7fa471ae4170f47b4c1a95066463de -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs deleted file mode 100644 index 2d8950eca..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public enum MovementConstraintType - { - None, - FixDistanceFromHead - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs.meta deleted file mode 100644 index 062b7b04a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/MovementConstraintType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5fdbd32439c550040b98b93849f33078 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs deleted file mode 100644 index 66e778e78..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Orientation type enum - /// - public enum OrientationType - { - /// - /// Don't rotate at all - /// - None = 0, - /// - /// Rotate towards the origin - /// - FaceOrigin, - /// - /// Rotate towards the origin + 180 degrees - /// - FaceOriginReversed, - /// - /// Zero rotation - /// - FaceParentFoward, - /// - /// Zero rotation + 180 degrees - /// - FaceParentForwardReversed, - /// - /// Parent Relative Up - /// - FaceParentUp, - /// - /// Parent Relative Down - /// - FaceParentDown, - /// - /// Lay flat on the surface, facing in - /// - FaceCenterAxis, - /// - /// Lay flat on the surface, facing out - /// - FaceCenterAxisReversed - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs.meta deleted file mode 100644 index 1ead34d1e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/OrientationType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6941589aece774f4a9d93c1bceaca1e0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs deleted file mode 100644 index 7ea694cb5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Rotational Pivot axis for orientating an object - /// - public enum PivotAxis - { - // Most common options, preserving current functionality with the same enum order. - XY, - Y, - // Rotate about an individual axis. - X, - Z, - // Rotate about a pair of axes. - XZ, - YZ, - // Rotate about all axes. - Free - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs.meta deleted file mode 100644 index 267425087..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/PivotAxis.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 49901ddaa7d249c1b4430e2ba899aff8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs deleted file mode 100644 index 07d57fc19..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Result from a completed asynchronous process. - /// - public struct ProcessResult - { - /// - /// Exit code from completed process. - /// - public int ExitCode { get; } - - /// - /// Errors from completed process. - /// - public string[] Errors { get; } - - /// - /// Output from completed process. - /// - public string[] Output { get; } - - /// - /// Constructor for Process Result. - /// - /// Exit code from completed process. - /// Errors from completed process. - /// Output from completed process. - public ProcessResult(int exitCode, string[] errors, string[] output) : this() - { - ExitCode = exitCode; - Errors = errors; - Output = output; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs.meta deleted file mode 100644 index f3cbc763b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProcessResult.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: de687c792c284b8da7c1fd44165967f6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs deleted file mode 100644 index fab46da4d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Defines the display order of the Assets > Create > Mixed Reality Toolkit > Profiles menu items. - /// - public enum CreateProfileMenuItemIndices - { - Configuration = 0, - Camera, - Input, - Pointer, - ControllerMapping, - InputActions, - InputActionRules, - Speech, - BoundaryVisualization, - ControllerVisualization, - SpatialAwareness, // todo: remove - SpatialAwarenessMeshObserver, - SpatialAwarenessSurfaceObserver, - Gestures, - Diagnostics, - RegisteredServiceProviders, - InputSimulation, - HandTracking, - EyeTracking, - MouseInput, - SceneSystem, - - Assembly = 99, - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs.meta deleted file mode 100644 index a923b3d31..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ProfileMenuItemIndices.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 87707e41c37bc4848a02261a1c24e8ae -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs deleted file mode 100644 index 77c9b328c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Which direction to orient the radial view object. - /// - public enum RadialViewReferenceDirection - { - /// - /// Orient towards the target including roll, pitch and yaw - /// - ObjectOriented, - /// - /// Orient toward the target but ignore roll - /// - FacingWorldUp, - /// - /// Orient towards the target but remain vertical or gravity aligned - /// - GravityAligned - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs.meta deleted file mode 100644 index dce3de541..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RadialViewReferenceDirection.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c8285c2d275087649879c53375090ec1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs deleted file mode 100644 index d17768252..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Indicates the confidence level of a recognized event. - /// - public enum RecognitionConfidenceLevel - { - High = 0, - Medium, - Low, - Unknown - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs.meta deleted file mode 100644 index ccc8fa8a6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RecognitionConfidenceLevel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cdb18394f18caaf4494b3f283304d6a9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs deleted file mode 100644 index f1dbfe0b2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public enum RotationConstraintType - { - None, - XAxisOnly, - YAxisOnly, - ZAxisOnly - } - - /// - /// Helper class used to convert from RotationConstraintType to AxisFlags - /// - public class RotationConstraintHelper - { - /// - /// Returns corresponding AxisFlags for given RotationConstraintType - /// - public static AxisFlags ConvertToAxisFlags(RotationConstraintType type) - { - switch (type) - { - case RotationConstraintType.XAxisOnly: - return AxisFlags.YAxis | AxisFlags.ZAxis; - case RotationConstraintType.YAxisOnly: - return AxisFlags.XAxis | AxisFlags.ZAxis; - case RotationConstraintType.ZAxisOnly: - return AxisFlags.XAxis | AxisFlags.YAxis; - default: - return 0; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs.meta deleted file mode 100644 index 44af2d3a8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/RotationConstraintType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2197541262093a249b139e0fc9cead7f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs deleted file mode 100644 index f9e9c41a7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public enum ScaleState - { - Static = 0, - Shrinking, - Growing - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs.meta deleted file mode 100644 index f9a645ec8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/ScaleState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c00bb86474e9d2240a0cf235cd8798cc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs deleted file mode 100644 index 43d1da126..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Attribute for using a SceneAssetReference property drawer. - /// - [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] - public class SceneAssetReferenceAttribute : PropertyAttribute { } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs.meta deleted file mode 100644 index 077681acd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SceneAssetReferenceAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d8c1459d933a37948b973c8875ff6a51 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs deleted file mode 100644 index 25793e9bf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public enum SolverOrientationType - { - /// - /// Use the tracked object's pitch, yaw, and roll - /// - FollowTrackedObject = 0, - /// - /// Face toward the tracked object - /// - FaceTrackedObject, - /// - /// Orient towards SolverHandler's tracked object or TargetTransform - /// - YawOnly, - /// - /// Leave the object's rotation alone - /// - Unmodified, - /// - /// Orient toward the main camera instead of SolverHandler's properties. - /// - CameraFacing, - /// - /// Align parallel to the direction the camera is facing - /// - CameraAligned - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs.meta deleted file mode 100644 index 4a8f6d7c8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SolverOrientationType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c62bd8110c3bfcf4eadfada5bc89722a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs deleted file mode 100644 index 7a989c16d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The supported Application modes for specific features. - /// - /// - /// This enum can be used to configure specific features to have differing behaviors when run in editor. - /// - [Flags] - public enum SupportedApplicationModes - { - /// - /// This indicates that the feature is relevant in editor scenarios. - /// - Editor = 1 << 0, - - /// - /// This indicates that the feature is relevant in player scenarios. - /// - Player = 1 << 1, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs.meta deleted file mode 100644 index 4cda1ef8e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedApplicationModes.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8a74339227fff1e42aebfa58eaae1f19 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs deleted file mode 100644 index 0c4ab0bc2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The supported platforms for Mixed Reality Toolkit Components and Features. - /// - [Flags] - public enum SupportedPlatforms - { - WindowsStandalone = 1 << 0, - MacStandalone = 1 << 1, - LinuxStandalone = 1 << 2, - WindowsUniversal = 1 << 3, - WindowsEditor = 1 << 4, - Android = 1 << 5, - MacEditor = 1 << 6, - LinuxEditor = 1 << 7, - IOS = 1 << 8, - Web = 1 << 9, - Lumin = 1 << 10 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs.meta deleted file mode 100644 index 2e7d161ac..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SupportedPlatforms.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6dca6753a2924f5d9301605e4f662702 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs deleted file mode 100644 index 9c4d62235..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if WINDOWS_UWP && !ENABLE_IL2CPP -using Microsoft.MixedReality.Toolkit; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Reference to a class with support for Unity serialization. - /// - [Serializable] - public sealed class SystemType : ISerializationCallbackReceiver - { - [SerializeField] - private string reference = string.Empty; - - private Type type; - - public static string GetReference(Type type) - { - if (type == null || string.IsNullOrEmpty(type.AssemblyQualifiedName)) - { - return string.Empty; - } - - string[] qualifiedNameComponents = type.AssemblyQualifiedName.Split(','); - Debug.Assert(qualifiedNameComponents.Length >= 2); - return $"{qualifiedNameComponents[0]}, {qualifiedNameComponents[1].Trim()}"; - } - - /// - /// Initializes a new instance of the class. - /// - /// Assembly qualified class name. - public SystemType(string assemblyQualifiedClassName) - { - if (!string.IsNullOrEmpty(assemblyQualifiedClassName)) - { - Type = Type.GetType(assemblyQualifiedClassName); - -#if WINDOWS_UWP && !ENABLE_IL2CPP - if (Type != null && Type.IsAbstract()) -#else - if (Type != null && Type.IsAbstract) -#endif // WINDOWS_UWP && !ENABLE_IL2CPP - { - Type = null; - } - } - else - { - Type = null; - } - } - - /// - /// Initializes a new instance of the class. - /// - /// Class type. - /// - /// If is not a class type. - /// - public SystemType(Type type) - { - Type = type; - } - - #region ISerializationCallbackReceiver Members - - void ISerializationCallbackReceiver.OnAfterDeserialize() - { - // Class references may move between asmdef or be renamed throughout MRTK development - // Check to see if we need to update our reference value - reference = TryMigrateReference(reference); - - type = !string.IsNullOrEmpty(reference) ? Type.GetType(reference) : null; - } - - void ISerializationCallbackReceiver.OnBeforeSerialize() { } - - #endregion ISerializationCallbackReceiver Members - - /// - /// Gets or sets type of class reference. - /// - /// - /// If is not a class type. - /// - public Type Type - { - get => type; - set - { - if (value != null) - { -#if WINDOWS_UWP && !ENABLE_IL2CPP - bool isValid = value.IsValueType() && !value.IsEnum() && !value.IsAbstract() || value.IsClass(); -#else - bool isValid = value.IsValueType && !value.IsEnum && !value.IsAbstract || value.IsClass; -#endif // WINDOWS_UWP && !ENABLE_IL2CPP - if (!isValid) - { - Debug.LogError($"'{value.FullName}' is not a valid class or struct type."); - } - } - - type = value; - reference = GetReference(value); - } - } - - public static implicit operator string(SystemType type) - { - return type.reference; - } - - public static implicit operator Type(SystemType type) - { - return type.Type; - } - - public static implicit operator SystemType(Type type) - { - return new SystemType(type); - } - - public override string ToString() - { - return Type?.FullName ?? "(None)"; - } - - // Key == original reference string entry, value == new migrated placement - // String values are broken into {namespace.classname, asmdef} - private static Dictionary ReferenceMappings = new Dictionary() - { - { "Microsoft.MixedReality.Toolkit.Input.InputSimulationService, Microsoft.MixedReality.Toolkit.Services.InputSimulation.Editor", - "Microsoft.MixedReality.Toolkit.Input.InputSimulationService, Microsoft.MixedReality.Toolkit.Services.InputSimulation" }, - - { "Microsoft.MixedReality.Toolkit.Input.InputPlaybackService, Microsoft.MixedReality.Toolkit.Services.InputSimulation.Editor", - "Microsoft.MixedReality.Toolkit.Input.InputPlaybackService, Microsoft.MixedReality.Toolkit.Services.InputSimulation" }, - }; - - /// - /// This function checks if there are any known migrations for old class names, namespaces, and/or asmdef files - /// If so, the new reference string is returned and utilized for editor runtime and will be serialized to disk - /// - private static string TryMigrateReference(string reference) - { - if (ReferenceMappings.ContainsKey(reference)) - { - return ReferenceMappings[reference]; - } - - return reference; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs.meta deleted file mode 100644 index 939950132..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/SystemType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 05816c45081244eda99c58788b66f0e9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs deleted file mode 100644 index bc7ee7b4e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The supported tracked hand joints. - /// - /// See https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand#/media/File:Scheme_human_hand_bones-en.svg for joint name definitions. - public enum TrackedHandJoint - { - None = 0, - /// - /// The wrist. - /// - Wrist, - /// - /// The palm. - /// - Palm, - /// - /// The lowest joint in the thumb (down in your palm). - /// - ThumbMetacarpalJoint, - /// - /// The thumb's second (middle-ish) joint. - /// - ThumbProximalJoint, - /// - /// The thumb's first (furthest) joint. - /// - ThumbDistalJoint, - /// - /// The tip of the thumb. - /// - ThumbTip, - /// - /// The lowest joint of the index finger. - /// - IndexMetacarpal, - /// - /// The knuckle joint of the index finger. - /// - IndexKnuckle, - /// - /// The middle joint of the index finger. - /// - IndexMiddleJoint, - /// - /// The joint nearest the tip of the index finger. - /// - IndexDistalJoint, - /// - /// The tip of the index finger. - /// - IndexTip, - /// - /// The lowest joint of the middle finger. - /// - MiddleMetacarpal, - /// - /// The knuckle joint of the middle finger. - /// - MiddleKnuckle, - /// - /// The middle joint of the middle finger. - /// - MiddleMiddleJoint, - /// - /// The joint nearest the tip of the finger. - /// - MiddleDistalJoint, - /// - /// The tip of the middle finger. - /// - MiddleTip, - /// - /// The lowest joint of the ring finger. - /// - RingMetacarpal, - /// - /// The knuckle of the ring finger. - /// - RingKnuckle, - /// - /// The middle joint of the ring finger. - /// - RingMiddleJoint, - /// - /// The joint nearest the tip of the ring finger. - /// - RingDistalJoint, - /// - /// The tip of the ring finger. - /// - RingTip, - /// - /// The lowest joint of the pinky finger. - /// - PinkyMetacarpal, - /// - /// The knuckle joint of the pinky finger. - /// - PinkyKnuckle, - /// - /// The middle joint of the pinky finger. - /// - PinkyMiddleJoint, - /// - /// The joint nearest the tip of the pink finger. - /// - PinkyDistalJoint, - /// - /// The tip of the pinky. - /// - PinkyTip - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs.meta deleted file mode 100644 index edeb48432..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedHandJoint.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 05dbaa414de760145a4a85c115550377 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs deleted file mode 100644 index bbad79754..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public enum TrackedObjectType - { - /// - /// Calculates position and orientation from the main camera. - /// - Head = 0, - - /// - /// (Obsolete) Calculates position and orientation from the left motion-tracked controller. - /// - [Obsolete("Use TrackedObjectType.ControllerRay and TrackedHandedness instead")] - MotionControllerLeft = 1, - /// - /// (Obsolete) Calculates position and orientation from the right motion-tracked controller. - /// - [Obsolete("Use TrackedObjectType.ControllerRay and TrackedHandedness instead")] - MotionControllerRight = 2, - /// - /// (Obsolete) Calculates position and orientation from a tracked hand joint on the left hand. - /// - [Obsolete("Use TrackedObjectType.HandJoint and TrackedHandedness instead")] - HandJointLeft = 3, - /// - /// (Obsolete) Calculates position and orientation from a tracked hand joint on the right hand. - /// - [Obsolete("Use TrackedObjectType.HandJoint and TrackedHandedness instead")] - HandJointRight = 4, - - /// - /// Calculates position and orientation from the system-calculated ray of available controller (i.e motion controllers, hands, etc.) - /// - ControllerRay = 5, - /// - /// Calculates position and orientation from a tracked hand joint - /// - HandJoint = 6, - /// - /// Calculates position and orientation from a tracked hand joint - /// - CustomOverride = 7, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs.meta deleted file mode 100644 index a4f79f0cc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TrackedObjectType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 04704bde8ca35fd459c4ae5e88fde2ac -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs deleted file mode 100644 index f5a08be9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Flags used to represent a combination of different types of transformation - /// - [System.Flags] - public enum TransformFlags - { - Move = 1 << 0, - Rotate = 1 << 1, - Scale = 1 << 2 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs.meta deleted file mode 100644 index 3ac0a420b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TransformFlags.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1d5ea1b268c1f344b808b6ab28fc551e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs deleted file mode 100644 index 6e0f02e27..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Indicates how selectable classes should be collated in drop-down menu. - /// - public enum TypeGrouping - { - /// - /// No grouping, just show type names in a list; for instance, "Some.Nested.Namespace.SpecialClass". - /// - None, - - /// - /// Group classes by namespace and show foldout menus for nested namespaces; for - /// instance, "Some > Nested > Namespace > SpecialClass". - /// - ByNamespace, - - /// - /// Group classes by namespace; for instance, "Some.Nested.Namespace > SpecialClass". - /// - ByNamespaceFlat, - - /// - /// Group classes in the same way as Unity does for its component menu. This - /// grouping method must only be used for MonoBehaviour types. - /// - ByAddComponentMenu, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs.meta deleted file mode 100644 index 2076a1b80..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/TypeGrouping.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: eea43dd3544c41ec99fbd9875645181d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs deleted file mode 100644 index 0f72a4adb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - [Serializable] - public struct Vector3Smoothed - { - public Vector3 Current { get; set; } - public Vector3 Goal { get; set; } - public float SmoothTime { get; set; } - - public Vector3Smoothed(Vector3 value, float smoothingTime) : this() - { - Current = value; - Goal = value; - SmoothTime = smoothingTime; - } - - public void Update(float deltaTime) - { - Current = Vector3.Lerp(Current, Goal, (Math.Abs(SmoothTime) < Mathf.Epsilon) ? 1.0f : deltaTime / SmoothTime); - } - - public void SetGoal(Vector3 newGoal) - { - Goal = newGoal; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs.meta deleted file mode 100644 index 617a0de21..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/Vector3Smoothed.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d0388f3cdf0f6ad42b5d2e84e2d5bd75 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs deleted file mode 100644 index 487c17038..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// todo - /// - public enum VolumeType - { - /// - /// No Specified type. - /// - None = 0, - - /// - /// Cubic volume aligned with the coordinate axes. - /// - AxisAlignedCube, - - /// - /// Cubic volume aligned with the user. - /// - UserAlignedCube, - - /// - /// Spherical volume. - /// - Sphere - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs.meta b/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs.meta deleted file mode 100644 index 7da18c18e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Definitions/Utilities/VolumeType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9627954d6427f6b448a405c9563585eb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum.meta b/AR-ROS/Assets/MRTK/Core/EventDatum.meta deleted file mode 100644 index 6bfdf90bd..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e43e2587caef422b96a81b40c69f1ca4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary.meta deleted file mode 100644 index ecb1e2c4e..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cdf6caa6c97341258406c76ca0fb7cb2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs deleted file mode 100644 index 5c9c7f15b..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - /// - /// The data describing the boundary system event. - /// - public class BoundaryEventData : GenericBaseEventData - { - /// - /// Is the floor being visualized by the boundary system. - /// - public bool IsFloorVisualized { get; private set; } - - /// - /// Is the play area being visualized by the boundary system. - /// - public bool IsPlayAreaVisualized { get; private set; } - - /// - /// Is the tracked area being visualized by the boundary system. - /// - public bool IsTrackedAreaVisualized { get; private set; } - - /// - /// Are the boundary walls being visualized by the boundary system. - /// - public bool AreBoundaryWallsVisualized { get; private set; } - - /// - /// Is the ceiling being visualized by the boundary system. - /// - /// - /// The boundary system defines the ceiling as a plane set at above the floor. - /// - public bool IsCeilingVisualized { get; private set; } - - /// - /// Constructor. - /// - public BoundaryEventData(EventSystem eventSystem) : base(eventSystem) { } - - public void Initialize( - IMixedRealityBoundarySystem boundarySystem, - bool isFloorVisualized, - bool isPlayAreaVisualized, - bool isTrackedAreaVisualized, - bool areBoundaryWallsVisualized, - bool isCeilingVisualized) - { - base.BaseInitialize(boundarySystem); - IsFloorVisualized = isFloorVisualized; - IsPlayAreaVisualized = isPlayAreaVisualized; - IsTrackedAreaVisualized = isTrackedAreaVisualized; - AreBoundaryWallsVisualized = areBoundaryWallsVisualized; - IsCeilingVisualized = isCeilingVisualized; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs.meta deleted file mode 100644 index c72e8ef40..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Boundary/BoundaryEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8c45c81c4f8f46b3af6f9f8a475c1688 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics.meta deleted file mode 100644 index 7fe00aa2a..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d8a2128563c03e146aa0eb67da229dcd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs deleted file mode 100644 index 88511831b..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Diagnostics -{ - public class DiagnosticsEventData : GenericBaseEventData - { - /// - /// Constructor - /// - public DiagnosticsEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Constructor - /// - /// The instance of the Diagnostic System that raised the event. - public void Initialize( - IMixedRealityDiagnosticsSystem diagnosticsSystem) - { - BaseInitialize(diagnosticsSystem); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs.meta deleted file mode 100644 index 27bc55064..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Diagnostics/DiagnosticsEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a756df3fdd3951a4e9b2414b8edc5187 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs deleted file mode 100644 index 0418d6fcf..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Generic Base Event Data for Sending Events through the Event System. - /// - public class GenericBaseEventData : BaseEventData - { - /// - /// The Event Source that the event originates from. - /// - public IMixedRealityEventSource EventSource { get; private set; } - - /// - /// The UTC time at which the event occurred. - /// - public DateTime EventTime { get; private set; } - - /// - /// The BaseEventData.selectedObject is explicitly hidden because access to it - /// (either via get or set) throws a NullReferenceException in typical usage within - /// the MRTK. Prefer using the subclasses own fields to access information about - /// the event instead of fields on BaseEventData. - /// - /// - /// BaseEventData is only used because it's part of Unity's EventSystem dispatching, - /// so this code must subclass it in order to leverage EventSystem.ExecuteEvents - /// - public new GameObject selectedObject { get; protected set; } - - /// - /// Constructor. - /// - /// Usually EventSystems.EventSystem.current - public GenericBaseEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - /// The source of the event. - protected void BaseInitialize(IMixedRealityEventSource eventSource) - { - Reset(); - EventTime = DateTime.UtcNow; - EventSource = eventSource; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs.meta deleted file mode 100644 index 97bbe1e28..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/GenericBaseEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ea8bc3c3fca64f75bd82aacf62120a0b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input.meta deleted file mode 100644 index 8c1f0e063..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1adbba004b214082aed1c8dab09ac2fc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs deleted file mode 100644 index 0ff4cf63a..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Base class of all input events. - /// - public abstract class BaseInputEventData : BaseEventData - { - /// - /// The UTC time at which the event occurred. - /// - public DateTime EventTime { get; private set; } - - /// - /// The source the input event originates from. - /// - public IMixedRealityInputSource InputSource { get; private set; } - - /// - /// The id of the source the event is from, for instance the hand id. - /// - public uint SourceId => InputSource.SourceId; - - /// - /// The input action for this event. - /// - public MixedRealityInputAction MixedRealityInputAction { get; private set; } - - /// - /// Constructor. - /// - /// Typically will be EventSystems.EventSystem.current - protected BaseInputEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - protected void BaseInitialize(IMixedRealityInputSource inputSource, MixedRealityInputAction inputAction) - { - Reset(); - EventTime = DateTime.UtcNow; - InputSource = inputSource; - MixedRealityInputAction = inputAction; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs.meta deleted file mode 100644 index cbf82abcf..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/BaseInputEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bf8c148379a64553b62a25a20d79495f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs deleted file mode 100644 index 713fe9d9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Describes an Input Event with voice dictation. - /// - public class DictationEventData : BaseInputEventData - { - /// - /// String result of the current dictation. - /// - public string DictationResult { get; private set; } - - /// - /// Audio Clip of the last Dictation recording Session. - /// - public AudioClip DictationAudioClip { get; private set; } - - /// - public DictationEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityInputSource inputSource, string dictationResult, AudioClip dictationAudioClip = null) - { - BaseInitialize(inputSource, MixedRealityInputAction.None); - DictationResult = dictationResult; - DictationAudioClip = dictationAudioClip; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs.meta deleted file mode 100644 index 202e2326e..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/DictationEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 80421fea75cc4dfdab2a329edb08977d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs deleted file mode 100644 index ec574248a..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Describes an Input Event associated with a specific pointer's focus state change. - /// - public class FocusEventData : BaseEventData - { - /// - /// The pointer associated with this event. - /// - public IMixedRealityPointer Pointer { get; private set; } - - /// - /// The old focused object. - /// - public GameObject OldFocusedObject { get; private set; } - - /// - /// The new focused object. - /// - public GameObject NewFocusedObject { get; private set; } - - /// - public FocusEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityPointer pointer) - { - Reset(); - Pointer = pointer; - } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityPointer pointer, GameObject oldFocusedObject, GameObject newFocusedObject) - { - Reset(); - Pointer = pointer; - OldFocusedObject = oldFocusedObject; - NewFocusedObject = newFocusedObject; - } - } -} - diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs.meta deleted file mode 100644 index f09a7c3a9..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/FocusEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6d7e1f629f764c588ee755b2e0eff5a7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs deleted file mode 100644 index cde769253..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public class HandTrackingInputEventData : InputEventData - { - /// - /// Constructor creates a default EventData object. - /// Requires initialization. - /// - public HandTrackingInputEventData(EventSystem eventSystem) : base(eventSystem) { } - - public IMixedRealityController Controller { get; set; } - - /// - /// This function is called to fill the HandTrackingIntputEventData object with information - /// - /// Reference to the HandTrackingInputSource that created the EventData - /// Reference to the IMixedRealityController that created the EventData - /// Handedness of the HandTrackingInputSource that created the EventData - /// Global position of the HandTrackingInputSource that created the EventData - public void Initialize(IMixedRealityInputSource inputSource, IMixedRealityController controller, Handedness sourceHandedness, Vector3 touchPoint) - { - Initialize(inputSource, sourceHandedness, MixedRealityInputAction.None, touchPoint); - Controller = controller; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs.meta deleted file mode 100644 index ef05bd700..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/HandTrackingInputEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bd73f48e372ad0445a17977a0ea1b138 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs deleted file mode 100644 index 26aeba430..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Describes an Input Event that has a source id. - /// - public class InputEventData : BaseInputEventData - { - /// - /// Handedness of the . - /// - public Handedness Handedness { get; private set; } = Handedness.None; - - /// - public InputEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityInputSource inputSource, Handedness handedness, MixedRealityInputAction inputAction) - { - BaseInitialize(inputSource, inputAction); - Handedness = handedness; - } - } - - /// - /// Describes and input event with a specific type. - /// - /// - public class InputEventData : InputEventData - { - /// - /// The input data of the event. - /// - public T InputData { get; private set; } - - /// - public InputEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityInputSource inputSource, Handedness handedness, MixedRealityInputAction inputAction, T data) - { - Initialize(inputSource, handedness, inputAction); - InputData = data; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs.meta deleted file mode 100644 index 8264aa209..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/InputEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4c178e08073343b7be3f086a9e26376d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs deleted file mode 100644 index 1cc9cdbb5..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Describes an Input Event that involves a tap, click, or touch. - /// - public class MixedRealityPointerEventData : InputEventData - { - /// - /// Pointer for the Input Event - /// - public IMixedRealityPointer Pointer { get; private set; } - - /// - /// Number of Clicks, Taps, or Presses that triggered the event. - /// - public int Count { get; private set; } - - /// - public MixedRealityPointerEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityPointer pointer, MixedRealityInputAction inputAction, Handedness handedness = Handedness.None, IMixedRealityInputSource inputSource = null, int count = 0) - { - if (inputSource != null) - { - Initialize(inputSource, handedness, inputAction); - } - else - { - Initialize(pointer.InputSourceParent, handedness, inputAction); - } - - Pointer = pointer; - Count = count; - } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityPointer pointer, Handedness handedness, MixedRealityInputAction inputAction, int count = 0) - { - Initialize(pointer.InputSourceParent, handedness, inputAction); - Pointer = pointer; - Count = count; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs.meta deleted file mode 100644 index 1376faa56..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/MixedRealityPointerEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 76aed106be8a4a90ae82a99228cf33c8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs deleted file mode 100644 index acd87dffd..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Describes a source change event. - /// - /// Source State events do not have an associated . - public class SourcePoseEventData : SourceStateEventData - { - /// - /// The new position of the input source. - /// - public T SourceData { get; private set; } - - /// - public SourcePoseEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Populates the event with data. - /// - public void Initialize(IMixedRealityInputSource inputSource, IMixedRealityController controller, T data) - { - Initialize(inputSource, controller); - SourceData = data; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs.meta deleted file mode 100644 index b1d6fa883..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourcePoseEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f39af9085dab46278471d207ca5d0a61 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs deleted file mode 100644 index d587c6571..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Describes an source state event that has a source id. - /// - /// Source State events do not have an associated . - public class SourceStateEventData : BaseInputEventData - { - public IMixedRealityController Controller { get; private set; } - - /// - public SourceStateEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Populates the event with data. - /// - public void Initialize(IMixedRealityInputSource inputSource, IMixedRealityController controller) - { - // NOTE: Source State events do not have an associated Input Action. - BaseInitialize(inputSource, MixedRealityInputAction.None); - Controller = controller; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs.meta deleted file mode 100644 index a0e4ca71e..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SourceStateEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4e5c13da632146c3b92a6ba911e77ebb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs deleted file mode 100644 index 84f2f69e6..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Describes an input event that involves keyword recognition. - /// - public class SpeechEventData : BaseInputEventData - { - /// - /// The time it took for the phrase to be uttered. - /// - public TimeSpan PhraseDuration { get; private set; } - - /// - /// The moment in UTC time when uttering of the phrase began. - /// - public DateTime PhraseStartTime { get; private set; } - - /// - /// The text that was recognized. - /// - public SpeechCommands Command { get; private set; } - - /// - /// A measure of correct recognition certainty. - /// - public RecognitionConfidenceLevel Confidence { get; private set; } - - /// - public SpeechEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Populates the event with data. - /// - public void Initialize(IMixedRealityInputSource inputSource, RecognitionConfidenceLevel confidence, TimeSpan phraseDuration, DateTime phraseStartTime, SpeechCommands command) - { - BaseInitialize(inputSource, command.Action); - Confidence = confidence; - PhraseDuration = phraseDuration; - PhraseStartTime = phraseStartTime; - Command = command; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs.meta deleted file mode 100644 index 18ff8fe6e..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Input/SpeechEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d7c2e29b4f8642388b4f8bb33fa14ac8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs deleted file mode 100644 index 22167e375..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Describes placement of objects events. - /// - public class PlacementEventData : GenericBaseEventData - { - /// - /// The game object that is being placed. - /// - public GameObject ObjectBeingPlaced { get; private set; } - - /// - public PlacementEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Populates the event with data. - /// - public void Initialize(IMixedRealityEventSource eventSource, GameObject objectBeingPlaced) - { - BaseInitialize(eventSource); - ObjectBeingPlaced = objectBeingPlaced; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs.meta deleted file mode 100644 index 02db6220e..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/PlacementEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b5143cedf6204703871f3962938ba8b0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/README.md b/AR-ROS/Assets/MRTK/Core/EventDatum/README.md deleted file mode 100644 index 0c25b34c9..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Mixed Reality Toolkit - EventDatum - -Data model classes for the inner workings of the Mixed Reality Toolkit and its supported Core systems. - -All data models required for system use within the MRTK should be recorded here. diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/README.md.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/README.md.meta deleted file mode 100644 index 70d6072c2..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/README.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 16afe9b62a93a864cb9071665b204d21 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness.meta deleted file mode 100644 index ea0054a12..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 40032830d1c03bb4fb063fef3ad61dc9 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs deleted file mode 100644 index 0b8bee19c..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Data for spatial awareness events. - /// - public class MixedRealitySpatialAwarenessEventData : GenericBaseEventData - { - /// - /// Identifier of the object associated with this event. - /// - public int Id { get; private set; } - - /// - /// Constructor. - /// - public MixedRealitySpatialAwarenessEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Initialize the event data. - /// - /// The that raised the event. - /// The identifier of the observed spatial object. - public void Initialize(IMixedRealitySpatialAwarenessObserver observer, int id) - { - BaseInitialize(observer); - Id = id; - } - } - - /// - /// Data for spatial awareness events. - /// - /// The spatial object data type. - public class MixedRealitySpatialAwarenessEventData : MixedRealitySpatialAwarenessEventData - { - /// - /// The spatial object to which this event pertains. - /// - public T SpatialObject { get; private set; } - - /// - public MixedRealitySpatialAwarenessEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Initialize the event data. - /// - /// The that raised the event. - /// The identifier of the observed spatial object. - /// The observed spatial object. - public void Initialize(IMixedRealitySpatialAwarenessObserver observer, int id, T spatialObject) - { - Initialize(observer, id); - SpatialObject = spatialObject; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs.meta deleted file mode 100644 index 2ec08b904..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/SpatialAwareness/MixedRealitySpatialAwarenessEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5b1027163c69ba64a9951f075fdd9818 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport.meta deleted file mode 100644 index 35599fd91..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2863a477e4224b0b9ecd72139eee99df -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs b/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs deleted file mode 100644 index 52ca835ba..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Teleport -{ - /// - /// Describes a Teleportation Event. - /// - public class TeleportEventData : GenericBaseEventData - { - /// - /// The pointer that raised the event. - /// - public IMixedRealityPointer Pointer { get; private set; } - - /// - /// The teleport hot spot. - /// - public IMixedRealityTeleportHotSpot HotSpot { get; private set; } - - /// - /// Constructor. - /// - /// Typically will be EventSystem.current - public TeleportEventData(EventSystem eventSystem) : base(eventSystem) { } - - /// - /// Used to initialize/reset the event and populate the data. - /// - public void Initialize(IMixedRealityPointer pointer, IMixedRealityTeleportHotSpot target) - { - BaseInitialize(pointer.InputSourceParent); - Pointer = pointer; - HotSpot = target; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs.meta b/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs.meta deleted file mode 100644 index eb5152585..000000000 --- a/AR-ROS/Assets/MRTK/Core/EventDatum/Teleport/TeleportEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: dc54593d192e430081797a6bcd020886 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions.meta b/AR-ROS/Assets/MRTK/Core/Extensions.meta deleted file mode 100644 index cf7bbe45e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e43a7a74fd784eb08cf2dd49781bb60c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs deleted file mode 100644 index a0efbbced..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's AnimationCurve class - /// - public static class AnimationCurveExtensions - { - /// - /// Returns the absolute duration of the curve from first to last key frame - /// - /// The animation curve to check duration of. - /// Returns 0 if the curve is null or has less than 1 frame, otherwise returns time difference between first and last frame. - public static float Duration(this AnimationCurve curve) - { - if (curve == null || curve.length <= 1) - { - return 0.0f; - } - - return Mathf.Abs(curve[curve.length - 1].time - curve[0].time); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs.meta deleted file mode 100644 index cfe8fffdd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/AnimationCurveExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c896105445964076b2a7b48b1e86ba72 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs deleted file mode 100644 index 252bfc35e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// type method extensions. - /// - public static class ArrayExtensions - { - /// - /// Wraps the index around to the beginning of the array if the provided index is longer than the array. - /// - /// The array to wrap the index around. - /// The index to look for. - public static int WrapIndex(this Array array, int index) - { - int length = array.Length; - return ((index % length) + length) % length; - } - - /// - /// Checks whether the given array is not null and has at least one entry - /// - public static bool IsValidArray(this Array array) - { - return array != null && array.Length > 0; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs.meta deleted file mode 100644 index edd98911b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ArrayExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 942332098e764f6a9a2c69d92dd0fc74 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs deleted file mode 100644 index 905e5c07f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; - -namespace Microsoft.MixedReality.Toolkit -{ - public static class AssemblyExtensions - { - /// - /// Assembly.GetTypes() can throw in some cases. This extension will catch that exception and return only the types which were successfully loaded from the assembly. - /// - public static IEnumerable GetLoadableTypes(this Assembly @this) - { - try - { - return @this.GetTypes(); - } - catch (ReflectionTypeLoadException e) - { - return e.Types.Where(t => t != null); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs.meta deleted file mode 100644 index 20c077253..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/AssemblyExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ca0b36fc217123c46a2fa92b0e83f619 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs deleted file mode 100644 index b4ff0188e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs +++ /dev/null @@ -1,777 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Assertions; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's Bounds struct - /// - public static class BoundsExtensions - { - // Corners - public const int LBF = 0; - public const int LBB = 1; - public const int LTF = 2; - public const int LTB = 3; - public const int RBF = 4; - public const int RBB = 5; - public const int RTF = 6; - public const int RTB = 7; - - // X axis - public const int LTF_RTF = 8; - public const int LBF_RBF = 9; - public const int RTB_LTB = 10; - public const int RBB_LBB = 11; - - // Y axis - public const int LTF_LBF = 12; - public const int RTB_RBB = 13; - public const int LTB_LBB = 14; - public const int RTF_RBF = 15; - - // Z axis - public const int RBF_RBB = 16; - public const int RTF_RTB = 17; - public const int LBF_LBB = 18; - public const int LTF_LTB = 19; - - // 2D corners - public const int LT = 0; - public const int LB = 1; - public const int RT = 2; - public const int RB = 3; - - // 2D midpoints - public const int LT_RT = 4; - public const int RT_RB = 5; - public const int RB_LB = 6; - public const int LB_LT = 7; - - // Face points - public const int TOP = 0; - public const int BOT = 1; - public const int LFT = 2; - public const int RHT = 3; - public const int FWD = 4; - public const int BCK = 5; - - // Axis of the capsule’s lengthwise orientation in the object’s local space - private const int CAPSULE_X_AXIS = 0; - private const int CAPSULE_Y_AXIS = 1; - private const int CAPSULE_Z_AXIS = 2; - - // Edges used to render the bounds. - private static readonly int[] boundsEdges = new int[] - { - LBF, LBB, - LBB, LTB, - LTB, LTF, - LTF, LBF, - LBF, RTB, - RTB, RTF, - RTF, RBF, - RBF, RBB, - RBB, RTB, - RTF, LBB, - RBF, LTB, - RBB, LTF - }; - - public enum Axis - { - X, - Y, - Z - } - - private static Vector3[] corners = null; - - private static Vector3[] rectTransformCorners = new Vector3[4]; - - #region Public Static Functions - /// - /// Returns an instance of the 'Bounds' class which is invalid. An invalid 'Bounds' instance - /// is one which has its size vector set to 'float.MaxValue' for all 3 components. The center - /// of an invalid bounds instance is the zero vector. - /// - public static Bounds GetInvalidBoundsInstance() - { - return new Bounds(Vector3.zero, GetInvalidBoundsSize()); - } - - /// - /// Checks if the specified bounds instance is valid. A valid 'Bounds' instance is - /// one whose size vector does not have all 3 components set to 'float.MaxValue'. - /// - public static bool IsValid(this Bounds bounds) - { - return bounds.size != GetInvalidBoundsSize(); - } - - /// - /// Gets all the corner points of the bounds in world space by transforming input bounds using the given transform - /// - /// Local to world transform - /// Output corner positions - /// Input bounds, in local space - /// - /// Use BoxColliderExtensions.{Left|Right}{Bottom|Top}{Front|Back} consts to index into the output - /// corners array. - /// - public static void GetCornerPositions(this Bounds bounds, Transform transform, ref Vector3[] positions) - { - // Calculate the local points to transform. - Vector3 center = bounds.center; - Vector3 extents = bounds.extents; - float leftEdge = center.x - extents.x; - float rightEdge = center.x + extents.x; - float bottomEdge = center.y - extents.y; - float topEdge = center.y + extents.y; - float frontEdge = center.z - extents.z; - float backEdge = center.z + extents.z; - - // Allocate the array if needed. - const int numPoints = 8; - if (positions == null || positions.Length != numPoints) - { - positions = new Vector3[numPoints]; - } - - // Transform all the local points to world space. - positions[LBF] = transform.TransformPoint(leftEdge, bottomEdge, frontEdge); - positions[LBB] = transform.TransformPoint(leftEdge, bottomEdge, backEdge); - positions[LTF] = transform.TransformPoint(leftEdge, topEdge, frontEdge); - positions[LTB] = transform.TransformPoint(leftEdge, topEdge, backEdge); - positions[RBF] = transform.TransformPoint(rightEdge, bottomEdge, frontEdge); - positions[RBB] = transform.TransformPoint(rightEdge, bottomEdge, backEdge); - positions[RTF] = transform.TransformPoint(rightEdge, topEdge, frontEdge); - positions[RTB] = transform.TransformPoint(rightEdge, topEdge, backEdge); - } - - /// - /// Gets all the corner points of the bounds - /// - /// - /// Use BoxColliderExtensions.{Left|Right}{Bottom|Top}{Front|Back} consts to index into the output - /// corners array. - /// - public static void GetCornerPositions(this Bounds bounds, ref Vector3[] positions) - { - // Calculate the local points to transform. - Vector3 center = bounds.center; - Vector3 extents = bounds.extents; - float leftEdge = center.x - extents.x; - float rightEdge = center.x + extents.x; - float bottomEdge = center.y - extents.y; - float topEdge = center.y + extents.y; - float frontEdge = center.z - extents.z; - float backEdge = center.z + extents.z; - - // Allocate the array if needed. - const int numPoints = 8; - if (positions == null || positions.Length != numPoints) - { - positions = new Vector3[numPoints]; - } - - // Transform all the local points to world space. - positions[LBF] = new Vector3(leftEdge, bottomEdge, frontEdge); - positions[LBB] = new Vector3(leftEdge, bottomEdge, backEdge); - positions[LTF] = new Vector3(leftEdge, topEdge, frontEdge); - positions[LTB] = new Vector3(leftEdge, topEdge, backEdge); - positions[RBF] = new Vector3(rightEdge, bottomEdge, frontEdge); - positions[RBB] = new Vector3(rightEdge, bottomEdge, backEdge); - positions[RTF] = new Vector3(rightEdge, topEdge, frontEdge); - positions[RTB] = new Vector3(rightEdge, topEdge, backEdge); - } - - /// - /// Gets all the corner points from Renderer's Bounds - /// - public static void GetCornerPositionsFromRendererBounds(this Bounds bounds, ref Vector3[] positions) - { - Vector3 center = bounds.center; - Vector3 extents = bounds.extents; - float leftEdge = center.x - extents.x; - float rightEdge = center.x + extents.x; - float bottomEdge = center.y - extents.y; - float topEdge = center.y + extents.y; - float frontEdge = center.z - extents.z; - float backEdge = center.z + extents.z; - - const int numPoints = 8; - if (positions == null || positions.Length != numPoints) - { - positions = new Vector3[numPoints]; - } - - positions[LBF] = new Vector3(leftEdge, bottomEdge, frontEdge); - positions[LBB] = new Vector3(leftEdge, bottomEdge, backEdge); - positions[LTF] = new Vector3(leftEdge, topEdge, frontEdge); - positions[LTB] = new Vector3(leftEdge, topEdge, backEdge); - positions[RBF] = new Vector3(rightEdge, bottomEdge, frontEdge); - positions[RBB] = new Vector3(rightEdge, bottomEdge, backEdge); - positions[RTF] = new Vector3(rightEdge, topEdge, frontEdge); - positions[RTB] = new Vector3(rightEdge, topEdge, backEdge); - } - - public static void GetFacePositions(this Bounds bounds, Transform transform, ref Vector3[] positions) - { - Vector3 center = bounds.center; - Vector3 extents = bounds.extents; - - const int numPoints = 6; - if (positions == null || positions.Length != numPoints) - { - positions = new Vector3[numPoints]; - } - - positions[TOP] = transform.TransformPoint(center + Vector3.up * extents.y); - positions[BOT] = transform.TransformPoint(center + Vector3.down * extents.y); - positions[LFT] = transform.TransformPoint(center + Vector3.left * extents.x); - positions[RHT] = transform.TransformPoint(center + Vector3.right * extents.x); - positions[FWD] = transform.TransformPoint(center + Vector3.forward * extents.z); - positions[BCK] = transform.TransformPoint(center + Vector3.back * extents.z); - } - - /// - /// Gets all the corner points and mid points from Renderer's Bounds - /// - public static void GetCornerAndMidPointPositions(this Bounds bounds, Transform transform, ref Vector3[] positions) - { - // Calculate the local points to transform. - Vector3 center = bounds.center; - Vector3 extents = bounds.extents; - float leftEdge = center.x - extents.x; - float rightEdge = center.x + extents.x; - float bottomEdge = center.y - extents.y; - float topEdge = center.y + extents.y; - float frontEdge = center.z - extents.z; - float backEdge = center.z + extents.z; - - // Allocate the array if needed. - const int numPoints = LTF_LTB + 1; - if (positions == null || positions.Length != numPoints) - { - positions = new Vector3[numPoints]; - } - - // Transform all the local points to world space. - positions[LBF] = transform.TransformPoint(leftEdge, bottomEdge, frontEdge); - positions[LBB] = transform.TransformPoint(leftEdge, bottomEdge, backEdge); - positions[LTF] = transform.TransformPoint(leftEdge, topEdge, frontEdge); - positions[LTB] = transform.TransformPoint(leftEdge, topEdge, backEdge); - positions[RBF] = transform.TransformPoint(rightEdge, bottomEdge, frontEdge); - positions[RBB] = transform.TransformPoint(rightEdge, bottomEdge, backEdge); - positions[RTF] = transform.TransformPoint(rightEdge, topEdge, frontEdge); - positions[RTB] = transform.TransformPoint(rightEdge, topEdge, backEdge); - - positions[LTF_RTF] = Vector3.Lerp(positions[LTF], positions[RTF], 0.5f); - positions[LBF_RBF] = Vector3.Lerp(positions[LBF], positions[RBF], 0.5f); - positions[RTB_LTB] = Vector3.Lerp(positions[RTB], positions[LTB], 0.5f); - positions[RBB_LBB] = Vector3.Lerp(positions[RBB], positions[LBB], 0.5f); - - positions[LTF_LBF] = Vector3.Lerp(positions[LTF], positions[LBF], 0.5f); - positions[RTB_RBB] = Vector3.Lerp(positions[RTB], positions[RBB], 0.5f); - positions[LTB_LBB] = Vector3.Lerp(positions[LTB], positions[LBB], 0.5f); - positions[RTF_RBF] = Vector3.Lerp(positions[RTF], positions[RBF], 0.5f); - - positions[RBF_RBB] = Vector3.Lerp(positions[RBF], positions[RBB], 0.5f); - positions[RTF_RTB] = Vector3.Lerp(positions[RTF], positions[RTB], 0.5f); - positions[LBF_LBB] = Vector3.Lerp(positions[LBF], positions[LBB], 0.5f); - positions[LTF_LTB] = Vector3.Lerp(positions[LTF], positions[LTB], 0.5f); - } - - /// - /// Gets all the corner points and mid points from Renderer's Bounds, ignoring the z axis - /// - public static void GetCornerAndMidPointPositions2D(this Bounds bounds, Transform transform, ref Vector3[] positions, Axis flattenAxis) - { - // Calculate the local points to transform. - Vector3 center = bounds.center; - Vector3 extents = bounds.extents; - - float leftEdge = 0; - float rightEdge = 0; - float bottomEdge = 0; - float topEdge = 0; - - // Allocate the array if needed. - const int numPoints = LB_LT + 1; - if (positions == null || positions.Length != numPoints) - { - positions = new Vector3[numPoints]; - } - - switch (flattenAxis) - { - case Axis.X: - default: - leftEdge = center.z - extents.z; - rightEdge = center.z + extents.z; - bottomEdge = center.y - extents.y; - topEdge = center.y + extents.y; - // Transform all the local points to world space. - positions[LT] = transform.TransformPoint(0, topEdge, leftEdge); - positions[LB] = transform.TransformPoint(0, bottomEdge, leftEdge); - positions[RT] = transform.TransformPoint(0, topEdge, rightEdge); - positions[RB] = transform.TransformPoint(0, bottomEdge, rightEdge); - break; - - case Axis.Y: - leftEdge = center.z - extents.z; - rightEdge = center.z + extents.z; - bottomEdge = center.x - extents.x; - topEdge = center.x + extents.x; - // Transform all the local points to world space. - positions[LT] = transform.TransformPoint(topEdge, 0, leftEdge); - positions[LB] = transform.TransformPoint(bottomEdge, 0, leftEdge); - positions[RT] = transform.TransformPoint(topEdge, 0, rightEdge); - positions[RB] = transform.TransformPoint(bottomEdge, 0, rightEdge); - break; - - case Axis.Z: - leftEdge = center.x - extents.x; - rightEdge = center.x + extents.x; - bottomEdge = center.y - extents.y; - topEdge = center.y + extents.y; - // Transform all the local points to world space. - positions[LT] = transform.TransformPoint(leftEdge, topEdge, 0); - positions[LB] = transform.TransformPoint(leftEdge, bottomEdge, 0); - positions[RT] = transform.TransformPoint(rightEdge, topEdge, 0); - positions[RB] = transform.TransformPoint(rightEdge, bottomEdge, 0); - break; - } - - positions[LT_RT] = Vector3.Lerp(positions[LT], positions[RT], 0.5f); - positions[RT_RB] = Vector3.Lerp(positions[RT], positions[RB], 0.5f); - positions[RB_LB] = Vector3.Lerp(positions[RB], positions[LB], 0.5f); - positions[LB_LT] = Vector3.Lerp(positions[LB], positions[LT], 0.5f); - } - - /// - /// Method to get bounds from a collection of points. - /// - /// The points to construct a bounds around. - /// An AABB in world space around all the points. - /// True if bounds were calculated, if zero points are present bounds will not be calculated. - public static bool GetPointsBounds(List points, out Bounds bounds) - { - if (points.Count != 0) - { - bounds = new Bounds(points[0], Vector3.zero); - - for (var i = 1; i < points.Count; ++i) - { - bounds.Encapsulate(points[i]); - } - - return true; - } - - bounds = new Bounds(); - return false; - } - - /// - /// Method to get bounds using collider method. - /// - /// GameObject to generate the bounds around. - /// An AABB in world space around all the colliders in a gameObject hierarchy. - /// A LayerMask to restrict the colliders selected. - /// True if bounds were calculated, if zero colliders are present bounds will not be calculated. - public static bool GetColliderBounds(GameObject target, out Bounds bounds, LayerMask ignoreLayers) - { - var boundsPoints = new List(); - GetColliderBoundsPoints(target, boundsPoints, ignoreLayers); - - return GetPointsBounds(boundsPoints, out bounds); - } - - /// - /// Calculates how much scale is required for this Bounds to match another Bounds. - /// - /// Object representation to be scaled to - /// padding multiplied into another bounds - /// Scale represented as a Vector3 - public static Vector3 GetScaleToMatchBounds(this Bounds bounds, Bounds otherBounds, Vector3 padding = default(Vector3)) - { - Vector3 szA = otherBounds.size + new Vector3(otherBounds.size.x * padding.x, otherBounds.size.y * padding.y, otherBounds.size.z * padding.z); - Vector3 szB = bounds.size; - Assert.IsTrue(szB.x != 0 && szB.y != 0 && szB.z != 0, "The bounds of the object must not be zero."); - return new Vector3(szA.x / szB.x, szA.y / szB.y, szA.z / szB.z); - } - - /// - /// Calculates how much scale is required for this Bounds to fit inside another bounds without stretching. - /// - /// The bounds of the container we're trying to fit this object. - /// A single scale factor that can be applied to this object to fit inside the container. - public static float GetScaleToFitInside(this Bounds bounds, Bounds containerBounds) - { - var objectSize = bounds.size; - var containerSize = containerBounds.size; - Assert.IsTrue(objectSize.x != 0 && objectSize.y != 0 && objectSize.z != 0, "The bounds of the container must not be zero."); - return Mathf.Min(containerSize.x / objectSize.x, containerSize.y / objectSize.y, containerSize.z / objectSize.z); - } - - /// - /// Method to get bounding box points using Collider method. - /// - /// gameObject that boundingBox bounds. - /// array reference that gets filled with points - /// layerMask to simplify search - /// compute bounds relative to this transform - public static void GetColliderBoundsPoints(GameObject target, List boundsPoints, LayerMask ignoreLayers, Transform relativeTo = null) - { - Collider[] colliders = target.GetComponentsInChildren(); - for (int i = 0; i < colliders.Length; i++) - { - GetColliderBoundsPoints(colliders[i], boundsPoints, ignoreLayers, relativeTo); - } - } - - private static void InverseTransformPoints(ref Vector3[] positions, Transform relativeTo) - { - if (relativeTo) - { - for (var i = 0; i < positions.Length; ++i) - { - positions[i] = relativeTo.InverseTransformPoint(positions[i]); - } - } - } - - - /// - /// Method to get bounds from a single Collider - /// - /// Target collider - /// array reference that gets filled with points - /// layerMask to simplify search - public static void GetColliderBoundsPoints(Collider collider, List boundsPoints, LayerMask ignoreLayers, Transform relativeTo = null) - { - if (ignoreLayers == (1 << collider.gameObject.layer | ignoreLayers)) { return; } - - if (collider is SphereCollider) - { - SphereCollider sc = collider as SphereCollider; - Bounds sphereBounds = new Bounds(sc.center, Vector3.one * sc.radius * 2); - sphereBounds.GetFacePositions(sc.transform, ref corners); - InverseTransformPoints(ref corners, relativeTo); - boundsPoints.AddRange(corners); - } - else if (collider is BoxCollider) - { - BoxCollider bc = collider as BoxCollider; - Bounds boxBounds = new Bounds(bc.center, bc.size); - boxBounds.GetCornerPositions(bc.transform, ref corners); - InverseTransformPoints(ref corners, relativeTo); - boundsPoints.AddRange(corners); - - } - else if (collider is MeshCollider) - { - MeshCollider mc = collider as MeshCollider; - Bounds meshBounds = mc.sharedMesh.bounds; - meshBounds.GetCornerPositions(mc.transform, ref corners); - InverseTransformPoints(ref corners, relativeTo); - boundsPoints.AddRange(corners); - } - else if (collider is CapsuleCollider) - { - CapsuleCollider cc = collider as CapsuleCollider; - Bounds capsuleBounds = new Bounds(cc.center, Vector3.zero); - switch (cc.direction) - { - case CAPSULE_X_AXIS: - capsuleBounds.size = new Vector3(cc.height, cc.radius * 2, cc.radius * 2); - break; - - case CAPSULE_Y_AXIS: - capsuleBounds.size = new Vector3(cc.radius * 2, cc.height, cc.radius * 2); - break; - - case CAPSULE_Z_AXIS: - capsuleBounds.size = new Vector3(cc.radius * 2, cc.radius * 2, cc.height); - break; - } - capsuleBounds.GetFacePositions(cc.transform, ref corners); - InverseTransformPoints(ref corners, relativeTo); - boundsPoints.AddRange(corners); - } - } - - /// - /// Method to get bounds using renderer method. - /// - /// GameObject to generate the bounds around. - /// An AABB in world space around all the renderers in a gameObject hierarchy. - /// A LayerMask to restrict the colliders selected. - /// True if bounds were calculated, if zero renderers are present bounds will not be calculated. - public static bool GetRenderBounds(GameObject target, out Bounds bounds, LayerMask ignoreLayers) - { - var boundsPoints = new List(); - GetRenderBoundsPoints(target, boundsPoints, ignoreLayers); - - return GetPointsBounds(boundsPoints, out bounds); - } - - /// - /// GetRenderBoundsPoints gets bounding box points using Render method. - /// - /// gameObject that boundingbox bounds - /// array reference that gets filled with points - /// layerMask to simplify search - public static void GetRenderBoundsPoints(GameObject target, List boundsPoints, LayerMask ignoreLayers) - { - Renderer[] renderers = target.GetComponentsInChildren(); - for (int i = 0; i < renderers.Length; ++i) - { - Renderer rendererObj = renderers[i]; - if (ignoreLayers == (1 << rendererObj.gameObject.layer | ignoreLayers)) - { - continue; - } - - rendererObj.bounds.GetCornerPositionsFromRendererBounds(ref corners); - boundsPoints.AddRange(corners); - } - } - - /// - /// Method to get bounds using mesh filters method. - /// - /// GameObject to generate the bounds around. - /// An AABB in world space around all the mesh filters in a GameObject hierarchy. - /// A LayerMask to restrict the colliders selected. - /// True if bounds were calculated, if zero mesh filters are present bounds will not be calculated. - public static bool GetMeshFilterBounds(GameObject target, out Bounds bounds, LayerMask ignoreLayers) - { - var boundsPoints = new List(); - GetMeshFilterBoundsPoints(target, boundsPoints, ignoreLayers); - - return GetPointsBounds(boundsPoints, out bounds); - } - - /// - /// GetMeshFilterBoundsPoints - gets bounding box points using MeshFilter method. - /// - /// gameObject that boundingbox bounds - /// array reference that gets filled with points - /// layerMask to simplify search - public static void GetMeshFilterBoundsPoints(GameObject target, List boundsPoints, LayerMask ignoreLayers) - { - MeshFilter[] meshFilters = target.GetComponentsInChildren(); - for (int i = 0; i < meshFilters.Length; i++) - { - MeshFilter meshFilterObj = meshFilters[i]; - if (ignoreLayers == (1 << meshFilterObj.gameObject.layer | ignoreLayers)) - { - continue; - } - - Bounds meshBounds = meshFilterObj.sharedMesh.bounds; - meshBounds.GetCornerPositions(meshFilterObj.transform, ref corners); - boundsPoints.AddRange(corners); - } - RectTransform[] rectTransforms = target.GetComponentsInChildren(); - for (int i = 0; i < rectTransforms.Length; i++) - { - rectTransforms[i].GetWorldCorners(rectTransformCorners); - boundsPoints.AddRange(rectTransformCorners); - } - } - - /// - /// Transforms 'bounds' using the specified transform matrix. - /// - /// - /// Transforming a 'Bounds' instance means that the function will construct a new 'Bounds' - /// instance which has its center translated using the translation information stored in - /// the specified matrix and its size adjusted to account for rotation and scale. The size - /// of the new 'Bounds' instance will be calculated in such a way that it will contain the - /// old 'Bounds'. - /// - /// - /// The 'Bounds' instance which must be transformed. - /// - /// - /// The specified 'Bounds' instance will be transformed using this transform matrix. The function - /// assumes that the matrix doesn't contain any projection or skew transformation. - /// - /// - /// The transformed 'Bounds' instance. - /// - public static Bounds Transform(this Bounds bounds, Matrix4x4 transformMatrix) - { - // We will need access to the right, up and look vector which are encoded inside the transform matrix - Vector3 rightAxis = transformMatrix.GetColumn(0); - Vector3 upAxis = transformMatrix.GetColumn(1); - Vector3 lookAxis = transformMatrix.GetColumn(2); - - // We will 'imagine' that we want to rotate the bounds' extents vector using the rotation information - // stored inside the specified transform matrix. We will need these when calculating the new size if - // the transformed bounds. - Vector3 rotatedExtentsRight = rightAxis * bounds.extents.x; - Vector3 rotatedExtentsUp = upAxis * bounds.extents.y; - Vector3 rotatedExtentsLook = lookAxis * bounds.extents.z; - - // Calculate the new bounds size along each axis. The size on each axis is calculated by summing up the - // corresponding vector component values of the rotated extents vectors. We multiply by 2 because we want - // to get a size and currently we are working with extents which represent half the size. - float newSizeX = (Mathf.Abs(rotatedExtentsRight.x) + Mathf.Abs(rotatedExtentsUp.x) + Mathf.Abs(rotatedExtentsLook.x)) * 2.0f; - float newSizeY = (Mathf.Abs(rotatedExtentsRight.y) + Mathf.Abs(rotatedExtentsUp.y) + Mathf.Abs(rotatedExtentsLook.y)) * 2.0f; - float newSizeZ = (Mathf.Abs(rotatedExtentsRight.z) + Mathf.Abs(rotatedExtentsUp.z) + Mathf.Abs(rotatedExtentsLook.z)) * 2.0f; - - // Construct the transformed 'Bounds' instance - var transformedBounds = new Bounds(); - transformedBounds.center = transformMatrix.MultiplyPoint(bounds.center); - transformedBounds.size = new Vector3(newSizeX, newSizeY, newSizeZ); - - // Return the instance to the caller - return transformedBounds; - } - - /// - /// Returns the screen space corner points of the specified 'Bounds' instance. - /// - /// - /// The camera used for rendering to the screen. This is needed to perform the - /// transformation to screen space. - /// - public static Vector2[] GetScreenSpaceCornerPoints(this Bounds bounds, Camera camera) - { - Vector3 aabbCenter = bounds.center; - Vector3 aabbExtents = bounds.extents; - - // Return the screen space point array - return new Vector2[] - { - camera.WorldToScreenPoint(new Vector3(aabbCenter.x - aabbExtents.x, aabbCenter.y - aabbExtents.y, aabbCenter.z - aabbExtents.z)), - camera.WorldToScreenPoint(new Vector3(aabbCenter.x + aabbExtents.x, aabbCenter.y - aabbExtents.y, aabbCenter.z - aabbExtents.z)), - camera.WorldToScreenPoint(new Vector3(aabbCenter.x + aabbExtents.x, aabbCenter.y + aabbExtents.y, aabbCenter.z - aabbExtents.z)), - camera.WorldToScreenPoint(new Vector3(aabbCenter.x - aabbExtents.x, aabbCenter.y + aabbExtents.y, aabbCenter.z - aabbExtents.z)), - - camera.WorldToScreenPoint(new Vector3(aabbCenter.x - aabbExtents.x, aabbCenter.y - aabbExtents.y, aabbCenter.z + aabbExtents.z)), - camera.WorldToScreenPoint(new Vector3(aabbCenter.x + aabbExtents.x, aabbCenter.y - aabbExtents.y, aabbCenter.z + aabbExtents.z)), - camera.WorldToScreenPoint(new Vector3(aabbCenter.x + aabbExtents.x, aabbCenter.y + aabbExtents.y, aabbCenter.z + aabbExtents.z)), - camera.WorldToScreenPoint(new Vector3(aabbCenter.x - aabbExtents.x, aabbCenter.y + aabbExtents.y, aabbCenter.z + aabbExtents.z)) - }; - } - - /// - /// Returns the rectangle which encloses the specifies 'Bounds' instance in screen space. - /// - public static Rect GetScreenRectangle(this Bounds bounds, Camera camera) - { - // Retrieve the bounds' corner points in screen space - Vector2[] screenSpaceCornerPoints = bounds.GetScreenSpaceCornerPoints(camera); - - // Identify the minimum and maximum points in the array - Vector3 minScreenPoint = screenSpaceCornerPoints[0], maxScreenPoint = screenSpaceCornerPoints[0]; - for (int screenPointIndex = 1; screenPointIndex < screenSpaceCornerPoints.Length; ++screenPointIndex) - { - minScreenPoint = Vector3.Min(minScreenPoint, screenSpaceCornerPoints[screenPointIndex]); - maxScreenPoint = Vector3.Max(maxScreenPoint, screenSpaceCornerPoints[screenPointIndex]); - } - - // Return the screen space rectangle - return new Rect(minScreenPoint.x, minScreenPoint.y, maxScreenPoint.x - minScreenPoint.x, maxScreenPoint.y - minScreenPoint.y); - } - - /// - /// Returns the volume of the bounds. - /// - public static float Volume(this Bounds bounds) - { - return bounds.size.x * bounds.size.y * bounds.size.z; - } - - /// - /// Returns bounds that contain both this bounds and the bounds passed in. - /// - public static Bounds ExpandToContain(this Bounds originalBounds, Bounds otherBounds) - { - Bounds tmpBounds = originalBounds; - - tmpBounds.Encapsulate(otherBounds); - - return tmpBounds; - } - - /// - /// Checks to see if bounds contains the other bounds completely. - /// - public static bool ContainsBounds(this Bounds bounds, Bounds otherBounds) - { - return bounds.Contains(otherBounds.min) && bounds.Contains(otherBounds.max); - } - - /// - /// Checks to see whether point is closer to bounds or otherBounds - /// - public static bool CloserToPoint(this Bounds bounds, Vector3 point, Bounds otherBounds) - { - Vector3 distToClosestPoint1 = bounds.ClosestPoint(point) - point; - Vector3 distToClosestPoint2 = otherBounds.ClosestPoint(point) - point; - - if (distToClosestPoint1.magnitude == distToClosestPoint2.magnitude) - { - Vector3 toCenter1 = point - bounds.center; - Vector3 toCenter2 = point - otherBounds.center; - return (toCenter1.magnitude <= toCenter2.magnitude); - - } - - return (distToClosestPoint1.magnitude <= distToClosestPoint2.magnitude); - } - - /// - /// Draws a wire frame Bounds object using Debug.DrawLine. - /// - /// The Bounds to draw. - /// Color of the line. - /// How long the line should be visible for in seconds. - /// Should the line be obscured by objects closer to the camera? - public static void DebugDraw(this Bounds bounds, Color color, float duration = 0.0f, bool depthTest = true) - { - var center = bounds.center; - var x = bounds.extents.x; - var y = bounds.extents.y; - var z = bounds.extents.z; - var a = new Vector3(-x, y, -z); - var b = new Vector3(x, -y, -z); - var c = new Vector3(x, y, -z); - - var verticies = new Vector3[] - { - bounds.min, center + a, center + b, center + c, - bounds.max, center - a, center - b, center - c - }; - - for (var i = 0; i < boundsEdges.Length; i += 2) - { - Debug.DrawLine(verticies[boundsEdges[i]], verticies[boundsEdges[i + 1]], color, duration, depthTest); - } - } - - #endregion - - #region Private Static Functions - /// - /// Returns the vector which is used to represent and invalid bounds size. - /// - private static Vector3 GetInvalidBoundsSize() - { - return new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); - } - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs.meta deleted file mode 100644 index 41ec2cb50..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/BoundsExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8c8d13b5343245b79380f49b1f4359c0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs deleted file mode 100644 index 5014ecdf3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for the Unity's Camera class - /// - public static class CameraExtensions - { - /// - /// Get the horizontal FOV from the stereo camera in radians - /// - public static float GetHorizontalFieldOfViewRadians(this Camera camera) - { - return 2f * Mathf.Atan(Mathf.Tan(camera.fieldOfView * Mathf.Deg2Rad * 0.5f) * camera.aspect); - } - - /// - /// Get the horizontal FOV from the stereo camera in degrees - /// - public static float GetHorizontalFieldOfViewDegrees(this Camera camera) - { - return camera.GetHorizontalFieldOfViewRadians() * Mathf.Rad2Deg; - } - - /// - /// Returns if a point will be rendered on the screen in either eye - /// - /// The camera to check the point against - public static bool IsInFOV(this Camera camera, Vector3 position) - { - Vector3 screenPoint = camera.WorldToViewportPoint(position); - - return screenPoint.z >= camera.nearClipPlane && screenPoint.z <= camera.farClipPlane - && screenPoint.x >= 0 && screenPoint.x <= 1 - && screenPoint.y >= 0 && screenPoint.y <= 1; - } - - - /// - /// Returns true if a point is in the a cone inscribed into the Camera's frustum, false otherwise - /// The cone is inscribed to a radius equal to the vertical height of the camera's FOV. - /// By default, the cone's tip is "chopped off" by an amount defined by the camera's - /// far and near clip planes. - /// - /// Point to test - /// Degrees to expand the cone radius by. - public static bool IsInFOVCone(this Camera camera, - Vector3 point, - float coneAngleBufferDegrees = 0) - { - return MathUtilities.IsInFOVCone(camera.transform, - point, - camera.fieldOfView + coneAngleBufferDegrees, - camera.nearClipPlane, - camera.farClipPlane - ); - } - - /// - /// Gets the frustum size at a given distance from the camera. - /// - /// The camera to get the frustum size for - /// The distance from the camera to get the frustum size at - public static Vector2 GetFrustumSizeForDistance(this Camera camera, float distanceFromCamera) - { - Vector2 frustumSize = new Vector2 - { - y = 2.0f * distanceFromCamera * Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad) - }; - frustumSize.x = frustumSize.y * camera.aspect; - - return frustumSize; - } - - /// - /// Gets the distance to the camera that a specific frustum height would be at. - /// - /// The camera to get the distance from - /// The frustum height - public static float GetDistanceForFrustumHeight(this Camera camera, float frustumHeight) - { - return frustumHeight * 0.5f / Mathf.Max(0.00001f, Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad)); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs.meta deleted file mode 100644 index 36889983b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/CameraExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a82cef65e97445fe8ce8d90b15644cd7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs deleted file mode 100644 index 6e99775e8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using UnityEngine.UI; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extensions for the Canvas class. - /// - public static class CanvasExtensions - { - /// - /// Convenience method for getting a plane for this canvas in world coordinates. - /// - /// The canvas to get the plane from. - /// A Plane for this canvas. - public static Plane GetPlane(this Canvas canvas) - { - Vector3[] corners = canvas.GetWorldCorners(); - - // Now set a plane from any of the 3 corners (clockwise) so that we can compute our gaze intersection - Plane plane = new Plane(corners[0], corners[1], corners[2]); - - return plane; - } - - /// - /// Convenience method for getting the corners of the canvas in world coordinates. Ordered clockwise from bottom-left. - /// - /// The canvas to get the world corners from. - /// An array of Vector3s that represent the corners of the canvas in world coordinates. - public static Vector3[] GetWorldCorners(this Canvas canvas) - { - Vector3[] worldCorners = new Vector3[4]; - RectTransform rect = canvas.GetComponent(); - rect.GetWorldCorners(worldCorners); - return worldCorners; - } - - /// - /// Convenience method for getting the corners of the canvas in local coordinates. Ordered clockwise from bottom-left. - /// - /// The canvas to get the local corners from. - /// An array of Vector3s that represent the corners of the canvas in local coordinates. - public static Vector3[] GetLocalCorners(this Canvas canvas) - { - Vector3[] localCorners = new Vector3[4]; - RectTransform rect = canvas.GetComponent(); - rect.GetLocalCorners(localCorners); - return localCorners; - } - - /// - /// Convenience method for getting the corners of the canvas in viewport coordinates. Note - /// that the points have the same ordering as the array returned in GetWorldCorners() - /// - /// The canvas to get the viewport corners from - /// An array of Vector3s that represent the corners of the canvas in viewport coordinates - public static Vector3[] GetViewportCorners(this Canvas canvas) - { - Vector3[] viewportCorners = new Vector3[4]; - - Vector3[] worldCorners = canvas.GetWorldCorners(); - - for (int i = 0; i < 4; i++) - { - viewportCorners[i] = CameraCache.Main.WorldToViewportPoint(worldCorners[i]); - } - - return viewportCorners; - } - - /// - /// Gets the position of the corners for a canvas in screen space. - /// 1 -- 2 - /// | | - /// 0 -- 3 - /// - /// The canvas to get the screen corners for. - public static Vector3[] GetScreenCorners(this Canvas canvas) - { - Vector3[] screenCorners = new Vector3[4]; - Vector3[] worldCorners = canvas.GetWorldCorners(); - - for (int i = 0; i < 4; i++) - { - screenCorners[i] = CameraCache.Main.WorldToScreenPoint(worldCorners[i]); - } - - return screenCorners; - } - - /// - /// Returns a rectangle in screen coordinates that encompasses the bounds of the target canvas. - /// - /// The canvas the get the screen rect for - public static Rect GetScreenRect(this Canvas canvas) - { - Vector3[] screenCorners = canvas.GetScreenCorners(); - float x = Mathf.Min(screenCorners[0].x, screenCorners[1].x); - float y = Mathf.Min(screenCorners[0].y, screenCorners[3].y); - float xMax = Mathf.Max(screenCorners[2].x, screenCorners[3].x); - float yMax = Mathf.Max(screenCorners[1].y, screenCorners[2].y); - return new Rect(x, y, xMax - x, yMax - y); - } - - /// - /// Raycast against a canvas using a ray. - /// - /// The canvas to raycast against - /// The origin of the ray - /// The direction of the ray - /// The distance of the ray - /// The hitpoint of the ray - /// The child object that was hit or the canvas itself if it has no active children that were within the hit range. - public static bool Raycast(this Canvas canvas, Vector3 rayOrigin, Vector3 rayDirection, out float distance, out Vector3 hitPoint, out GameObject hitChildObject) - { - hitChildObject = null; - Plane plane = canvas.GetPlane(); - Ray ray = new Ray(rayOrigin, rayDirection); - - if (plane.Raycast(ray, out distance)) - { - // See if the point lies within the local canvas rect of the plane - Vector3[] corners = canvas.GetLocalCorners(); - hitPoint = rayOrigin + (rayDirection.normalized * distance); - Vector3 localHitPoint = canvas.transform.InverseTransformPoint(hitPoint); - if (localHitPoint.x >= corners[0].x - && localHitPoint.x <= corners[3].x - && localHitPoint.y <= corners[2].y - && localHitPoint.y >= corners[3].y) - { - hitChildObject = canvas.gameObject; - - // look for the child object that was hit - RectTransform rectTransform = GetChildRectTransformAtPoint(canvas.GetComponent(), hitPoint, true, true, true); - if (rectTransform != null) - { - hitChildObject = rectTransform.gameObject; - } - else - { - hitChildObject = canvas.gameObject; - } - - return true; - } - } - - hitPoint = Vector3.zero; - - return false; - } - - /// - /// Gets a child rect transform for the given point and parameters. - /// - /// The rect transform to look for children that may contain the projected (orthogonal to the child's normal) world point - /// The world point - /// Indicates if the check should be done recursively - /// If true, will only check children that are active, otherwise it will check all children. - /// If true, will only check children that if they have a graphic and have its member raycastTarget set to true, otherwise will ignore the raycastTarget value. Will still allow children to be checked that do not have a graphic component. - public static RectTransform GetChildRectTransformAtPoint(this RectTransform rectTransformParent, Vector3 worldPoint, bool recursive, bool shouldReturnActive, bool shouldReturnRaycastable) - { - Vector3[] localCorners = new Vector3[4]; - Vector3 childLocalPoint; - RectTransform rectTransform; - bool shouldRaycast = false; - - for (int i = rectTransformParent.childCount - 1; i >= 0; i--) - { - rectTransform = rectTransformParent.GetChild(i).GetComponent(); - Graphic graphic = rectTransform.GetComponent(); - shouldRaycast = ((shouldReturnRaycastable && graphic != null && graphic.raycastTarget) || graphic == null || !shouldReturnRaycastable); - - if (((shouldReturnActive && rectTransform.gameObject.activeSelf) || !shouldReturnActive)) - { - rectTransform.GetLocalCorners(localCorners); - childLocalPoint = rectTransform.InverseTransformPoint(worldPoint); - - if (recursive) - { - RectTransform childRect = GetChildRectTransformAtPoint(rectTransform, worldPoint, recursive, shouldReturnActive, shouldReturnRaycastable); - - if (childRect != null) - { - return childRect; - } - } - - if (shouldRaycast - && childLocalPoint.x >= localCorners[0].x - && childLocalPoint.x <= localCorners[3].x - && childLocalPoint.y <= localCorners[2].y - && childLocalPoint.y >= localCorners[3].y) - { - return rectTransform; - } - } - } - - return null; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs.meta deleted file mode 100644 index bbafb9255..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/CanvasExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1f326861b6dc467459b57eab1db672d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs deleted file mode 100644 index 61c8f324c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for .Net Collection objects, e.g. Lists, Dictionaries, Arrays - /// - public static class CollectionsExtensions - { - /// - /// Creates a read-only wrapper around an existing collection. - /// - /// The type of element in the collection. - /// The collection to be wrapped. - /// The new, read-only wrapper around . - public static ReadOnlyCollection AsReadOnly(this IList elements) - { - return new ReadOnlyCollection(elements); - } - - /// - /// Creates a read-only copy of an existing collection. - /// - /// The type of element in the collection. - /// The collection to be copied. - /// The new, read-only copy of . - public static ReadOnlyCollection ToReadOnlyCollection(this IEnumerable elements) - { - return elements.ToArray().AsReadOnly(); - } - - /// - /// Inserts an item in its sorted position into an already sorted collection. This is useful if you need to consume the - /// collection in between insertions and need it to stay correctly sorted the whole time. If you just need to insert a - /// bunch of items and then consume the sorted collection at the end, it's faster to add all the elements and then use - /// at the end. - /// - /// The type of element in the collection. - /// The collection of sorted elements to be inserted into. - /// The element to insert. - /// The comparer to use when sorting or null to use . - public static int SortedInsert(this List elements, TElement toInsert, IComparer comparer = null) - { - var effectiveComparer = comparer ?? Comparer.Default; - - if (Application.isEditor) - { - for (int iElement = 0; iElement < elements.Count - 1; iElement++) - { - var element = elements[iElement]; - var nextElement = elements[iElement + 1]; - - if (effectiveComparer.Compare(element, nextElement) > 0) - { - Debug.LogWarning("Elements must already be sorted to call this method."); - break; - } - } - } - - int searchResult = elements.BinarySearch(toInsert, effectiveComparer); - - int insertionIndex = searchResult >= 0 - ? searchResult - : ~searchResult; - - elements.Insert(insertionIndex, toInsert); - - return insertionIndex; - } - - /// - /// Disposes of all non-null elements in a collection. - /// - /// The type of element in the collection. - /// The collection of elements to be disposed. - public static void DisposeElements(this IEnumerable elements) - where TElement : IDisposable - { - foreach (var element in elements) - { - if (element != null) - { - element.Dispose(); - } - } - } - - /// - /// Disposes of all non-null elements in a collection. - /// - /// The type of element in the collection. - /// The collection of elements to be disposed. - public static void DisposeElements(this IList elements) - where TElement : IDisposable - { - for (int iElement = 0; iElement < elements.Count; iElement++) - { - var element = elements[iElement]; - - if (element != null) - { - element.Dispose(); - } - } - } - - /// - /// Exports the values of a uint indexed Dictionary as an Array - /// - /// Type of data stored in the values of the Dictionary - /// Dictionary to be exported - /// array in the type of data stored in the Dictionary - public static T[] ExportDictionaryValuesAsArray(this Dictionary input) - { - T[] output = new T[input.Count]; - input.Values.CopyTo(output, 0); - return output; - } - - /// - /// Overload extension to enable getting of an InteractionDefinition of a specific type - /// - /// The InteractionDefinition array reference - /// The specific DeviceInputType value to query - public static MixedRealityInteractionMapping GetInteractionByType(this MixedRealityInteractionMapping[] input, DeviceInputType key) - { - for (int i = 0; i < input?.Length; i++) - { - if (input[i].InputType == key) - { - return input[i]; - } - } - - return default(MixedRealityInteractionMapping); - } - - /// - /// Overload extension to enable getting of an InteractionDefinition of a specific type - /// - /// The InteractionDefinition array reference - /// The specific DeviceInputType value to query - public static bool SupportsInputType(this MixedRealityInteractionMapping[] input, DeviceInputType key) - { - for (int i = 0; i < input.Length; i++) - { - if (input[i].InputType == key) - { - return true; - } - } - - return false; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs.meta deleted file mode 100644 index 271b2f4c6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/CollectionsExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a2be8781cdb84a30811fcdbe0a3e0320 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs deleted file mode 100644 index e0799afd2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Globalization; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's Color32 struct - /// - public static class Color32Extensions - { - public static Color PremultiplyAlpha(Color col) - { - col.r *= col.a; - col.g *= col.a; - col.b *= col.a; - - return col; - } - - public static Color32 PremultiplyAlpha(Color32 col) - { - Color floatCol = col; - return (Color32)PremultiplyAlpha(floatCol); - } - - /// - /// Creates a Color from a hexcode string - /// - public static Color ParseHexcode(string hexstring) - { - if (hexstring.StartsWith("#")) - { - hexstring = hexstring.Substring(1); - } - - if (hexstring.StartsWith("0x")) - { - hexstring = hexstring.Substring(2); - } - - if (hexstring.Length == 6) - { - hexstring += "FF"; - } - - if (hexstring.Length != 8) - { - throw new ArgumentException(string.Format("{0} is not a valid color string.", hexstring)); - } - - byte r = byte.Parse(hexstring.Substring(0, 2), NumberStyles.HexNumber); - byte g = byte.Parse(hexstring.Substring(2, 2), NumberStyles.HexNumber); - byte b = byte.Parse(hexstring.Substring(4, 2), NumberStyles.HexNumber); - byte a = byte.Parse(hexstring.Substring(6, 2), NumberStyles.HexNumber); - - const float maxRgbValue = 255; - Color c = new Color(r / maxRgbValue, g / maxRgbValue, b / maxRgbValue, a / maxRgbValue); - return c; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs.meta deleted file mode 100644 index a1ea0d1ba..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/Color32Extensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1df8bd8f5849456aadf4e518f9100a46 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs deleted file mode 100644 index 34e02e83d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for .Net Comparer's - /// - public static class ComparerExtensions - { - /// - /// Gets a comparer that sorts elements in the opposite order of the original comparer. - /// - /// The type of element the comparer compares. - /// The comparer whose order should be reversed. - /// A comparer that sorts elements in the opposite order of . - public static IComparer GetReversed(this IComparer originalComparer) - { - return new ReverseComparer(originalComparer); - } - - private class ReverseComparer : IComparer - { - private readonly IComparer originalComparer; - - public ReverseComparer(IComparer originalComparer) - { - Debug.Assert(originalComparer != null, "originalComparer cannot be null."); - - this.originalComparer = originalComparer; - } - - public int Compare(TElement left, TElement right) - { - return originalComparer.Compare(right, left); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs.meta deleted file mode 100644 index 305443e8d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ComparerExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b4a220e9226b49efb855ca01a7f69ff4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs deleted file mode 100644 index 32133ddb0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extensions methods for the Unity Component class. - /// This also includes some component-related extensions for the GameObject class. - /// - public static class ComponentExtensions - { - /// - /// Ensure that a component of type exists on the game object. - /// If it doesn't exist, creates it. - /// - /// Type of the component. - /// A component on the game object for which a component of type should exist. - /// The component that was retrieved or created. - public static T EnsureComponent(this Component component) where T : Component - { - return EnsureComponent(component.gameObject); - } - - /// - /// Find the first component of type in the ancestors of the game object of the specified component. - /// - /// Type of component to find. - /// Component for which its game object's ancestors must be considered. - /// Indicates whether the specified game object should be included. - /// The component of type . Null if it none was found. - public static T FindAncestorComponent(this Component component, bool includeSelf = true) where T : Component - { - return component.transform.FindAncestorComponent(includeSelf); - } - - /// - /// Ensure that a component of type exists on the game object. - /// If it doesn't exist, creates it. - /// - /// Type of the component. - /// Game object on which component should be. - /// The component that was retrieved or created. - /// - /// This extension has to remain in this class as it is required by the method - /// - public static T EnsureComponent(this GameObject gameObject) where T : Component - { - T foundComponent = gameObject.GetComponent(); - return foundComponent == null ? gameObject.AddComponent() : foundComponent; - } - - /// - /// Ensure that a component of type exists on the game object. - /// If it doesn't exist, creates it. - /// - /// A component on the game object for which a component of type should exist. - /// The component that was retrieved or created. - public static Component EnsureComponent(this GameObject gameObject, Type component) - { - var foundComponent = gameObject.GetComponent(component); - return foundComponent == null ? gameObject.AddComponent(component) : foundComponent; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs.meta deleted file mode 100644 index 5458515c2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ComponentExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f211201cc93f4cd4b5eff7d765a3a617 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs deleted file mode 100644 index 0d9ebe689..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extensions. - /// - public static class DateTimeExtensions - { - /// - /// Gets string literal for relative time from now since the DateTime provided. String output is in most appropriate "x time units ago" - /// Example: If DateTime provided is 30 seconds before now, then result will be "30 seconds ago" - /// - /// DateTime in UTC to compare against DateTime.UtcNow - /// Encoded string. - public static string GetRelativeTime(this DateTime time) - { - var delta = new TimeSpan(DateTime.UtcNow.Ticks - time.Ticks); - - if (Math.Abs(delta.TotalDays) > 1.0) - { - return (int)Math.Abs(delta.TotalDays) + " days ago"; - } - else if (Math.Abs(delta.TotalHours) > 1.0) - { - return (int)Math.Abs(delta.TotalHours) + " hours ago"; - } - else if (Math.Abs(delta.TotalMinutes) > 1.0) - { - return (int)Math.Abs(delta.TotalMinutes) + " minutes ago"; - } - else - { - return (int)Math.Abs(delta.TotalSeconds) + " seconds ago"; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs.meta deleted file mode 100644 index 5e919aee9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/DateTimeExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ec124977f18b65143a87328ae508dc4d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs deleted file mode 100644 index 613a47a89..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for the .Net Double struct - /// - public static class DoubleExtensions - { - /// - /// Checks if two numbers are approximately equal. Similar to Mathf.Approximately(float, float), but the tolerance - /// can be specified. - /// - /// One of the numbers to compare. - /// The other number to compare. - /// The amount of tolerance to allow while still considering the numbers approximately equal. - /// True if the difference between the numbers is less than or equal to the tolerance, false otherwise. - public static bool Approximately(this double number, double other, double tolerance) - { - return Math.Abs(number - other) <= tolerance; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs.meta deleted file mode 100644 index 63eb2759d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/DoubleExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ece6b9e6800a4a529a30b1fe7a13e742 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions.meta b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions.meta deleted file mode 100644 index ce7d65d0a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6c5dce2e3e594811a9c5bcdc609848b3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs.meta deleted file mode 100644 index 5cc97126b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8624136f65861f84c99e795f7b9836f3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs deleted file mode 100644 index 83850ee83..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - public static class EditorLayerExtensions - { - private static SerializedProperty tagManagerLayers = null; - - /// - /// The current layers defined in the Tag Manager. - /// - public static UnityEditor.SerializedProperty TagManagerLayers - { - get - { - if (tagManagerLayers == null) - { - InitializeTagManager(); - } - - return tagManagerLayers; - } - } - - private static void InitializeTagManager() - { - Object[] tagAssets = UnityEditor.AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset"); - - if ((tagAssets == null) || (tagAssets.Length == 0)) - { - Debug.LogError("Failed to load TagManager!"); - return; - } - - var tagsManager = new UnityEditor.SerializedObject(tagAssets); - tagManagerLayers = tagsManager.FindProperty("layers"); - - Debug.Assert(tagManagerLayers != null); - } - - /// - /// Attempts to set the layer in Project Settings Tag Manager. - /// - /// The layer Id to attempt to set the layer on. - /// The layer name to attempt to set the layer on. - /// - /// True if the specified layerId was newly configured, false otherwise. - /// - public static bool SetupLayer(int layerId, string layerName) - { - SerializedProperty layer = TagManagerLayers.GetArrayElementAtIndex(layerId); - - if (!string.IsNullOrEmpty(layer.stringValue)) - { - // layer already set. - return false; - } - - layer.stringValue = layerName; - layer.serializedObject.ApplyModifiedProperties(); - AssetDatabase.SaveAssets(); - return true; - } - - /// - /// Attempts to remove the layer from the Project Settings Tag Manager. - /// - public static void RemoveLayer(string layerName) - { - for (int i = 0; i < TagManagerLayers.arraySize; i++) - { - var layer = TagManagerLayers.GetArrayElementAtIndex(i); - - if (layer.stringValue == layerName) - { - layer.stringValue = string.Empty; - layer.serializedObject.ApplyModifiedProperties(); - AssetDatabase.SaveAssets(); - break; - } - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs.meta deleted file mode 100644 index 76fd2ac3c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/EditorLayerExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7bf7a3d18bba6c241b1d2fc4cff695fd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef deleted file mode 100644 index 5558ebb0b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Editor.ClassExtensions", - "references": [], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef.meta deleted file mode 100644 index facbf3d24..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/MRTK.Editor.ClassExtensions.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7b81b416265c480884e087550884a3e8 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs deleted file mode 100644 index a2e935c67..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Extensions for ScriptableObjects - /// - public static class ScriptableObjectExtensions - { - /// - /// Creates, saves, and then opens a new asset for the target ScriptableObject. - /// - /// ScriptableObject you want to create an asset file for. - /// Optional path for the new asset. - /// Optional filename for the new asset. - public static ScriptableObject CreateAsset(this ScriptableObject scriptableObject, string path = null, string fileName = null) - { - var name = string.IsNullOrEmpty(fileName) ? $"{scriptableObject.GetType().Name}" : fileName; - - if (string.IsNullOrEmpty(path)) - { - path = "Assets"; - } - - if (Path.GetExtension(path) != string.Empty) - { - var subtractedPath = path.Substring(path.LastIndexOf("/", StringComparison.Ordinal)); - path = path.Replace(subtractedPath, string.Empty); - } - - if (!Directory.Exists(Path.GetFullPath(path))) - { - Directory.CreateDirectory(Path.GetFullPath(path)); - } - - string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath($"{path}/{name}.asset"); - - AssetDatabase.CreateAsset(scriptableObject, assetPathAndName); - AssetDatabase.SaveAssets(); - AssetDatabase.Refresh(); - EditorGUIUtility.PingObject(scriptableObject); - return scriptableObject; - } - - /// - /// Gets all the scriptable object instances in the project. - /// - /// The Type of ScriptableObject you're wanting to find instances of. - /// An Array of instances for the type. - public static T[] GetAllInstances() where T : ScriptableObject - { - // FindAssets uses tags check documentation for more info - string[] guids = AssetDatabase.FindAssets($"t:{typeof(T).Name}"); - var instances = new T[guids.Length]; - - for (int i = 0; i < guids.Length; i++) - { - string path = AssetDatabase.GUIDToAssetPath(guids[i]); - instances[i] = AssetDatabase.LoadAssetAtPath(path); - } - - return instances; - } - - /// - /// Gets all the scriptable object instances in the project. - /// - /// The Type of ScriptableObject you're wanting to find instances of. - /// An Array of instances for the type. - public static ScriptableObject[] GetAllInstances(Type assetType) - { - // FindAssets uses tags check documentation for more info - string[] guids = AssetDatabase.FindAssets($"t:{assetType.Name}"); - var instances = new ScriptableObject[guids.Length]; - - for (int i = 0; i < guids.Length; i++) - { - string path = AssetDatabase.GUIDToAssetPath(guids[i]); - instances[i] = AssetDatabase.LoadAssetAtPath(path); - } - - return instances; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs.meta deleted file mode 100644 index bd20bc614..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EditorClassExtensions/ScriptableObjectExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 58fe43cbf27d453699a23c20159f459a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs deleted file mode 100644 index 16c094be5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for the .Net IEnumerable class - /// - public static class EnumerableExtensions - { - /// - /// Returns the max element based on the provided comparer or the default value when the list is empty - /// - /// Max or default value of T - public static T MaxOrDefault(this IEnumerable items, IComparer comparer = null) - { - if (items == null) { throw new ArgumentNullException("items"); } - comparer = comparer ?? Comparer.Default; - - using (var enumerator = items.GetEnumerator()) - { - if (!enumerator.MoveNext()) - { - return default(T); - } - - var max = enumerator.Current; - while (enumerator.MoveNext()) - { - if (comparer.Compare(max, enumerator.Current) < 0) - { - max = enumerator.Current; - } - } - return max; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs.meta deleted file mode 100644 index a62ded426..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EnumerableExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fd03ae5f431b447ba64dbfba6b4b61f5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs deleted file mode 100644 index 9f458d5c3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using Microsoft.MixedReality.Toolkit.Physics; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's EventSystem - /// - public static class EventSystemExtensions - { - private static readonly List RaycastResults = new List(); - private static readonly RaycastResultComparer RaycastResultComparer = new RaycastResultComparer(); - - private static readonly ProfilerMarker RaycastPerfMarker = new ProfilerMarker("[MRTK] EventSystemExtensions.Raycast"); - - /// - /// Executes a raycast all and returns the closest element. - /// Fixes the current issue with Unity's raycast sorting which does not consider separate canvases. - /// - /// - /// Takes an optional RaycastResultComparer, which will be used to select the highest priority - /// raycast result. - /// - /// RaycastResult if hit, or an empty RaycastResult if nothing was hit - public static RaycastResult Raycast(this EventSystem eventSystem, PointerEventData pointerEventData, LayerMask[] layerMasks, RaycastResultComparer raycastResultComparer = null) - { - using (RaycastPerfMarker.Auto()) - { - eventSystem.RaycastAll(pointerEventData, RaycastResults); - return PrioritizeRaycastResult(layerMasks, raycastResultComparer); - } - } - - private static readonly ProfilerMarker PrioritizeRaycastResultPerfMarker = new ProfilerMarker("[MRTK] EventSystemExtensions.PrioritizeRaycastResult"); - - /// - /// Sorts the available Raycasts in to a priority order for query. - /// - /// The layer mask priority. - /// - private static RaycastResult PrioritizeRaycastResult(LayerMask[] priority, RaycastResultComparer raycastResultComparer) - { - using (PrioritizeRaycastResultPerfMarker.Auto()) - { - // If not specified, default to the in-box RaycastResultComparer. - if (raycastResultComparer == null) - { - raycastResultComparer = RaycastResultComparer; - } - - ComparableRaycastResult maxResult = default(ComparableRaycastResult); - - for (var i = 0; i < RaycastResults.Count; i++) - { - if (RaycastResults[i].gameObject == null) { continue; } - - var layerMaskIndex = RaycastResults[i].gameObject.layer.FindLayerListIndex(priority); - if (layerMaskIndex == -1) { continue; } - - var result = new ComparableRaycastResult(RaycastResults[i], layerMaskIndex); - - if (maxResult.RaycastResult.module == null || raycastResultComparer.Compare(maxResult, result) < 0) - { - maxResult = result; - } - } - - return maxResult.RaycastResult; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs.meta deleted file mode 100644 index 264e2c8e5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/EventSystemExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 246eece0943a48b2949d3fa2006e3b26 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs deleted file mode 100644 index d3a54f582..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for the .Net Float struct - /// - public static class FloatExtensions - { - /// - /// Checks if two numbers are approximately equal. Similar to Mathf.Approximately(float, float), but the tolerance - /// can be specified. - /// - /// One of the numbers to compare. - /// The other number to compare. - /// The amount of tolerance to allow while still considering the numbers approximately equal. - /// True if the difference between the numbers is less than or equal to the tolerance, false otherwise. - public static bool Approximately(this float number, float other, float tolerance) - { - return Mathf.Abs(number - other) <= tolerance; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs.meta deleted file mode 100644 index 38dedc82a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/FloatExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9735ed9f51f645b5be095dc6bdb70312 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs deleted file mode 100644 index 0c1e667da..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's GameObject class - /// - public static class GameObjectExtensions - { - /// - /// Export mesh data of current GameObject, and children if enabled, to file provided in OBJ format - /// - public static async Task ExportOBJAsync(this GameObject root, string filePath, bool includeChildren = true) - { - await OBJWriterUtility.ExportOBJAsync(root, filePath, includeChildren); - } - - /// - /// Set all GameObject children active or inactive based on argument - /// - /// GameObject parent to traverse from - /// Indicates whether children GameObjects should be active or not - /// - /// Does not call SetActive on the top level GameObject, only its children - /// - public static void SetChildrenActive(this GameObject root, bool isActive) - { - for (int i = 0; i < root.transform.childCount; i++) - { - root.transform.GetChild(i).gameObject.SetActive(isActive); - } - } - - /// - /// Set the layer to the given object and the full hierarchy below it. - /// - /// Start point of the traverse - /// The layer to apply - public static void SetLayerRecursively(this GameObject root, int layer) - { - if (root == null) - { - throw new ArgumentNullException(nameof(root), "Root transform can't be null."); - } - - foreach (var child in root.transform.EnumerateHierarchy()) - { - child.gameObject.layer = layer; - } - } - - /// - /// Set the layer to the given object and the full hierarchy below it and cache the previous layers in the out parameter. - /// - /// Start point of the traverse - /// The layer to apply - /// The previously set layer for each object - public static void SetLayerRecursively(this GameObject root, int layer, out Dictionary cache) - { - if (root == null) { throw new ArgumentNullException(nameof(root)); } - - cache = new Dictionary(); - - foreach (var child in root.transform.EnumerateHierarchy()) - { - cache[child.gameObject] = child.gameObject.layer; - child.gameObject.layer = layer; - } - } - - /// - /// Reapplies previously cached hierarchy layers - /// - /// Start point of the traverse - /// The previously set layer for each object - public static void ApplyLayerCacheRecursively(this GameObject root, Dictionary cache) - { - if (root == null) { throw new ArgumentNullException(nameof(root)); } - if (cache == null) { throw new ArgumentNullException(nameof(cache)); } - - foreach (var child in root.transform.EnumerateHierarchy()) - { - int layer; - if (!cache.TryGetValue(child.gameObject, out layer)) { continue; } - child.gameObject.layer = layer; - cache.Remove(child.gameObject); - } - } - - /// - /// Determines whether or not a game object's layer is included in the specified layer mask. - /// - /// The game object whose layer to test. - /// The layer mask to test against. - /// True if 's layer is included in , false otherwise. - public static bool IsInLayerMask(this GameObject gameObject, LayerMask layerMask) - { - LayerMask gameObjectMask = 1 << gameObject.layer; - return (gameObjectMask & layerMask) == gameObjectMask; - } - - /// - /// Apply the specified delegate to all objects in the hierarchy under a specified game object. - /// - /// Root game object of the hierarchy. - /// Delegate to apply. - public static void ApplyToHierarchy(this GameObject root, Action action) - { - action(root); - Transform[] items = root.GetComponentsInChildren(); - - for (var i = 0; i < items.Length; i++) - { - action(items[i].gameObject); - } - } - - /// - /// Find the first component of type in the ancestors of the specified game object. - /// - /// Type of component to find. - /// Game object for which ancestors must be considered. - /// Indicates whether the specified game object should be included. - /// The component of type . Null if it none was found. - public static T FindAncestorComponent(this GameObject gameObject, bool includeSelf = true) where T : Component - { - return gameObject.transform.FindAncestorComponent(includeSelf); - } - - /// - /// Perform an action on every component of type T that is on this GameObject - /// - /// Component Type - /// this gameObject - /// Action to perform. - public static void ForEachComponent(this GameObject gameObject, Action action) - { - foreach (T i in gameObject.GetComponents()) - { - action(i); - } - } - - /// - /// Destroys GameObject appropriately depending if in edit or playmode - /// - /// GameObject to destroy - /// time in seconds at which to destroy GameObject if applicable - public static void DestroyGameObject(GameObject gameObject, float t = 0.0f) - { - UnityObjectExtensions.DestroyObject(gameObject, t); - } - - /// - /// Checks if any MonoBehaviour on the given GameObject is using the RequireComponentAttribute requiring type T - /// - /// Only functions when called within a UNITY_EDITOR context. Outside of UNITY_EDITOR, always returns false - /// The potentially required component - /// the GameObject requiring the component - /// A list of types that do require the component in question - /// true if appears in any RequireComponentAttribute, otherwise false - public static bool IsComponentRequired(this GameObject gameObject, out List requiringTypes) where T : Component - { - var genericType = typeof(T); - requiringTypes = null; - -#if UNITY_EDITOR - foreach (var monoBehaviour in gameObject.GetComponents()) - { - if (monoBehaviour == null) - { - continue; - } - - var monoBehaviourType = monoBehaviour.GetType(); - var attributes = Attribute.GetCustomAttributes(monoBehaviourType); - - foreach (var attribute in attributes) - { - var requireComponentAttribute = attribute as RequireComponent; - if (requireComponentAttribute != null) - { - if (requireComponentAttribute.m_Type0 == genericType || - requireComponentAttribute.m_Type1 == genericType || - requireComponentAttribute.m_Type2 == genericType) - { - if (requiringTypes == null) - { - requiringTypes = new List(); - } - - requiringTypes.Add(monoBehaviourType); - } - } - } - } -#endif // UNITY_EDITOR - - return requiringTypes != null; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs.meta deleted file mode 100644 index 17ba4143c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/GameObjectExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e51dffcf6ded45a48ba75d63d5bcb520 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs deleted file mode 100644 index c4f676281..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// type method extensions. - /// - public static class HandednessExtensions - { - /// - /// Gets the opposite "hand" flag for the current Handedness value. - /// - /// - /// If current = Left, returns Right. - /// If current = Right, returns Left. - /// Otherwise, returns None - /// - public static Handedness GetOppositeHandedness(this Handedness current) - { - if (current == Handedness.Left) - { - return Handedness.Right; - } - else if (current == Handedness.Right) - { - return Handedness.Left; - } - else - { - return Handedness.None; - } - } - - /// - /// Returns true if the current Handedness is the Right (i.e == Handedness.Right), false otherwise - /// - public static bool IsRight(this Handedness current) - { - return current == Handedness.Right; - } - - /// - /// Returns true if the current Handedness is the Right (i.e == Handedness.Right), false otherwise - /// - public static bool IsLeft(this Handedness current) - { - return current == Handedness.Left; - } - - /// - /// Returns true if the current Handedness is the Right (i.e == Handedness.Right), false otherwise - /// - public static bool IsNone(this Handedness current) - { - return current == Handedness.None; - } - - /// - /// Returns true if the current Handedness flags are a match with the comparison Handedness flags, false otherwise - /// - public static bool IsMatch(this Handedness current, Handedness compare) - { - return (current & compare) != 0; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs.meta deleted file mode 100644 index 52ff51048..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/HandednessExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1fb5bfd4f80d7174c81d4778748ba924 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs deleted file mode 100644 index f82bb8101..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's LayerMask struct - /// - public static class LayerExtensions - { - /// - /// The Invalid Layer Id. - /// - public const int InvalidLayerId = -1; - - /// - /// Look through the layerMaskList and find the index in that list for which the supplied layer is part of - /// - /// Layer to search for - /// List of LayerMasks to search - /// LayerMaskList index, or -1 for not found - public static int FindLayerListIndex(this int layer, LayerMask[] layerMasks) - { - for (int j = 0; j < layerMasks.Length; j++) - { - if (layer.IsInLayerMask(layerMasks[j])) - { - return j; - } - } - - return -1; - } - - /// - /// Checks whether a layer is in a layer mask - /// - /// True if the layer mask contains the layer - public static bool IsInLayerMask(this int layer, int layerMask) - { - return ((1 << layer) & layerMask) != 0; - } - - /// - /// Combines provided layers into a single layer mask. - /// - /// The combined layer mask - public static int Combine(this LayerMask[] layerMaskList) - { - int combinedLayerMask = 0; - for (int i = 0; i < layerMaskList.Length; i++) - { - combinedLayerMask = combinedLayerMask | layerMaskList[i].value; - } - return combinedLayerMask; - } - - /// - /// Transform layer id to LayerMask - /// - public static LayerMask ToMask(int layerId) - { - return 1 << layerId; - } - - /// - /// Gets a valid layer id using the layer name. - /// - /// The cached layer id. - /// The name of the layer to look for if the cache is unset. - /// The layer id. - public static int GetLayerId(ref int cache, string layerName) - { - if (cache == InvalidLayerId) - { - cache = LayerMask.NameToLayer(layerName); - } - - return cache; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs.meta deleted file mode 100644 index 502da7840..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/LayerExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fd6c695fdece4cc58512d654d8aade4a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs deleted file mode 100644 index f6e9728a7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods and helper functions for various math data - /// - public static class MathExtensions - { - public static int MostSignificantBit(this int x) - { - x |= (x >> 1); - x |= (x >> 2); - x |= (x >> 4); - x |= (x >> 8); - x |= (x >> 16); - - return x & ~(x >> 1); - } - - public static int PowerOfTwoGreaterThanOrEqualTo(this int v) - { - return Mathf.IsPowerOfTwo(v) ? v : Mathf.NextPowerOfTwo(v); - } - - public static Vector3Int PowerOfTwoGreaterThanOrEqualTo(this Vector3Int v) - { - return new Vector3Int(PowerOfTwoGreaterThanOrEqualTo(v.x), - PowerOfTwoGreaterThanOrEqualTo(v.y), - PowerOfTwoGreaterThanOrEqualTo(v.z)); - } - - public static int CubicToLinearIndex(Vector3Int ndx, Vector3Int size) - { - return (ndx.x) + - (ndx.y * size.x) + - (ndx.z * size.x * size.y); - } - - public static Vector3Int LinearToCubicIndex(int linearIndex, Vector3Int size) - { - return new Vector3Int((linearIndex / 1) % size.x, - (linearIndex / size.x) % size.y, - (linearIndex / (size.x * size.y)) % size.z); - } - - public static Vector3 ClampComponentWise(Vector3 value, Vector3 min, Vector3 max) - { - return new Vector3(Mathf.Clamp(value.x, min.x, max.x), - Mathf.Clamp(value.y, min.y, max.y), - Mathf.Clamp(value.z, min.z, max.z)); - } - - /// - /// Sets the value to zero if greater than the specified amount. - /// - public static int ResetIfGreaterThan(this int value, int amount) - { - if (value > amount) - { - value = 0; - } - - return value; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs.meta deleted file mode 100644 index de5d56ae6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/MathfExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: dcbd7251a0c44e1d9a1a5e57457549d4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs deleted file mode 100644 index 9b3baf31e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if UNITY_EDITOR || !UNITY_WSA -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Process Extension class. - /// - public static class ProcessExtensions - { - /// - /// Starts a process asynchronously. - /// - /// This Process. - /// The process executable to run. - /// The Process arguments. - /// Should output debug code to Editor Console? - /// - public static async Task StartProcessAsync(this Process process, string fileName, string args, bool showDebug = false, CancellationToken cancellationToken = default) - { - return await StartProcessAsync(process, new ProcessStartInfo - { - FileName = fileName, - CreateNoWindow = true, - UseShellExecute = false, - RedirectStandardOutput = true, - RedirectStandardError = true, - Arguments = args - }, showDebug, cancellationToken); - } - - /// - /// Starts a process asynchronously. - /// - /// The provided Process Start Info must not use shell execution, and should redirect the standard output and errors. - /// This Process. - /// The Process start info. - /// Should output debug code to Editor Console? - /// - public static async Task StartProcessAsync(this Process process, ProcessStartInfo startInfo, bool showDebug = false, CancellationToken cancellationToken = default) - { - Debug.Assert(!startInfo.UseShellExecute, "Process Start Info must not use shell execution."); - Debug.Assert(startInfo.RedirectStandardOutput, "Process Start Info must redirect standard output."); - Debug.Assert(startInfo.RedirectStandardError, "Process Start Info must redirect standard errors."); - - process.StartInfo = startInfo; - process.EnableRaisingEvents = true; - - var processResult = new TaskCompletionSource(); - var errorCodeResult = new TaskCompletionSource(); - var errorList = new List(); - var outputCodeResult = new TaskCompletionSource(); - var outputList = new List(); - - process.Exited += OnProcessExited; - process.ErrorDataReceived += OnErrorDataReceived; - process.OutputDataReceived += OnOutputDataReceived; - - async void OnProcessExited(object sender, EventArgs args) - { - processResult.TrySetResult(new ProcessResult(process.ExitCode, await errorCodeResult.Task, await outputCodeResult.Task)); - process.Close(); - process.Dispose(); - } - - void OnErrorDataReceived(object sender, DataReceivedEventArgs args) - { - if (args.Data != null) - { - errorList.Add(args.Data); - - if (!showDebug) - { - return; - } - - UnityEngine.Debug.LogError(args.Data); - } - else - { - errorCodeResult.TrySetResult(errorList.ToArray()); - } - } - - void OnOutputDataReceived(object sender, DataReceivedEventArgs args) - { - if (args.Data != null) - { - outputList.Add(args.Data); - - if (!showDebug) - { - return; - } - - UnityEngine.Debug.Log(args.Data); - } - else - { - outputCodeResult.TrySetResult(outputList.ToArray()); - } - } - - if (!process.Start()) - { - if (showDebug) - { - UnityEngine.Debug.LogError("Failed to start process!"); - } - - processResult.TrySetResult(new ProcessResult(process.ExitCode, new[] { "Failed to start process!" }, null)); - } - else - { - process.BeginOutputReadLine(); - process.BeginErrorReadLine(); - CancellationWatcher(process); - } - - async void CancellationWatcher(Process _process) - { - await Task.Run(() => - { - try - { - while (!_process.HasExited) - { - if (cancellationToken.IsCancellationRequested) - { - _process.Kill(); - } - } - } - catch - { - // ignored - } - }); - } - - return await processResult.Task; - } - } -} -#endif diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs.meta deleted file mode 100644 index a298fcd95..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ProcessExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 74b749c932e241b3bde767959c28da46 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs deleted file mode 100644 index 0bd35e104..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's Quaternion struct. - /// - public static class QuaternionExtensions - { - public static bool IsValidRotation(this Quaternion rotation) - { - return !float.IsNaN(rotation.x) && !float.IsNaN(rotation.y) && !float.IsNaN(rotation.z) && !float.IsNaN(rotation.w) && - !float.IsInfinity(rotation.x) && !float.IsInfinity(rotation.y) && !float.IsInfinity(rotation.z) && !float.IsInfinity(rotation.w); - } - - /// - /// Determines if the angle between two quaternions is within a given tolerance. - /// - /// The first quaternion. - /// The second quaternion. - /// The maximum angle that will cause this to return true. - /// True if the quaternions are aligned within the tolerance, false otherwise. - public static bool AlignedEnough(Quaternion q1, Quaternion q2, float angleTolerance) - { - return Mathf.Abs(Quaternion.Angle(q1, q2)) < angleTolerance; - } - - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs.meta deleted file mode 100644 index 6b1fdf652..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/QuaternionExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7601214696b04442b86ae79754fdb182 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs deleted file mode 100644 index 7482e3cea..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's Ray struct - /// - public static class RayExtensions - { - /// - /// Determines whether or not a ray is valid. - /// - /// The ray being tested. - /// True if the ray is valid, false otherwise. - public static bool IsValid(this Ray ray) - { - return ray.direction != Vector3.zero; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs.meta deleted file mode 100644 index 5e1b499b5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/RayExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 06ac0b53630a473581d7e70505975010 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs deleted file mode 100644 index ba3253974..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if WINDOWS_UWP && !ENABLE_IL2CPP -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for .Net reflection functions - /// - public static class ReflectionExtensions - { - public static EventInfo GetEvent(this Type type, string eventName) - { - return type.GetRuntimeEvent(eventName); - } - - public static MethodInfo GetMethod(this Type type, string methodName) - { - return GetMethod(type, methodName, (BindingFlags)0x0); - } - - public static MethodInfo GetMethod(this Type type, string methodName, BindingFlags flags) - { - var result = type.GetTypeInfo().GetDeclaredMethod(methodName); - if (((flags & BindingFlags.FlattenHierarchy) != 0) && result == null) - { - var baseType = type.GetTypeInfo().BaseType; - if (baseType != null) - { - return GetMethod(baseType, methodName, flags); - } - } - - return result; - } - - public static MethodInfo GetMethod(this Type type, string methodName, BindingFlags bindingAttr, Object binder, Type[] parameters, Object[] modifiers) - { - var result = type.GetTypeInfo().GetDeclaredMethod(methodName); - if (result == null) - { - var baseType = type.GetTypeInfo().BaseType; - if (baseType != null) - { - return GetMethod(baseType, methodName, bindingAttr, binder, parameters, modifiers); - } - } - - return result; - } - - public static MethodInfo GetMethod(this Type type, string methodName, Type[] parameters) - { - return GetMethods(type).Where(m => m.Name == methodName).FirstOrDefault( - m => - { - var types = m.GetParameters().Select(p => p.ParameterType).ToArray(); - if (types.Length == parameters.Length) - { - for (int idx = 0; idx < types.Length; idx++) - { - if (types[idx] != parameters[idx]) - { - return false; - } - } - - return true; - } - else - { - return false; - } - } - ); - } - - public static IEnumerable GetMethods(this Type type) - { - return GetMethods(type, (BindingFlags)0x0); - } - - public static IEnumerable GetMethods(this Type type, BindingFlags flags) - { - return type.GetTypeInfo().GetMethods(flags); - } - - public static IEnumerable GetMethods(this TypeInfo type) - { - return GetMethods(type, (BindingFlags)0x0); - } - - public static IEnumerable GetMethods(this TypeInfo type, BindingFlags flags) - { - return type.DeclaredMethods; - } - - public static IEnumerable GetFields(this Type type) - { - return GetFields(type, (BindingFlags)0x0); - } - - public static IEnumerable GetFields(this Type type, BindingFlags flags) - { - return type.GetTypeInfo().DeclaredFields; - } - - public static FieldInfo GetField(this Type type, string fieldName) - { - return type.GetRuntimeField(fieldName); - } - - public static IEnumerable GetProperties(this Type type, BindingFlags flags) - { - return type.GetTypeInfo().DeclaredProperties; - } - - public static PropertyInfo GetProperty(this Type type, string propertyName) - { - return GetProperty(type, propertyName, (BindingFlags)0x0); - } - - public static PropertyInfo GetProperty(this Type type, string propertyName, BindingFlags flags) - { - return type.GetRuntimeProperty(propertyName); - } - - public static PropertyInfo GetProperty(this Type type, string propertyName, Type returnType) - { - return type.GetRuntimeProperty(propertyName); - } - - public static IEnumerable GetTypeInfos(this Assembly assembly) - { - return assembly.DefinedTypes; - } - - public static Type[] GetInterfaces(this Type type) - { - return type.GetTypeInfo().ImplementedInterfaces.ToArray(); - } - - public static bool IsClass(this Type type) - { - return type.GetTypeInfo().IsClass; - } - - public static bool IsInterface(this Type type) - { - return type.GetTypeInfo().IsInterface; - } - - public static bool IsAbstract(this Type type) - { - return type.GetTypeInfo().IsAbstract; - } - - public static bool IsSubclassOf(this Type type, Type c) - { - return type.GetTypeInfo().IsSubclassOf(c); - } - - public static bool IsAssignableFrom(this Type type, Type c) - { - return type.IsAssignableFrom(c.GetTypeInfo()); - } - - public static bool IsEnum(this Type type) - { - return type.GetTypeInfo().IsEnum; - } - - public static bool IsValueType(this Type type) - { - return type.GetTypeInfo().IsValueType; - } - - public static bool IsAssignableFrom(this Type type, TypeInfo typeInfo) - { - return type.GetTypeInfo().IsAssignableFrom(typeInfo); - } - - public static object[] GetCustomAttributes(this Type type, bool inherit) - { - return type.GetTypeInfo().GetCustomAttributes(inherit).ToArray(); - } - - public static object[] GetCustomAttributes(this Type type, Type attributeType, bool inherit) - { - return type.GetTypeInfo().GetCustomAttributes(attributeType, inherit).ToArray(); - } - } -} -#endif // WINDOWS_UWP && !ENABLE_IL2CPP diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs.meta deleted file mode 100644 index 4f32c8ff3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/ReflectionExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d8682816b9a14e8e9e9a777af1e25df5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs deleted file mode 100644 index f1013641f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Text; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extensions. - /// - public static class StringBuilderExtensions - { - /// - /// Append new line for current Environment to this StringBuilder buffer - /// - public static StringBuilder AppendNewLine(this StringBuilder sb) - { - sb.Append(Environment.NewLine); - return sb; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs.meta deleted file mode 100644 index da889ea31..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/StringBuilderExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 00d64e9c83401b94eb4def98c5bada6a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs deleted file mode 100644 index c52fd1802..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.IO; -using System.Text; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extensions. - /// - public static class StringExtensions - { - /// - /// Encodes the string to base 64 ASCII. - /// - /// String to encode. - /// Encoded string. - public static string EncodeTo64(this string toEncode) - { - byte[] toEncodeAsBytes = Encoding.ASCII.GetBytes(toEncode); - return Convert.ToBase64String(toEncodeAsBytes); - } - - /// - /// Decodes string from base 64 ASCII. - /// - /// String to decode. - /// Decoded string. - public static string DecodeFrom64(this string encodedData) - { - byte[] encodedDataAsBytes = Convert.FromBase64String(encodedData); - return Encoding.ASCII.GetString(encodedDataAsBytes); - } - - /// - /// Capitalize the first character and add a space before - /// each capitalized letter (except the first character). - /// - public static string ToProperCase(this string value) - { - // If there are 0 or 1 characters, just return the string. - if (value == null) { return value; } - if (value.Length < 2) { return value.ToUpper(); } - // If there's already spaces in the string, return. - if (value.Contains(" ")) { return value; } - - // Start with the first character. - string result = value.Substring(0, 1).ToUpper(); - - // Add the remaining characters. - for (int i = 1; i < value.Length; i++) - { - if (char.IsLetter(value[i]) && - char.IsUpper(value[i])) - { - // Add a space if the previous character is not upper-case. - // e.g. "LeftHand" -> "Left Hand" - if (i != 1 && // First character is upper-case in result. - (!char.IsLetter(value[i - 1]) || char.IsLower(value[i - 1]))) - { - result += " "; - } - // If previous character is upper-case, only add space if the next - // character is lower-case. Otherwise assume this character to be inside - // an acronym. - // e.g. "OpenVRLeftHand" -> "Open VR Left Hand" - else if (i < value.Length - 1 && - char.IsLetter(value[i + 1]) && char.IsLower(value[i + 1])) - { - result += " "; - } - } - - result += value[i]; - } - - return result; - } - - /// - /// Ensures directory separator chars in provided string are platform independent. Given path might use \ or / but not all platforms support both. - /// - public static string NormalizeSeparators(this string path) - => path?.Replace('\\', Path.DirectorySeparatorChar).Replace('/', Path.DirectorySeparatorChar); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs.meta deleted file mode 100644 index f75231f56..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/StringExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 42f4271ffab3451aa81517d121c43957 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs deleted file mode 100644 index e3d5dcbae..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright(c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - public static class SystemNumericsExtensions - { - /// - /// Converts this System.Numerics Vector3 to a UnityEngine Vector3. - /// - /// The vector to convert. - /// The converted vector. - public static UnityEngine.Vector3 ToUnityVector3(this System.Numerics.Vector3 vector) - { - return new UnityEngine.Vector3(vector.X, vector.Y, -vector.Z); - } - - /// - /// Converts this System.Numerics Vector3 to a UnityEngine Vector3 format, storing values directly in referenced parameter - /// - public static void ConvertToUnityVector3(this System.Numerics.Vector3 source, ref UnityEngine.Vector3 target) - { - target.x = source.X; - target.y = source.Y; - target.z = -source.Z; - } - - /// - /// Converts this System.Numerics Quaternion to a UnityEngine Quaternion. - /// - /// The quaternion to convert. - /// The converted quaternion. - public static UnityEngine.Quaternion ToUnityQuaternion(this System.Numerics.Quaternion quaternion) - { - return new UnityEngine.Quaternion(-quaternion.X, -quaternion.Y, quaternion.Z, quaternion.W); - } - - /// - /// Converts this System.Numerics Quaternion to a UnityEngine Quaternion, storing values directly in referenced parameter - /// - public static void ConvertToUnityQuaternion(this System.Numerics.Quaternion source, ref UnityEngine.Quaternion target) - { - target.x = -source.X; - target.y = -source.Y; - target.z = source.Z; - target.w = source.W; - } - - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs.meta deleted file mode 100644 index e56f4ef5b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/SystemNumericsExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f9f9eb9aede721d4f9092acc4e938be5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs deleted file mode 100644 index 5dbc398d5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// A collection of helper functions for Texture2D - /// - public static class Texture2DExtensions - { - /// - /// Fills the pixels. You will need to call Apply on the texture in order for changes to take place. - /// - /// The Texture2D. - /// The row to start filling at. - /// The column to start filling at. - /// The width to fill. - /// The height to fill. - /// Color of the fill. - /// This function considers row 0 to be left and col 0 to be top. - public static void FillPixels(this Texture2D texture2D, int row, int col, int width, int height, Color fillColor) - { - if (col + width > texture2D.width || row + height > texture2D.height) - { - throw new IndexOutOfRangeException(); - } - - Color32 toColor = fillColor; // Implicit cast - Color32[] colors = new Color32[width * height]; - for (int i = 0; i < colors.Length; i++) - { - colors[i] = toColor; - } - - texture2D.SetPixels32(col, (texture2D.height - row) - height, width, height, colors); - } - - /// - /// Fills the texture with a single color. - /// - /// The Texture2D. - /// Color of the fill. - public static void FillPixels(this Texture2D texture2D, Color fillColor) - { - texture2D.FillPixels(0, 0, texture2D.width, texture2D.height, fillColor); - } - - /// - /// Captures a region of the screen and returns it as a texture. - /// - /// x position of the screen to capture from (bottom-left) - /// y position of the screen to capture from (bottom-left) - /// width of the screen area to capture - /// height of the screen area to capture - /// A Texture2D containing pixels from the region of the screen specified - /// You should call this in OnPostRender. - public static Texture2D CaptureScreenRegion(int x, int y, int width, int height) - { - Texture2D tex = new Texture2D(width, height); - tex.ReadPixels(new Rect(x, y, Screen.width, Screen.height), 0, 0); - tex.Apply(); - return tex; - } - - /// - /// Creates a texture from a defined region. - /// - /// The Texture2D. - /// x position of this texture to get the texture from - /// y position of this texture to get the texture from - /// width of the region to capture - /// height of the region to capture - public static Texture2D CreateTextureFromRegion(this Texture2D texture2D, int x, int y, int width, int height) - { - Color[] pixels = texture2D.GetPixels(x, y, width, height); - - Texture2D destTex = new Texture2D(width, height); - destTex.SetPixels(pixels); - destTex.Apply(); - - return destTex; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs.meta deleted file mode 100644 index c296d4ee7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/Texture2DExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 500ec3454fba61948860b4f6e1a5e4eb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs deleted file mode 100644 index 0ef1ac039..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Text; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's Transform class - /// - public static class TransformExtensions - { - /// - /// An extension method that will get you the full path to an object. - /// - /// The transform you wish a full path to. - /// The delimiter with which each object is delimited in the string. - /// Prefix with which the full path to the object should start. - /// A delimited string that is the full path to the game object in the hierarchy. - public static string GetFullPath(this Transform transform, string delimiter = ".", string prefix = "/") - { - var stringBuilder = new StringBuilder(); - GetFullPath(stringBuilder, transform, delimiter, prefix); - return stringBuilder.ToString(); - } - - private static void GetFullPath(StringBuilder stringBuilder, Transform transform, string delimiter, string prefix) - { - if (transform.parent == null) - { - stringBuilder.Append(prefix); - } - else - { - GetFullPath(stringBuilder, transform.parent, delimiter, prefix); - stringBuilder.Append(delimiter); - } - - stringBuilder.Append(transform.name); - } - - /// - /// Enumerates all children in the hierarchy starting at the root object. - /// - /// Start point of the traversion set - public static IEnumerable EnumerateHierarchy(this Transform root) - { - if (root == null) { throw new ArgumentNullException("root"); } - return root.EnumerateHierarchyCore(new List(0)); - } - - /// - /// Enumerates all children in the hierarchy starting at the root object except for the branches in ignore. - /// - /// Start point of the traversion set - /// Transforms and all its children to be ignored - public static IEnumerable EnumerateHierarchy(this Transform root, ICollection ignore) - { - if (root == null) { throw new ArgumentNullException("root"); } - if (ignore == null) - { - throw new ArgumentNullException("ignore", "Ignore collection can't be null, use EnumerateHierarchy(root) instead."); - } - return root.EnumerateHierarchyCore(ignore); - } - - /// - /// Enumerates all children in the hierarchy starting at the root object except for the branches in ignore. - /// - /// Start point of the traversion set - /// Transforms and all its children to be ignored - private static IEnumerable EnumerateHierarchyCore(this Transform root, ICollection ignore) - { - var transformQueue = new Queue(); - transformQueue.Enqueue(root); - - while (transformQueue.Count > 0) - { - var parentTransform = transformQueue.Dequeue(); - - if (!parentTransform || ignore.Contains(parentTransform)) { continue; } - - for (var i = 0; i < parentTransform.childCount; i++) - { - transformQueue.Enqueue(parentTransform.GetChild(i)); - } - - yield return parentTransform; - } - } - - /// - /// Calculates the bounds of all the colliders attached to this GameObject and all its children - /// - /// Transform of root GameObject the colliders are attached to - /// The total bounds of all colliders attached to this GameObject. - /// If no colliders attached, returns a bounds of center and extents 0 - public static Bounds GetColliderBounds(this Transform transform) - { - Collider[] colliders = transform.GetComponentsInChildren(); - if (colliders.Length == 0) { return new Bounds(); } - - Bounds bounds = colliders[0].bounds; - for (int i = 1; i < colliders.Length; i++) - { - bounds.Encapsulate(colliders[i].bounds); - } - return bounds; - } - - /// - /// Checks if the provided transforms are child/parent related. - /// - /// True if either transform is the parent of the other or if they are the same - public static bool IsParentOrChildOf(this Transform transform1, Transform transform2) - { - return transform1.IsChildOf(transform2) || transform2.IsChildOf(transform1); - } - - /// - /// Find the first component of type in the ancestors of the specified transform. - /// - /// Type of component to find. - /// Transform for which ancestors must be considered. - /// Indicates whether the specified transform should be included. - /// The component of type . Null if it none was found. - public static T FindAncestorComponent(this Transform startTransform, bool includeSelf = true) where T : Component - { - foreach (Transform transform in startTransform.EnumerateAncestors(includeSelf)) - { - T component = transform.GetComponent(); - if (component != null) - { - return component; - } - } - - return null; - } - - /// - /// Enumerates the ancestors of the specified transform. - /// - /// Transform for which ancestors must be returned. - /// Indicates whether the specified transform should be included. - /// An enumeration of all ancestor transforms of the specified start transform. - public static IEnumerable EnumerateAncestors(this Transform startTransform, bool includeSelf) - { - if (!includeSelf) - { - startTransform = startTransform.parent; - } - - for (Transform transform = startTransform; transform != null; transform = transform.parent) - { - yield return transform; - } - } - - /// - /// Transforms the size from local to world. - /// - /// The transform. - /// The local size. - /// World size. - public static Vector3 TransformSize(this Transform transform, Vector3 localSize) - { - Vector3 transformedSize = new Vector3(localSize.x, localSize.y, localSize.z); - - Transform t = transform; - do - { - transformedSize.x *= t.localScale.x; - transformedSize.y *= t.localScale.y; - transformedSize.z *= t.localScale.z; - t = t.parent; - } - while (t != null); - - return transformedSize; - } - - /// - /// Transforms the size from world to local. - /// - /// The transform. - /// The world size - /// World size. - public static Vector3 InverseTransformSize(this Transform transform, Vector3 worldSize) - { - Vector3 transformedSize = new Vector3(worldSize.x, worldSize.y, worldSize.z); - - Transform t = transform; - do - { - transformedSize.x /= t.localScale.x; - transformedSize.y /= t.localScale.y; - transformedSize.z /= t.localScale.z; - t = t.parent; - } - while (t != null); - - return transformedSize; - } - - /// - /// Gets the hierarchical depth of the Transform from its root. Returns -1 if the transform is the root. - /// - /// The transform to get the depth for. - public static int GetDepth(this Transform t) - { - int depth = -1; - - Transform root = t.transform.root; - if (root == t.transform) - { - return depth; - } - - TryGetDepth(t, root, ref depth); - - return depth; - } - - /// - /// Tries to get the hierarchical depth of the Transform from the specified parent. This method is recursive. - /// - /// The transform to get the depth for - /// The starting transform to look for the target transform in - /// The depth of the target transform - /// 'true' if the depth could be retrieved, or 'false' because the transform is a root transform. - public static bool TryGetDepth(Transform target, Transform parent, ref int depth) - { - foreach (Transform child in parent) - { - depth++; - if (child == target.transform || TryGetDepth(target, child, ref depth)) - { - return true; - } - } - - return false; - } - - /// - /// Walk hierarchy looking for named transform - /// - /// root transform to start searching from - /// name to look for - /// returns found transform or null if none found - public static Transform GetChildRecursive(Transform t, string name) - { - int numChildren = t.childCount; - for (int ii = 0; ii < numChildren; ++ii) - { - Transform child = t.GetChild(ii); - if (child.name == name) - { - return child; - } - Transform foundIt = GetChildRecursive(child, name); - if (foundIt != null) - { - return foundIt; - } - } - return null; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs.meta deleted file mode 100644 index 6b7d6344d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/TransformExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2024b7a0610742e3b3f95864622c59e4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs deleted file mode 100644 index 17d20ff2b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Threading.Tasks; - -namespace Microsoft.MixedReality.Toolkit -{ - public static class TypeExtensions - { -#if !NETFX_CORE - /// - /// Returns a list of types for all classes that extend from the current type and are not abstract - /// - /// The class type from which to search for inherited classes - /// List of assemblies to search through for types. If null, default is to grab all assemblies in current app domain - /// Null if rootType is not a class, otherwise returns list of types for sub-classes of rootType - public static List GetAllSubClassesOf(this Type rootType, Assembly[] searchAssemblies = null) - { - if (!rootType.IsClass) return null; - - if (searchAssemblies == null) { searchAssemblies = AppDomain.CurrentDomain.GetAssemblies(); } - - var results = new List(); - - Parallel.ForEach(searchAssemblies, (assembly) => - { - Parallel.ForEach(assembly.GetTypes(), (type) => - { - if (type != null && type.IsClass && !type.IsAbstract && type.IsSubclassOf(rootType)) - { - results.Add(type); - } - }); - }); - - return results; - } -#endif - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs.meta deleted file mode 100644 index 6c96271f9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/TypeExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 531777f8944c3094b8f9815ff8e6aa8e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs deleted file mode 100644 index 13786b9d7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -using Object = UnityEngine.Object; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's Object class - /// - public static class UnityObjectExtensions - { - /// - /// Enable Unity objects to skip "DontDestroyOnLoad" when editor isn't playing so test runner passes. - /// - public static void DontDestroyOnLoad(this Object target) - { -#if UNITY_EDITOR - if (UnityEditor.EditorApplication.isPlaying) -#endif - Object.DontDestroyOnLoad(target); - } - - /// - /// Destroys a Unity object appropriately depending if running in edit or play mode. - /// - /// Unity object to destroy - /// Time in seconds at which to destroy the object, if applicable. - public static void DestroyObject(Object obj, float t = 0.0f) - { - if (Application.isPlaying) - { - Object.Destroy(obj, t); - } - else - { -#if UNITY_EDITOR - // Must use DestroyImmediate in edit mode but it is not allowed when called from - // trigger/contact, animation event callbacks or OnValidate. Must use Destroy instead. - // Delay call to counter this issue in editor - UnityEditor.EditorApplication.delayCall += () => - { - Object.DestroyImmediate(obj); - }; -#else - Object.DestroyImmediate(obj); -#endif - } - } - - /// - /// Tests if an interface is null, taking potential UnityEngine.Object derived class implementers into account - /// which require their overridden operators to be called - /// - /// True if either the managed or native object is null, false otherwise - public static bool IsNull(this T @interface) where T : class => @interface == null || @interface.Equals(null); - - /// - /// Properly checks an interface for null and returns the MonoBehaviour implementing it - /// - /// True if the implementer of the interface is not a MonoBehaviour or the MonoBehaviour is null - public static bool TryGetMonoBehaviour(this T @interface, out MonoBehaviour monoBehaviour) where T : class => (monoBehaviour = @interface as MonoBehaviour) != null; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs.meta deleted file mode 100644 index 70f4f0f2f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/UnityObjectExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0524b94852744b79866e72b300fc98db -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs b/AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs deleted file mode 100644 index 0e13d7aa3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs +++ /dev/null @@ -1,255 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Extension methods for Unity's Vector struct - /// - public static class VectorExtensions - { - public static Vector2 Mul(this Vector2 value, Vector2 scale) - { - return new Vector2(value.x * scale.x, value.y * scale.y); - } - - public static Vector2 Div(this Vector2 value, Vector2 scale) - { - return new Vector2(value.x / scale.x, value.y / scale.y); - } - - public static Vector3 Mul(this Vector3 value, Vector3 scale) - { - return new Vector3(value.x * scale.x, value.y * scale.y, value.z * scale.z); - } - - public static Vector3 Div(this Vector3 value, Vector3 scale) - { - return new Vector3(value.x / scale.x, value.y / scale.y, value.z / scale.z); - } - - public static Vector3 RotateAround(this Vector3 point, Vector3 pivot, Quaternion rotation) - { - return rotation * (point - pivot) + pivot; - } - - public static Vector3 RotateAround(this Vector3 point, Vector3 pivot, Vector3 eulerAngles) - { - return RotateAround(point, pivot, Quaternion.Euler(eulerAngles)); - } - - public static Vector3 TransformPoint(this Vector3 point, Vector3 translation, Quaternion rotation, Vector3 lossyScale) - { - return rotation * Vector3.Scale(lossyScale, point) + translation; - } - - public static Vector3 InverseTransformPoint(this Vector3 point, Vector3 translation, Quaternion rotation, Vector3 lossyScale) - { - var scaleInv = new Vector3(1 / lossyScale.x, 1 / lossyScale.y, 1 / lossyScale.z); - return Vector3.Scale(scaleInv, (Quaternion.Inverse(rotation) * (point - translation))); - } - - public static Vector2 Average(this IEnumerable vectors) - { - float x = 0f; - float y = 0f; - int count = 0; - - foreach (var pos in vectors) - { - x += pos.x; - y += pos.y; - count++; - } - - return new Vector2(x / count, y / count); - } - - public static Vector3 Average(this IEnumerable vectors) - { - float x = 0f; - float y = 0f; - float z = 0f; - int count = 0; - - foreach (var pos in vectors) - { - x += pos.x; - y += pos.y; - z += pos.z; - count++; - } - - return new Vector3(x / count, y / count, z / count); - } - - public static Vector2 Average(this ICollection vectors) - { - int count = vectors.Count; - if (count == 0) - { - return Vector2.zero; - } - - float x = 0f; - float y = 0f; - - foreach (var pos in vectors) - { - x += pos.x; - y += pos.y; - } - - return new Vector2(x / count, y / count); - } - - public static Vector3 Average(this ICollection vectors) - { - int count = vectors.Count; - - if (count == 0) - { - return Vector3.zero; - } - - float x = 0f; - float y = 0f; - float z = 0f; - - foreach (var pos in vectors) - { - x += pos.x; - y += pos.y; - z += pos.z; - } - - return new Vector3(x / count, y / count, z / count); - } - - public static Vector2 Median(this IEnumerable vectors) - { - var enumerable = vectors as Vector2[] ?? vectors.ToArray(); - int count = enumerable.Length; - return count == 0 ? Vector2.zero : enumerable.OrderBy(v => v.sqrMagnitude).ElementAt(count / 2); - } - - public static Vector3 Median(this IEnumerable vectors) - { - var enumerable = vectors as Vector3[] ?? vectors.ToArray(); - int count = enumerable.Length; - return count == 0 ? Vector3.zero : enumerable.OrderBy(v => v.sqrMagnitude).ElementAt(count / 2); - } - - public static Vector2 Median(this ICollection vectors) - { - int count = vectors.Count; - return count == 0 ? Vector2.zero : vectors.OrderBy(v => v.sqrMagnitude).ElementAt(count / 2); - } - - public static Vector3 Median(this ICollection vectors) - { - int count = vectors.Count; - return count == 0 ? Vector3.zero : vectors.OrderBy(v => v.sqrMagnitude).ElementAt(count / 2); - } - - public static bool IsValidVector(this Vector3 vector) - { - return !float.IsNaN(vector.x) && !float.IsNaN(vector.y) && !float.IsNaN(vector.z) && - !float.IsInfinity(vector.x) && !float.IsInfinity(vector.y) && !float.IsInfinity(vector.z); - } - - /// - /// Determines if the distance between two vectors is within a given tolerance. - /// - /// The first vector. - /// The second vector. - /// The maximum distance that will cause this to return true. - /// True if the distance between the two vectors is within the tolerance, false otherwise. - public static bool CloseEnough(Vector3 v1, Vector3 v2, float distanceTolerance) - { - return Mathf.Abs(Vector3.Distance(v1, v2)) < distanceTolerance; - } - - /// - /// Get the relative mapping based on a source Vec3 and a radius for spherical mapping. - /// - /// The source Vector3 to be mapped to sphere - /// This is a for the radius of the sphere - public static Vector3 SphericalMapping(Vector3 source, float radius) - { - float circ = 2f * Mathf.PI * radius; - - float xAngle = (source.x / circ) * 360f; - float yAngle = -(source.y / circ) * 360f; - - source.Set(0.0f, 0.0f, radius); - - Quaternion rot = Quaternion.Euler(yAngle, xAngle, 0.0f); - source = rot * source; - - return source; - } - - /// - /// Get the relative mapping based on a source Vec3 and a radius for cylinder mapping. - /// - /// The source Vector3 to be mapped to cylinder - /// This is a for the radius of the cylinder - public static Vector3 CylindricalMapping(Vector3 source, float radius) - { - float circ = 2f * Mathf.PI * radius; - - float xAngle = (source.x / circ) * 360f; - - source.Set(0.0f, source.y, radius); - - Quaternion rot = Quaternion.Euler(0.0f, xAngle, 0.0f); - source = rot * source; - - return source; - } - - /// - /// Get the relative mapping based on a source Vec3 and a radius for radial mapping. - /// - /// The source Vector3 to be mapped to cylinder - /// The total range of the radial in degrees as a - /// This is a for the radius of the radial - /// The current row as a for the radial calculation - /// The total rows as a for the radial calculation - /// The current column as a for the radial calculation - /// The total columns as a for the radial calculation - public static Vector3 RadialMapping(Vector3 source, float radialRange, float radius, int row, int totalRows, int column, int totalColumns) - { - float radialCellAngle = radialRange / totalColumns; - - source.x = 0f; - source.y = 0f; - source.z = (radius / totalRows) * row; - - float yAngle = radialCellAngle * (column - (totalColumns * 0.5f)) + (radialCellAngle * .5f); - - Quaternion rot = Quaternion.Euler(0.0f, yAngle, 0.0f); - source = rot * source; - - return source; - } - - /// - /// Randomized mapping based on a source Vec3 and a radius for randomization distance. - /// - /// The source Vector3 to be mapped to cylinder - /// This is a for the radius of the cylinder - public static Vector3 ScatterMapping(Vector3 source, float radius) - { - source.x = UnityEngine.Random.Range(-radius, radius); - source.y = UnityEngine.Random.Range(-radius, radius); - return source; - } - - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs.meta deleted file mode 100644 index ff36a2726..000000000 --- a/AR-ROS/Assets/MRTK/Core/Extensions/VectorExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fdc018100e504884bc9c70e9d1ccff08 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors.meta b/AR-ROS/Assets/MRTK/Core/Inspectors.meta deleted file mode 100644 index cee987888..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bb9514f032be43fb8dd3853ddd73a772 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs.meta deleted file mode 100644 index 4e6773321..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d94f0eae03eb366468febc11cde76803 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs deleted file mode 100644 index 7ddaa156b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom editor for the ClippingBox to allow for specification of the framing bounds. - /// - [CustomEditor(typeof(ClippingBox))] - [CanEditMultipleObjects] - public class ClippingBoxEditor : ClippingPrimitiveEditor - { - /// - protected override bool HasFrameBounds() - { - return true; - } - - /// - protected override Bounds OnGetFrameBounds() - { - var primitive = target as ClippingBox; - Debug.Assert(primitive != null); - return new Bounds(primitive.transform.position, primitive.transform.lossyScale); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs.meta deleted file mode 100644 index e0af38ecf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingBoxInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bbc3da09f5e3ebc4b8a030465a8eeb3d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs deleted file mode 100644 index 66e620897..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom editor for the ClippingPlaneEditor to allow for specification of the framing bounds. - /// - [CustomEditor(typeof(ClippingPlane))] - [CanEditMultipleObjects] - public class ClippingPlaneEditor : ClippingPrimitiveEditor - { - /// - protected override bool HasFrameBounds() - { - return true; - } - - /// - protected override Bounds OnGetFrameBounds() - { - var primitive = target as ClippingPlane; - Debug.Assert(primitive != null); - return new Bounds(primitive.transform.position, Vector3.one); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs.meta deleted file mode 100644 index f1f9e219e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPlaneInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ea66b1225d554b10a1c1b6ccb169cca9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs deleted file mode 100644 index 71dbd859d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// An abstract editor component to improve the editor experience with ClippingPrimitives. - /// - [CustomEditor(typeof(ClippingPrimitive))] - [CanEditMultipleObjects] - public abstract class ClippingPrimitiveEditor : UnityEditor.Editor - { - /// - /// Notifies the Unity editor if this object has custom frame bounds. - /// - /// True if custom frame bounds can be used from OnGetFrameBounds. - protected abstract bool HasFrameBounds(); - - /// - /// Returns the bounds the editor should focus on. - /// - /// The bounds of the clipping primitive. - protected abstract Bounds OnGetFrameBounds(); - - private ClippingPrimitive clippingPrimitive; - - private void OnEnable() - { - clippingPrimitive = (ClippingPrimitive)target; - } - - /// - /// Looks for changes to the list of renderers and gracefully adds and removes them. - /// - public override void OnInspectorGUI() - { - var previousRenderers = clippingPrimitive.GetRenderersCopy(); - - using (var check = new EditorGUI.ChangeCheckScope()) - { - DrawDefaultInspector(); - - if (check.changed) - { - // Flagging changes other than renderers - clippingPrimitive.IsDirty = true; - } - } - - var currentRenderers = clippingPrimitive.GetRenderersCopy(); - - // Add or remove and renderers that were added or removed via the inspector. - foreach (var renderer in previousRenderers.Except(currentRenderers)) - { - clippingPrimitive.RemoveRenderer(renderer); - } - - foreach (var renderer in currentRenderers.Except(previousRenderers)) - { - clippingPrimitive.AddRenderer(renderer); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs.meta deleted file mode 100644 index ee26c612b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingPrimitiveInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 00b3a9914942baf42b886607218f3ee6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs deleted file mode 100644 index b6f894c80..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom editor for the ClippingSphere to allow for specification of the framing bounds. - /// - [CustomEditor(typeof(ClippingSphere))] - [CanEditMultipleObjects] - public class ClippingSphereEditor : ClippingPrimitiveEditor - { - /// - protected override bool HasFrameBounds() - { - return true; - } - - /// - protected override Bounds OnGetFrameBounds() - { - var primitive = target as ClippingSphere; - Debug.Assert(primitive != null); - return new Bounds(primitive.transform.position, Vector3.one * primitive.Radius); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs.meta deleted file mode 100644 index 1ae9b35eb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ClippingSphereInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3ceb6d1e47c68c04f85ff5b33426a013 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs deleted file mode 100644 index 8f42c876d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs +++ /dev/null @@ -1,796 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Input.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - public class ControllerPopupWindow : EditorWindow - { - private const string EditorWindowOptionsPath = "Inspectors/Data/EditorWindowOptions.json"; - private const float InputActionLabelWidth = 128f; - - /// - /// Used to enable editing the input axis label positions on controllers - /// - private static readonly bool EnableWysiwyg = false; - - private static readonly GUIContent InteractionAddButtonContent = new GUIContent("+ Add a New Interaction Mapping"); - private static readonly GUIContent InteractionMinusButtonContent = new GUIContent("-", "Remove Interaction Mapping"); - private static readonly GUIContent AxisTypeContent = new GUIContent("Axis Type", "The axis type of the button, e.g. Analogue, Digital, etc."); - private static readonly GUIContent ControllerInputTypeContent = new GUIContent("Input Type", "The primary action of the input as defined by the controller SDK."); - private static readonly GUIContent ActionContent = new GUIContent("Action", "Action to be raised to the Input Manager when the input data has changed."); - private static readonly GUIContent KeyCodeContent = new GUIContent("KeyCode", "Unity Input KeyCode id to listen for."); - private static readonly GUIContent XAxisContent = new GUIContent("X Axis", "Horizontal Axis to listen for."); - private static readonly GUIContent YAxisContent = new GUIContent("Y Axis", "Vertical Axis to listen for."); - private static readonly GUIContent InvertContent = new GUIContent("Invert", "Should an Axis be inverted?"); - private static readonly GUIContent[] InvertAxisContent = - { - new GUIContent("None"), - new GUIContent("X"), - new GUIContent("Y"), - new GUIContent("Both") - }; - - private static readonly int[] InvertAxisValues = { 0, 1, 2, 3 }; - - private static readonly Vector2 InputActionLabelPosition = new Vector2(256f, 0f); - private static readonly Vector2 InputActionDropdownPosition = new Vector2(88f, 0f); - private static readonly Vector2 InputActionFlipTogglePosition = new Vector2(-24f, 0f); - private static readonly Vector2 HorizontalSpace = new Vector2(8f, 0f); - - private static readonly Rect ControllerRectPosition = new Rect(new Vector2(128f, 0f), new Vector2(512f, 512f)); - - private static ControllerPopupWindow window; - private static ControllerInputActionOptions controllerInputActionOptions; - - private static GUIContent[] axisLabels; - private static int[] actionIds; - private static GUIContent[] actionLabels; - private static int[] rawActionIds; - private static GUIContent[] rawActionLabels; - private static int[] digitalActionIds; - private static GUIContent[] digitalActionLabels; - private static int[] singleAxisActionIds; - private static GUIContent[] singleAxisActionLabels; - private static int[] dualAxisActionIds; - private static GUIContent[] dualAxisActionLabels; - private static int[] threeDofPositionActionIds; - private static GUIContent[] threeDofPositionActionLabels; - private static int[] threeDofRotationActionIds; - private static GUIContent[] threeDofRotationActionLabels; - private static int[] sixDofActionIds; - private static GUIContent[] sixDofActionLabels; - private static bool[] isMouseInRects; - - private static bool editInputActionPositions; - - private static float defaultLabelWidth; - private static float defaultFieldWidth; - - private static Vector2 horizontalScrollPosition; - - private SerializedProperty currentInteractionList; - private List mappedControllerList = new List(); - - private ControllerPopupWindow thisWindow; - - private MixedRealityControllerMapping currentControllerMapping; - - private Vector2 mouseDragOffset; - private GUIStyle flippedLabelStyle; - private Texture2D currentControllerTexture; - private ControllerInputActionOption currentControllerOption; - - private void OnFocus() - { - currentControllerTexture = ControllerMappingLibrary.GetControllerTexture(currentControllerMapping.ControllerType, currentControllerMapping.Handedness); - - #region Interaction Constraint Setup - - actionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - axisLabels = ControllerMappingLibrary.UnityInputManagerAxes - .Select(axis => new GUIContent(axis.Name)) - .Prepend(new GUIContent("None")).ToArray(); - - actionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.None) - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - actionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.None) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - rawActionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.Raw) - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - rawActionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.Raw) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - digitalActionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.Digital) - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - digitalActionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.Digital) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - singleAxisActionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.SingleAxis) - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - singleAxisActionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.SingleAxis) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - dualAxisActionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.DualAxis) - .Select(action => (int)action.Id).Prepend(0).ToArray(); - - dualAxisActionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.DualAxis) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - threeDofPositionActionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.ThreeDofPosition) - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - threeDofPositionActionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.ThreeDofPosition) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - threeDofRotationActionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.ThreeDofRotation) - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - threeDofRotationActionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.ThreeDofRotation) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - sixDofActionIds = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.SixDof) - .Select(action => (int)action.Id) - .Prepend(0).ToArray(); - - sixDofActionLabels = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions - .Where(inputAction => inputAction.AxisConstraint == AxisType.SixDof) - .Select(inputAction => new GUIContent(inputAction.Description)) - .Prepend(new GUIContent("None")).ToArray(); - - #endregion Interaction Constraint Setup - } - - public static void Show(MixedRealityControllerMapping controllerMapping, SerializedProperty interactionsList, Handedness handedness = Handedness.None, List mappedControllers = null) - { - if (window != null) - { - window.Close(); - } - - window = null; - - window = CreateInstance(); - window.thisWindow = window; - window.titleContent = new GUIContent($"{controllerMapping.Description} - Input Action Assignment"); - window.mappedControllerList = mappedControllers; - window.currentControllerMapping = controllerMapping; - window.currentInteractionList = interactionsList; - isMouseInRects = new bool[interactionsList.arraySize]; - - string editorWindowOptionsPath = ResolveEditorWindowOptionsPath(); - if (!File.Exists(editorWindowOptionsPath)) - { - var empty = new ControllerInputActionOptions - { - Controllers = new List - { - new ControllerInputActionOption - { - Controller = 0, - Handedness = Handedness.None, - InputLabelPositions = new[] {new Vector2(0, 0)}, - IsLabelFlipped = new []{false} - } - } - }; - - File.WriteAllText(editorWindowOptionsPath, JsonUtility.ToJson(empty, true)); - AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); - } - else - { - controllerInputActionOptions = JsonUtility.FromJson(File.ReadAllText(editorWindowOptionsPath)); - - if (controllerInputActionOptions.Controllers.Any(option => option.Controller == controllerMapping.SupportedControllerType && option.Handedness == handedness)) - { - window.currentControllerOption = controllerInputActionOptions.Controllers.FirstOrDefault(option => option.Controller == controllerMapping.SupportedControllerType && option.Handedness == handedness); - - if (window.currentControllerOption != null && window.currentControllerOption.IsLabelFlipped == null) - { - window.currentControllerOption.IsLabelFlipped = new bool[interactionsList.arraySize]; - } - } - } - - var windowSize = new Vector2(controllerMapping.HasCustomInteractionMappings ? 896f : 768f, 512f); - window.maxSize = windowSize; - window.minSize = windowSize; - window.CenterOnMainWin(); - window.ShowUtility(); - - defaultLabelWidth = EditorGUIUtility.labelWidth; - defaultFieldWidth = EditorGUIUtility.fieldWidth; - } - - private void Update() - { - if (editInputActionPositions) - { - Repaint(); - } - } - - private void OnGUI() - { - if (flippedLabelStyle == null) - { - flippedLabelStyle = new GUIStyle("Label") - { - alignment = TextAnchor.UpperRight, - stretchWidth = true - }; - } - - if (!currentControllerMapping.HasCustomInteractionMappings && currentControllerTexture != null) - { - GUILayout.BeginHorizontal(); - GUI.DrawTexture(ControllerRectPosition, currentControllerTexture); - GUILayout.EndHorizontal(); - } - - try - { - RenderInteractionList(currentInteractionList, currentControllerMapping.HasCustomInteractionMappings); - RenderMappingList(mappedControllerList); - } - catch (Exception) - { - thisWindow.Close(); - } - } - - private void RenderMappingList(List controllerList) - { - if (controllerList == null) - { - return; - } - - GUIStyle headerStyle = new GUIStyle(); - headerStyle.richText = true; - - if (currentControllerOption == null || currentControllerTexture == null) - { - GUILayout.BeginVertical(); - using (new EditorGUILayout.VerticalScope()) - { - GUILayout.FlexibleSpace(); - EditorGUILayout.LabelField("Controllers affected by this mapping", headerStyle); - for (int i = 0; i < controllerList.Count; i++) - { - EditorGUILayout.LabelField(controllerList[i]); - } - } - GUILayout.EndVertical(); - } - else - { - float max_y = currentControllerOption.InputLabelPositions.Max(x => x.y); - - var titleRectPosition = Vector2.up * (max_y + 4 * EditorGUIUtility.singleLineHeight); - var titleRectSize = new Vector2(500, EditorGUIUtility.singleLineHeight); - - var titleRect = new Rect(titleRectPosition, titleRectSize); - EditorGUI.LabelField(titleRect, "Controllers affected by this mapping", headerStyle); - - for (int i = 0; i < controllerList.Count; i++) - { - var rectPosition = Vector2.up * (max_y + (i+5) * EditorGUIUtility.singleLineHeight); - var rectSize = new Vector2(1000, EditorGUIUtility.singleLineHeight); - - var labelRect = new Rect(rectPosition, rectSize); - EditorGUI.LabelField(labelRect, controllerList[i]); - } - } - } - - private void RenderInteractionList(SerializedProperty interactionList, bool useCustomInteractionMapping) - { - if (interactionList == null) { throw new Exception(); } - - bool noInteractions = interactionList.arraySize == 0; - - if (currentControllerOption != null && (currentControllerOption.IsLabelFlipped == null || currentControllerOption.IsLabelFlipped.Length != interactionList.arraySize)) - { - currentControllerOption.IsLabelFlipped = new bool[interactionList.arraySize]; - } - - GUILayout.BeginVertical(); - - if (useCustomInteractionMapping) - { - horizontalScrollPosition = EditorGUILayout.BeginScrollView(horizontalScrollPosition, false, false, GUILayout.ExpandWidth(true), GUILayout.ExpandWidth(true)); - } - - if (useCustomInteractionMapping) - { - if (GUILayout.Button(InteractionAddButtonContent)) - { - interactionList.arraySize += 1; - var interaction = interactionList.GetArrayElementAtIndex(interactionList.arraySize - 1); - var axisType = interaction.FindPropertyRelative("axisType"); - axisType.enumValueIndex = 0; - var inputType = interaction.FindPropertyRelative("inputType"); - inputType.enumValueIndex = 0; - var action = interaction.FindPropertyRelative("inputAction"); - var actionId = action.FindPropertyRelative("id"); - var actionDescription = action.FindPropertyRelative("description"); - actionDescription.stringValue = "None"; - actionId.intValue = 0; - } - - if (noInteractions) - { - EditorGUILayout.HelpBox("Create an Interaction Mapping.", MessageType.Warning); - EditorGUILayout.EndScrollView(); - GUILayout.EndVertical(); - return; - } - } - else if (EnableWysiwyg) - { - EditorGUI.BeginChangeCheck(); - editInputActionPositions = EditorGUILayout.Toggle("Edit Input Action Positions", editInputActionPositions); - - if (EditorGUI.EndChangeCheck()) - { - string editorWindowOptionsPath = ResolveEditorWindowOptionsPath(); - if (!editInputActionPositions) - { - File.WriteAllText(editorWindowOptionsPath, JsonUtility.ToJson(controllerInputActionOptions, true)); - } - else - { - if (!controllerInputActionOptions.Controllers.Any( - option => option.Controller == currentControllerMapping.SupportedControllerType && option.Handedness == currentControllerMapping.Handedness)) - { - currentControllerOption = new ControllerInputActionOption - { - Controller = currentControllerMapping.SupportedControllerType, - Handedness = currentControllerMapping.Handedness, - InputLabelPositions = new Vector2[currentInteractionList.arraySize], - IsLabelFlipped = new bool[currentInteractionList.arraySize] - }; - - controllerInputActionOptions.Controllers.Add(currentControllerOption); - isMouseInRects = new bool[currentInteractionList.arraySize]; - - if (controllerInputActionOptions.Controllers.Any(option => option.Controller == 0)) - { - controllerInputActionOptions.Controllers.Remove( - controllerInputActionOptions.Controllers.Find(option => - option.Controller == 0)); - } - - File.WriteAllText(editorWindowOptionsPath, JsonUtility.ToJson(controllerInputActionOptions, true)); - } - } - } - } - - GUILayout.BeginHorizontal(); - - if (useCustomInteractionMapping) - { - EditorGUILayout.LabelField("Id", GUILayout.Width(32f)); - EditorGUIUtility.labelWidth = 24f; - EditorGUIUtility.fieldWidth = 24f; - EditorGUILayout.LabelField(ControllerInputTypeContent, GUILayout.Width(InputActionLabelWidth)); - EditorGUILayout.LabelField(AxisTypeContent, GUILayout.Width(InputActionLabelWidth)); - EditorGUILayout.LabelField(ActionContent, GUILayout.Width(InputActionLabelWidth)); - EditorGUILayout.LabelField(KeyCodeContent, GUILayout.Width(InputActionLabelWidth)); - EditorGUILayout.LabelField(XAxisContent, GUILayout.Width(InputActionLabelWidth)); - EditorGUILayout.LabelField(YAxisContent, GUILayout.Width(InputActionLabelWidth)); - GUILayout.FlexibleSpace(); - EditorGUILayout.LabelField(string.Empty, GUILayout.Width(24f)); - - EditorGUIUtility.labelWidth = defaultLabelWidth; - EditorGUIUtility.fieldWidth = defaultFieldWidth; - } - - GUILayout.EndHorizontal(); - - for (int i = 0; i < interactionList.arraySize; i++) - { - using (new EditorGUILayout.HorizontalScope()) - { - SerializedProperty interaction = interactionList.GetArrayElementAtIndex(i); - - if (useCustomInteractionMapping) - { - EditorGUILayout.LabelField($"{i + 1}", GUILayout.Width(32f)); - var inputType = interaction.FindPropertyRelative("inputType"); - EditorGUILayout.PropertyField(inputType, GUIContent.none, GUILayout.Width(InputActionLabelWidth)); - var axisType = interaction.FindPropertyRelative("axisType"); - EditorGUILayout.PropertyField(axisType, GUIContent.none, GUILayout.Width(InputActionLabelWidth)); - var invertXAxis = interaction.FindPropertyRelative("invertXAxis"); - var invertYAxis = interaction.FindPropertyRelative("invertYAxis"); - var interactionAxisConstraint = interaction.FindPropertyRelative("axisType"); - - var action = interaction.FindPropertyRelative("inputAction"); - var actionId = action.FindPropertyRelative("id"); - var actionDescription = action.FindPropertyRelative("description"); - var actionConstraint = action.FindPropertyRelative("axisConstraint"); - - GUIContent[] labels; - int[] ids; - - switch ((AxisType)interactionAxisConstraint.intValue) - { - default: - case AxisType.None: - labels = actionLabels; - ids = actionIds; - break; - case AxisType.Raw: - labels = rawActionLabels; - ids = rawActionIds; - break; - case AxisType.Digital: - labels = digitalActionLabels; - ids = digitalActionIds; - break; - case AxisType.SingleAxis: - labels = singleAxisActionLabels; - ids = singleAxisActionIds; - break; - case AxisType.DualAxis: - labels = dualAxisActionLabels; - ids = dualAxisActionIds; - break; - case AxisType.ThreeDofPosition: - labels = threeDofPositionActionLabels; - ids = threeDofPositionActionIds; - break; - case AxisType.ThreeDofRotation: - labels = threeDofRotationActionLabels; - ids = threeDofRotationActionIds; - break; - case AxisType.SixDof: - labels = sixDofActionLabels; - ids = sixDofActionIds; - break; - } - - EditorGUI.BeginChangeCheck(); - actionId.intValue = EditorGUILayout.IntPopup(GUIContent.none, actionId.intValue, labels, ids, GUILayout.Width(InputActionLabelWidth)); - - if (EditorGUI.EndChangeCheck()) - { - var inputAction = actionId.intValue == 0 ? MixedRealityInputAction.None : MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions[actionId.intValue - 1]; - actionDescription.stringValue = inputAction.Description; - actionConstraint.enumValueIndex = (int)inputAction.AxisConstraint; - } - - if ((AxisType)axisType.intValue == AxisType.Digital) - { - var keyCode = interaction.FindPropertyRelative("keyCode"); - EditorGUILayout.PropertyField(keyCode, GUIContent.none, GUILayout.Width(InputActionLabelWidth)); - } - else - { - if ((AxisType)axisType.intValue == AxisType.DualAxis) - { - EditorGUIUtility.labelWidth = InputActionLabelWidth * 0.5f; - EditorGUIUtility.fieldWidth = InputActionLabelWidth * 0.5f; - - int currentAxisSetting = 0; - - if (invertXAxis.boolValue) - { - currentAxisSetting += 1; - } - - if (invertYAxis.boolValue) - { - currentAxisSetting += 2; - } - - EditorGUI.BeginChangeCheck(); - currentAxisSetting = EditorGUILayout.IntPopup(InvertContent, currentAxisSetting, InvertAxisContent, InvertAxisValues, GUILayout.Width(InputActionLabelWidth)); - - if (EditorGUI.EndChangeCheck()) - { - switch (currentAxisSetting) - { - case 0: - invertXAxis.boolValue = false; - invertYAxis.boolValue = false; - break; - case 1: - invertXAxis.boolValue = true; - invertYAxis.boolValue = false; - break; - case 2: - invertXAxis.boolValue = false; - invertYAxis.boolValue = true; - break; - case 3: - invertXAxis.boolValue = true; - invertYAxis.boolValue = true; - break; - } - } - - EditorGUIUtility.labelWidth = defaultLabelWidth; - EditorGUIUtility.fieldWidth = defaultFieldWidth; - } - else if ((AxisType)axisType.intValue == AxisType.SingleAxis) - { - invertXAxis.boolValue = EditorGUILayout.ToggleLeft("Invert X", invertXAxis.boolValue, GUILayout.Width(InputActionLabelWidth)); - EditorGUIUtility.labelWidth = defaultLabelWidth; - } - else - { - EditorGUILayout.LabelField(GUIContent.none, GUILayout.Width(InputActionLabelWidth)); - } - } - - if ((AxisType)axisType.intValue == AxisType.SingleAxis || - (AxisType)axisType.intValue == AxisType.DualAxis) - { - var axisCodeX = interaction.FindPropertyRelative("axisCodeX"); - RenderAxisPopup(axisCodeX, InputActionLabelWidth); - } - else - { - EditorGUILayout.LabelField(GUIContent.none, GUILayout.Width(InputActionLabelWidth)); - } - - if ((AxisType)axisType.intValue == AxisType.DualAxis) - { - var axisCodeY = interaction.FindPropertyRelative("axisCodeY"); - RenderAxisPopup(axisCodeY, InputActionLabelWidth); - } - else - { - EditorGUILayout.LabelField(GUIContent.none, GUILayout.Width(InputActionLabelWidth)); - } - - if (GUILayout.Button(InteractionMinusButtonContent, EditorStyles.miniButtonRight, GUILayout.ExpandWidth(true))) - { - interactionList.DeleteArrayElementAtIndex(i); - } - } - else - { - var interactionDescription = interaction.FindPropertyRelative("description"); - var interactionAxisConstraint = interaction.FindPropertyRelative("axisType"); - var action = interaction.FindPropertyRelative("inputAction"); - var actionId = action.FindPropertyRelative("id"); - var actionDescription = action.FindPropertyRelative("description"); - var actionConstraint = action.FindPropertyRelative("axisConstraint"); - - GUIContent[] labels; - int[] ids; - - switch ((AxisType)interactionAxisConstraint.intValue) - { - default: - case AxisType.None: - labels = actionLabels; - ids = actionIds; - break; - case AxisType.Raw: - labels = rawActionLabels; - ids = rawActionIds; - break; - case AxisType.Digital: - labels = digitalActionLabels; - ids = digitalActionIds; - break; - case AxisType.SingleAxis: - labels = singleAxisActionLabels; - ids = singleAxisActionIds; - break; - case AxisType.DualAxis: - labels = dualAxisActionLabels; - ids = dualAxisActionIds; - break; - case AxisType.ThreeDofPosition: - labels = threeDofPositionActionLabels; - ids = threeDofPositionActionIds; - break; - case AxisType.ThreeDofRotation: - labels = threeDofRotationActionLabels; - ids = threeDofRotationActionIds; - break; - case AxisType.SixDof: - labels = sixDofActionLabels; - ids = sixDofActionIds; - break; - } - - EditorGUI.BeginChangeCheck(); - - if (currentControllerOption == null || currentControllerTexture == null) - { - bool skip = false; - var description = interactionDescription.stringValue; - if (currentControllerMapping.SupportedControllerType == SupportedControllerType.GGVHand - && currentControllerMapping.Handedness == Handedness.None) - { - if (description != "Select") - { - skip = true; - } - } - - if (!skip) - { - actionId.intValue = EditorGUILayout.IntPopup(GUIContent.none, actionId.intValue, labels, ids, GUILayout.Width(80f)); - EditorGUILayout.LabelField(description, GUILayout.ExpandWidth(true)); - } - } - else - { - var rectPosition = currentControllerOption.InputLabelPositions[i]; - var rectSize = InputActionLabelPosition + InputActionDropdownPosition + new Vector2(currentControllerOption.IsLabelFlipped[i] ? 0f : 8f, EditorGUIUtility.singleLineHeight); - GUI.Box(new Rect(rectPosition, rectSize), GUIContent.none, EditorGUIUtility.isProSkin ? "ObjectPickerBackground" : "ObjectPickerResultsEven"); - var offset = currentControllerOption.IsLabelFlipped[i] ? InputActionLabelPosition : Vector2.zero; - var popupRect = new Rect(rectPosition + offset, new Vector2(InputActionDropdownPosition.x, EditorGUIUtility.singleLineHeight)); - - actionId.intValue = EditorGUI.IntPopup(popupRect, actionId.intValue, labels, ids); - offset = currentControllerOption.IsLabelFlipped[i] ? Vector2.zero : InputActionDropdownPosition; - var labelRect = new Rect(rectPosition + offset, new Vector2(InputActionLabelPosition.x, EditorGUIUtility.singleLineHeight)); - EditorGUI.LabelField(labelRect, interactionDescription.stringValue, currentControllerOption.IsLabelFlipped[i] ? flippedLabelStyle : EditorStyles.label); - - if (editInputActionPositions) - { - offset = currentControllerOption.IsLabelFlipped[i] ? InputActionLabelPosition + InputActionDropdownPosition + HorizontalSpace : InputActionFlipTogglePosition; - var toggleRect = new Rect(rectPosition + offset, new Vector2(-InputActionFlipTogglePosition.x, EditorGUIUtility.singleLineHeight)); - - EditorGUI.BeginChangeCheck(); - currentControllerOption.IsLabelFlipped[i] = EditorGUI.Toggle(toggleRect, currentControllerOption.IsLabelFlipped[i]); - - if (EditorGUI.EndChangeCheck()) - { - if (currentControllerOption.IsLabelFlipped[i]) - { - currentControllerOption.InputLabelPositions[i] -= InputActionLabelPosition; - } - else - { - currentControllerOption.InputLabelPositions[i] += InputActionLabelPosition; - } - } - - if (!isMouseInRects.Any(value => value) || isMouseInRects[i]) - { - if (Event.current.type == EventType.MouseDrag && labelRect.Contains(Event.current.mousePosition) && !isMouseInRects[i]) - { - isMouseInRects[i] = true; - mouseDragOffset = Event.current.mousePosition - currentControllerOption.InputLabelPositions[i]; - } - else if (Event.current.type == EventType.Repaint && isMouseInRects[i]) - { - currentControllerOption.InputLabelPositions[i] = Event.current.mousePosition - mouseDragOffset; - } - else if (Event.current.type == EventType.DragUpdated && isMouseInRects[i]) - { - currentControllerOption.InputLabelPositions[i] = Event.current.mousePosition - mouseDragOffset; - } - else if (Event.current.type == EventType.MouseUp && isMouseInRects[i]) - { - currentControllerOption.InputLabelPositions[i] = Event.current.mousePosition - mouseDragOffset; - mouseDragOffset = Vector2.zero; - isMouseInRects[i] = false; - } - } - } - } - - if (EditorGUI.EndChangeCheck()) - { - MixedRealityInputAction inputAction = actionId.intValue == 0 ? - MixedRealityInputAction.None : - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions[actionId.intValue - 1]; - actionId.intValue = (int)inputAction.Id; - actionDescription.stringValue = inputAction.Description; - actionConstraint.enumValueIndex = (int)inputAction.AxisConstraint; - interactionList.serializedObject.ApplyModifiedProperties(); - } - } - } - } - - if (useCustomInteractionMapping) - { - EditorGUILayout.EndScrollView(); - interactionList.serializedObject.ApplyModifiedProperties(); - } - - GUILayout.EndVertical(); - } - - private static void RenderAxisPopup(SerializedProperty axisCode, float customLabelWidth) - { - var axisId = -1; - - for (int j = 0; j < ControllerMappingLibrary.UnityInputManagerAxes.Length; j++) - { - if (ControllerMappingLibrary.UnityInputManagerAxes[j].Name == axisCode.stringValue) - { - axisId = j + 1; - break; - } - } - - EditorGUI.BeginChangeCheck(); - axisId = EditorGUILayout.IntPopup(GUIContent.none, axisId, axisLabels, null, GUILayout.Width(customLabelWidth)); - - if (EditorGUI.EndChangeCheck()) - { - if (axisId == 0) - { - axisCode.stringValue = string.Empty; - axisCode.serializedObject.ApplyModifiedProperties(); - } - else - { - for (int j = 0; j < ControllerMappingLibrary.UnityInputManagerAxes.Length; j++) - { - if (axisId - 1 == j) - { - axisCode.stringValue = ControllerMappingLibrary.UnityInputManagerAxes[j].Name; - axisCode.serializedObject.ApplyModifiedProperties(); - break; - } - } - } - } - } - - private static string ResolveEditorWindowOptionsPath() - { - return MixedRealityToolkitFiles.MapRelativeFilePathToAbsolutePath(EditorWindowOptionsPath); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs.meta deleted file mode 100644 index be3705e65..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 66928ed4a53ad00429dd8597ce18a858 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Data.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Data.meta deleted file mode 100644 index 0f8381972..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Data.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 01081ff15c3de9a45834acf3cbf52c00 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs deleted file mode 100644 index 586bb26b3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - /// - /// Used to aid in layout of Controller Input Actions. - /// - [Serializable] - public class ControllerInputActionOption - { - public SupportedControllerType Controller; - public Handedness Handedness; - public Vector2[] InputLabelPositions; - public bool[] IsLabelFlipped; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs.meta deleted file mode 100644 index 8268ffcaa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOption.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3a1857d39eeeb034fb61982a68634e34 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs deleted file mode 100644 index 3ac408f84..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - /// - /// Used to aid in layout of Controller Input Actions. - /// - [Serializable] - public class ControllerInputActionOptions - { - public List Controllers; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs.meta deleted file mode 100644 index 1747e8941..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/ControllerInputActionOptions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9517fcc8e5ebbbb48a9f9b15d57752c9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json b/AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json deleted file mode 100644 index 0c9a00a72..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json +++ /dev/null @@ -1,538 +0,0 @@ -{ - "Controllers": [ - { - "Controller": 32, - "Handedness": 2, - "InputLabelPositions": [ - { - "x": 291.0, - "y": 22.0 - }, - { - "x": 382.0, - "y": 348.0 - }, - { - "x": -48.0, - "y": 283.0 - }, - { - "x": 486.0, - "y": 144.0 - }, - { - "x": -84.0, - "y": 158.0 - }, - { - "x": -82.0, - "y": 136.0 - }, - { - "x": 484.0, - "y": 190.0 - }, - { - "x": 484.0, - "y": 211.0 - }, - { - "x": 484.0, - "y": 231.0 - }, - { - "x": -70.0, - "y": 241.0 - }, - { - "x": -77.0, - "y": 191.0 - }, - { - "x": -78.0, - "y": 211.0 - } - ], - "IsLabelFlipped": [ - false, - false, - true, - false, - true, - true, - false, - false, - false, - true, - true, - true - ] - }, - { - "Controller": 32, - "Handedness": 1, - "InputLabelPositions": [ - { - "x": 121.0, - "y": 21.0 - }, - { - "x": 404.0, - "y": 355.0 - }, - { - "x": 469.0, - "y": 283.0 - }, - { - "x": -67.0, - "y": 145.0 - }, - { - "x": 500.0, - "y": 158.0 - }, - { - "x": 501.0, - "y": 137.0 - }, - { - "x": -68.0, - "y": 182.0 - }, - { - "x": -69.0, - "y": 205.0 - }, - { - "x": -69.0, - "y": 226.0 - }, - { - "x": 488.0, - "y": 238.0 - }, - { - "x": 499.0, - "y": 190.0 - }, - { - "x": 499.0, - "y": 211.0 - } - ], - "IsLabelFlipped": [ - true, - false, - false, - true, - false, - false, - true, - true, - true, - false, - false, - false - ] - }, - { - "Controller": 128, - "Handedness": 0, - "InputLabelPositions": [ - { - "x": 15.0, - "y": 398.0 - }, - { - "x": 14.0, - "y": 419.0 - }, - { - "x": 418.0, - "y": 399.0 - }, - { - "x": 418.0, - "y": 420.0 - }, - { - "x": -188.0, - "y": 338.0 - }, - { - "x": 298.0, - "y": 54.0 - }, - { - "x": -132.0, - "y": 134.0 - }, - { - "x": 551.0, - "y": 126.0 - }, - { - "x": 14.0, - "y": 101.0 - }, - { - "x": 409.0, - "y": 101.0 - }, - { - "x": -159.0, - "y": 182.0 - }, - { - "x": 577.0, - "y": 173.0 - }, - { - "x": 628.0, - "y": 310.0 - }, - { - "x": 622.0, - "y": 282.0 - }, - { - "x": 616.0, - "y": 253.0 - }, - { - "x": 607.0, - "y": 225.0 - } - ], - "IsLabelFlipped": [ - true, - true, - false, - false, - true, - false, - true, - false, - true, - false, - true, - false, - false, - false, - false, - false - ] - }, - { - "Controller": 8, - "Handedness": 2, - "InputLabelPositions": [ - { - "x": -43.0, - "y": 165.0 - }, - { - "x": 5.0, - "y": 289.0 - }, - { - "x": 7.0, - "y": 330.0 - }, - { - "x": 8.0, - "y": 351.0 - }, - { - "x": 6.0, - "y": 309.0 - }, - { - "x": 436.0, - "y": 272.0 - }, - { - "x": 267.0, - "y": 30.0 - }, - { - "x": 267.0, - "y": 68.0 - }, - { - "x": 268.0, - "y": 88.0 - }, - { - "x": 267.0, - "y": 49.0 - }, - { - "x": 418.0, - "y": 163.0 - }, - { - "x": -43.0, - "y": 204.0 - }, - { - "x": 418.0, - "y": 182.0 - }, - { - "x": -42.0, - "y": 184.0 - }, - { - "x": 420.0, - "y": 202.0 - }, - { - "x": 419.0, - "y": 222.0 - } - ], - "IsLabelFlipped": [ - true, - true, - true, - true, - true, - false, - false, - false, - false, - false, - false, - true, - false, - true, - false, - false - ] - }, - { - "Controller": 8, - "Handedness": 1, - "InputLabelPositions": [ - { - "x": 482.0, - "y": 158.0 - }, - { - "x": 433.0, - "y": 295.0 - }, - { - "x": 433.0, - "y": 334.0 - }, - { - "x": 433.0, - "y": 355.0 - }, - { - "x": 433.0, - "y": 315.0 - }, - { - "x": -14.0, - "y": 268.0 - }, - { - "x": 171.0, - "y": 28.0 - }, - { - "x": 171.0, - "y": 67.0 - }, - { - "x": 171.0, - "y": 87.0 - }, - { - "x": 172.0, - "y": 47.0 - }, - { - "x": 15.0, - "y": 168.0 - }, - { - "x": 480.0, - "y": 179.0 - }, - { - "x": 16.0, - "y": 141.0 - }, - { - "x": 15.0, - "y": 188.0 - }, - { - "x": 479.0, - "y": 198.0 - }, - { - "x": 15.0, - "y": 207.0 - }, - { - "x": 14.0, - "y": 225.0 - } - ], - "IsLabelFlipped": [ - false, - false, - false, - false, - false, - true, - true, - true, - true, - true, - true, - false, - true, - true, - false, - true, - true - ] - }, - { - "Controller": 2, - "Handedness": 1, - "InputLabelPositions": [ - { - "x": 198.0, - "y": 49.0 - }, - { - "x": 545.0, - "y": 215.0 - }, - { - "x": 543.0, - "y": 233.0 - }, - { - "x": 543.0, - "y": 251.0 - }, - { - "x": 542.0, - "y": 298.0 - }, - { - "x": -131.0, - "y": 216.0 - }, - { - "x": -131.0, - "y": 256.0 - }, - { - "x": -131.0, - "y": 235.0 - }, - { - "x": -125.0, - "y": 173.0 - } - ], - "IsLabelFlipped": [ - false, - false, - false, - false, - false, - true, - true, - true, - true - ] - }, - { - "Controller": 2, - "Handedness": 2, - "InputLabelPositions": [ - { - "x": 418.0, - "y": 43.0 - }, - { - "x": -118.0, - "y": 208.0 - }, - { - "x": -117.0, - "y": 228.0 - }, - { - "x": -117.0, - "y": 248.0 - }, - { - "x": -117.0, - "y": 285.0 - }, - { - "x": 563.0, - "y": 212.0 - }, - { - "x": 565.0, - "y": 252.0 - }, - { - "x": 563.0, - "y": 232.0 - }, - { - "x": 568.0, - "y": 168.0 - } - ], - "IsLabelFlipped": [ - false, - true, - true, - true, - true, - false, - false, - false, - false - ] - }, - { - "Controller": 16, - "Handedness": 0, - "InputLabelPositions": [ - { - "x": 301.0, - "y": 63.0 - }, - { - "x": -64.0, - "y": 147.0 - }, - { - "x": 490.0, - "y": 226.0 - } - ], - "IsLabelFlipped": [ - false, - true, - false - ] - } - ] -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json.meta deleted file mode 100644 index 620649817..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Data/EditorWindowOptions.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 28091d5ea9b5739419a221a06fa1ec89 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs deleted file mode 100644 index 57f4c48b1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(HoverLight))] - public class HoverLightInspector : UnityEditor.Editor - { - private bool HasFrameBounds() { return true; } - - private Bounds OnGetFrameBounds() - { - var light = target as HoverLight; - Debug.Assert(light != null); - return new Bounds(light.transform.position, Vector3.one * light.Radius); - } - - [MenuItem("GameObject/Light/Hover Light")] - private static void CreateHoverLight(MenuCommand menuCommand) - { - GameObject hoverLight = new GameObject("Hover Light", typeof(HoverLight)); - - // Ensure the light gets re-parented to the active context. - GameObjectUtility.SetParentAndAlign(hoverLight, menuCommand.context as GameObject); - - // Register the creation in the undo system. - Undo.RegisterCreatedObjectUndo(hoverLight, "Create " + hoverLight.name); - - Selection.activeObject = hoverLight; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs.meta deleted file mode 100644 index 3f4a1709b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/HoverLightInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f912602b961f4064be7f83f4ee817167 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef b/AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef deleted file mode 100644 index 298f70231..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Async", - "Microsoft.MixedReality.Toolkit.Editor.BuildAndDeploy", - "Microsoft.MixedReality.Toolkit.Editor.ClassExtensions", - "Microsoft.MixedReality.Toolkit.Editor.Utilities", - "Unity.TextMeshPro.Editor" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef.meta deleted file mode 100644 index 5cfcd0454..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MRTK.Inspectors.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3fd8365dd9cf49cc9886d651945cdaae -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs deleted file mode 100644 index 3793a5f3b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs +++ /dev/null @@ -1,418 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEditor; -using UnityEngine; -using UnityEngine.Rendering; -using Object = UnityEngine.Object; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom base shader inspector for Mixed Reality Toolkit shaders. - /// - public abstract class MixedRealityShaderGUI : ShaderGUI - { - protected enum RenderingMode - { - Opaque = 0, - Cutout = 1, - Fade = 2, - Transparent = 3, - Additive = 4, - Custom = 5 - } - - protected enum CustomRenderingMode - { - Opaque = 0, - Cutout = 1, - Fade = 2 - } - - protected enum DepthWrite - { - Off = 0, - On = 1 - } - - protected static class BaseStyles - { - public static string renderingOptionsTitle = "Rendering Options"; - public static string advancedOptionsTitle = "Advanced Options"; - public static string renderTypeName = "RenderType"; - public static string renderingModeName = "_Mode"; - public static string customRenderingModeName = "_CustomMode"; - public static string sourceBlendName = "_SrcBlend"; - public static string destinationBlendName = "_DstBlend"; - public static string blendOperationName = "_BlendOp"; - public static string depthTestName = "_ZTest"; - public static string depthWriteName = "_ZWrite"; - public static string depthOffsetFactorName = "_ZOffsetFactor"; - public static string depthOffsetUnitsName = "_ZOffsetUnits"; - public static string colorWriteMaskName = "_ColorWriteMask"; - - public static string cullModeName = "_CullMode"; - public static string renderQueueOverrideName = "_RenderQueueOverride"; - - public static string alphaTestOnName = "_ALPHATEST_ON"; - public static string alphaBlendOnName = "_ALPHABLEND_ON"; - - public static readonly string[] renderingModeNames = Enum.GetNames(typeof(RenderingMode)); - public static readonly string[] customRenderingModeNames = Enum.GetNames(typeof(CustomRenderingMode)); - public static readonly string[] depthWriteNames = Enum.GetNames(typeof(DepthWrite)); - public static GUIContent sourceBlend = new GUIContent("Source Blend", "Blend Mode of Newly Calculated Color"); - public static GUIContent destinationBlend = new GUIContent("Destination Blend", "Blend Mode of Existing Color"); - public static GUIContent blendOperation = new GUIContent("Blend Operation", "Operation for Blending New Color With Existing Color"); - public static GUIContent depthTest = new GUIContent("Depth Test", "How Should Depth Testing Be Performed."); - public static GUIContent depthWrite = new GUIContent("Depth Write", "Controls Whether Pixels From This Material Are Written to the Depth Buffer"); - public static GUIContent depthOffsetFactor = new GUIContent("Depth Offset Factor", "Scales the Maximum Z Slope, with Respect to X or Y of the Polygon"); - public static GUIContent depthOffsetUnits = new GUIContent("Depth Offset Units", "Scales the Minimum Resolvable Depth Buffer Value"); - public static GUIContent colorWriteMask = new GUIContent("Color Write Mask", "Color Channel Writing Mask"); - public static GUIContent cullMode = new GUIContent("Cull Mode", "Triangle Culling Mode"); - public static GUIContent renderQueueOverride = new GUIContent("Render Queue Override", "Manually Override the Render Queue"); - } - - protected bool initialized; - - protected MaterialProperty renderingMode; - protected MaterialProperty customRenderingMode; - protected MaterialProperty sourceBlend; - protected MaterialProperty destinationBlend; - protected MaterialProperty blendOperation; - protected MaterialProperty depthTest; - protected MaterialProperty depthWrite; - protected MaterialProperty depthOffsetFactor; - protected MaterialProperty depthOffsetUnits; - protected MaterialProperty colorWriteMask; - protected MaterialProperty cullMode; - protected MaterialProperty renderQueueOverride; - - protected const string LegacyShadersPath = "Legacy Shaders/"; - protected const string TransparentShadersPath = "/Transparent/"; - protected const string TransparentCutoutShadersPath = "/Transparent/Cutout/"; - - public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) - { - Material material = (Material)materialEditor.target; - - FindProperties(props); - Initialize(material); - - RenderingModeOptions(materialEditor); - } - - protected virtual void FindProperties(MaterialProperty[] props) - { - renderingMode = FindProperty(BaseStyles.renderingModeName, props); - customRenderingMode = FindProperty(BaseStyles.customRenderingModeName, props); - sourceBlend = FindProperty(BaseStyles.sourceBlendName, props); - destinationBlend = FindProperty(BaseStyles.destinationBlendName, props); - blendOperation = FindProperty(BaseStyles.blendOperationName, props); - depthTest = FindProperty(BaseStyles.depthTestName, props); - depthWrite = FindProperty(BaseStyles.depthWriteName, props); - depthOffsetFactor = FindProperty(BaseStyles.depthOffsetFactorName, props); - depthOffsetUnits = FindProperty(BaseStyles.depthOffsetUnitsName, props); - colorWriteMask = FindProperty(BaseStyles.colorWriteMaskName, props); - - cullMode = FindProperty(BaseStyles.cullModeName, props); - renderQueueOverride = FindProperty(BaseStyles.renderQueueOverrideName, props); - } - - protected void Initialize(Material material) - { - if (!initialized) - { - MaterialChanged(material); - initialized = true; - } - } - - protected virtual void MaterialChanged(Material material) - { - SetupMaterialWithRenderingMode(material, - (RenderingMode)renderingMode.floatValue, - (CustomRenderingMode)customRenderingMode.floatValue, - (int)renderQueueOverride.floatValue); - } - - protected void RenderingModeOptions(MaterialEditor materialEditor) - { - EditorGUI.BeginChangeCheck(); - - EditorGUI.showMixedValue = renderingMode.hasMixedValue; - RenderingMode mode = (RenderingMode)renderingMode.floatValue; - EditorGUI.BeginChangeCheck(); - mode = (RenderingMode)EditorGUILayout.Popup(renderingMode.displayName, (int)mode, BaseStyles.renderingModeNames); - - if (EditorGUI.EndChangeCheck()) - { - materialEditor.RegisterPropertyChangeUndo(renderingMode.displayName); - renderingMode.floatValue = (float)mode; - - Object[] targets = renderingMode.targets; - - foreach (Object target in targets) - { - MaterialChanged((Material)target); - } - } - - EditorGUI.showMixedValue = false; - - if ((RenderingMode)renderingMode.floatValue == RenderingMode.Custom) - { - EditorGUI.indentLevel += 2; - customRenderingMode.floatValue = EditorGUILayout.Popup(customRenderingMode.displayName, (int)customRenderingMode.floatValue, BaseStyles.customRenderingModeNames); - materialEditor.ShaderProperty(sourceBlend, BaseStyles.sourceBlend); - materialEditor.ShaderProperty(destinationBlend, BaseStyles.destinationBlend); - materialEditor.ShaderProperty(blendOperation, BaseStyles.blendOperation); - materialEditor.ShaderProperty(depthTest, BaseStyles.depthTest); - depthWrite.floatValue = EditorGUILayout.Popup(depthWrite.displayName, (int)depthWrite.floatValue, BaseStyles.depthWriteNames); - materialEditor.ShaderProperty(depthOffsetFactor, BaseStyles.depthOffsetFactor); - materialEditor.ShaderProperty(depthOffsetUnits, BaseStyles.depthOffsetUnits); - materialEditor.ShaderProperty(colorWriteMask, BaseStyles.colorWriteMask); - EditorGUI.indentLevel -= 2; - } - - if (!PropertyEnabled(depthWrite)) - { - if (MixedRealityToolkitShaderGUIUtilities.DisplayDepthWriteWarning(materialEditor)) - { - renderingMode.floatValue = (float)RenderingMode.Custom; - depthWrite.floatValue = (float)DepthWrite.On; - } - } - - materialEditor.ShaderProperty(cullMode, BaseStyles.cullMode); - } - - protected static void SetupMaterialWithRenderingMode(Material material, RenderingMode mode, CustomRenderingMode customMode, int renderQueueOverride) - { - // If we aren't switching to Custom, then set default values for all RenderingMode types. Otherwise keep whatever user had before - if (mode != RenderingMode.Custom) - { - material.SetInt(BaseStyles.blendOperationName, (int)BlendOp.Add); - material.SetInt(BaseStyles.depthTestName, (int)CompareFunction.LessEqual); - material.SetFloat(BaseStyles.depthOffsetFactorName, 0.0f); - material.SetFloat(BaseStyles.depthOffsetUnitsName, 0.0f); - material.SetInt(BaseStyles.colorWriteMaskName, (int)ColorWriteMask.All); - } - - switch (mode) - { - case RenderingMode.Opaque: - { - material.SetOverrideTag(BaseStyles.renderTypeName, BaseStyles.renderingModeNames[(int)RenderingMode.Opaque]); - material.SetInt(BaseStyles.customRenderingModeName, (int)CustomRenderingMode.Opaque); - material.SetInt(BaseStyles.sourceBlendName, (int)BlendMode.One); - material.SetInt(BaseStyles.destinationBlendName, (int)BlendMode.Zero); - material.SetInt(BaseStyles.depthWriteName, (int)DepthWrite.On); - material.DisableKeyword(BaseStyles.alphaTestOnName); - material.DisableKeyword(BaseStyles.alphaBlendOnName); - material.renderQueue = (renderQueueOverride >= 0) ? renderQueueOverride : (int)RenderQueue.Geometry; - } - break; - - case RenderingMode.Cutout: - { - material.SetOverrideTag(BaseStyles.renderTypeName, BaseStyles.renderingModeNames[(int)RenderingMode.Cutout]); - material.SetInt(BaseStyles.customRenderingModeName, (int)CustomRenderingMode.Cutout); - material.SetInt(BaseStyles.sourceBlendName, (int)BlendMode.One); - material.SetInt(BaseStyles.destinationBlendName, (int)BlendMode.Zero); - material.SetInt(BaseStyles.depthWriteName, (int)DepthWrite.On); - material.EnableKeyword(BaseStyles.alphaTestOnName); - material.DisableKeyword(BaseStyles.alphaBlendOnName); - material.renderQueue = (renderQueueOverride >= 0) ? renderQueueOverride : (int)RenderQueue.AlphaTest; - } - break; - - case RenderingMode.Fade: - { - material.SetOverrideTag(BaseStyles.renderTypeName, BaseStyles.renderingModeNames[(int)RenderingMode.Fade]); - material.SetInt(BaseStyles.customRenderingModeName, (int)CustomRenderingMode.Fade); - material.SetInt(BaseStyles.sourceBlendName, (int)BlendMode.SrcAlpha); - material.SetInt(BaseStyles.destinationBlendName, (int)BlendMode.OneMinusSrcAlpha); - material.SetInt(BaseStyles.depthWriteName, (int)DepthWrite.Off); - material.DisableKeyword(BaseStyles.alphaTestOnName); - material.EnableKeyword(BaseStyles.alphaBlendOnName); - material.renderQueue = (renderQueueOverride >= 0) ? renderQueueOverride : (int)RenderQueue.Transparent; - } - break; - - case RenderingMode.Transparent: - { - material.SetOverrideTag(BaseStyles.renderTypeName, BaseStyles.renderingModeNames[(int)RenderingMode.Fade]); - material.SetInt(BaseStyles.customRenderingModeName, (int)CustomRenderingMode.Fade); - material.SetInt(BaseStyles.sourceBlendName, (int)BlendMode.One); - material.SetInt(BaseStyles.destinationBlendName, (int)BlendMode.OneMinusSrcAlpha); - material.SetInt(BaseStyles.depthWriteName, (int)DepthWrite.Off); - material.DisableKeyword(BaseStyles.alphaTestOnName); - material.EnableKeyword(BaseStyles.alphaBlendOnName); - material.renderQueue = (renderQueueOverride >= 0) ? renderQueueOverride : (int)RenderQueue.Transparent; - } - break; - - case RenderingMode.Additive: - { - material.SetOverrideTag(BaseStyles.renderTypeName, BaseStyles.renderingModeNames[(int)RenderingMode.Fade]); - material.SetInt(BaseStyles.customRenderingModeName, (int)CustomRenderingMode.Fade); - material.SetInt(BaseStyles.sourceBlendName, (int)BlendMode.One); - material.SetInt(BaseStyles.destinationBlendName, (int)BlendMode.One); - material.SetInt(BaseStyles.depthWriteName, (int)DepthWrite.Off); - material.DisableKeyword(BaseStyles.alphaTestOnName); - material.EnableKeyword(BaseStyles.alphaBlendOnName); - material.renderQueue = (renderQueueOverride >= 0) ? renderQueueOverride : (int)RenderQueue.Transparent; - } - break; - - case RenderingMode.Custom: - { - material.SetOverrideTag(BaseStyles.renderTypeName, BaseStyles.customRenderingModeNames[(int)customMode]); - // _SrcBlend, _DstBlend, _BlendOp, _ZTest, _ZWrite, _ColorWriteMask are controlled by UI. - - switch (customMode) - { - case CustomRenderingMode.Opaque: - { - material.DisableKeyword(BaseStyles.alphaTestOnName); - material.DisableKeyword(BaseStyles.alphaBlendOnName); - } - break; - - case CustomRenderingMode.Cutout: - { - material.EnableKeyword(BaseStyles.alphaTestOnName); - material.DisableKeyword(BaseStyles.alphaBlendOnName); - } - break; - - case CustomRenderingMode.Fade: - { - material.DisableKeyword(BaseStyles.alphaTestOnName); - material.EnableKeyword(BaseStyles.alphaBlendOnName); - } - break; - } - - material.renderQueue = (renderQueueOverride >= 0) ? renderQueueOverride : material.renderQueue; - } - break; - } - } - - /// - /// Check whether shader feature is enabled - /// - /// float property to check against - /// false if 0.0f, true otherwise - protected static bool PropertyEnabled(MaterialProperty property) - { - return !property.floatValue.Equals(0.0f); - } - - /// - /// Get the value of a given float property for a material - /// - /// material to check - /// name of property against material - /// if has property, then value of that property for current material, null otherwise - protected static float? GetFloatProperty(Material material, string propertyName) - { - if (material.HasProperty(propertyName)) - { - return material.GetFloat(propertyName); - } - - return null; - } - - /// - /// Get the value of a given vector property for a material - /// - /// material to check - /// name of property against material - /// if has property, then value of that property for current material, null otherwise - protected static Vector4? GetVectorProperty(Material material, string propertyName) - { - if (material.HasProperty(propertyName)) - { - return material.GetVector(propertyName); - } - - return null; - } - - /// - /// Get the value of a given color property for a material - /// - /// material to check - /// name of property against material - /// if has property, then value of that property for current material, null otherwise - protected static Color? GetColorProperty(Material material, string propertyName) - { - if (material.HasProperty(propertyName)) - { - return material.GetColor(propertyName); - } - - return null; - } - - /// - /// Sets the shader feature controlled by keyword and property name parameters active or inactive - /// - /// Material to modify - /// Keyword of shader feature - /// Associated property name for shader feature - /// float to be treated as a boolean flag for setting shader feature active or inactive - protected static void SetShaderFeatureActive(Material material, string keywordName, string propertyName, float? propertyValue) - { - if (propertyValue.HasValue) - { - if (keywordName != null) - { - if (!propertyValue.Value.Equals(0.0f)) - { - material.EnableKeyword(keywordName); - } - else - { - material.DisableKeyword(keywordName); - } - } - - material.SetFloat(propertyName, propertyValue.Value); - } - } - - /// - /// Sets vector property against associated material - /// - /// material to control - /// name of property to set - /// value of property to set - protected static void SetVectorProperty(Material material, string propertyName, Vector4? propertyValue) - { - if (propertyValue.HasValue) - { - material.SetVector(propertyName, propertyValue.Value); - } - } - - /// - /// Set color property against associated material - /// - /// material to control - /// name of property to set - /// value of property to set - protected static void SetColorProperty(Material material, string propertyName, Color? propertyValue) - { - if (propertyValue.HasValue) - { - material.SetColor(propertyName, propertyValue.Value); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs.meta deleted file mode 100644 index 81d46c7c8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityShaderGUI.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5c455a0029df0144a8d8bd9b27f781eb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs deleted file mode 100644 index 26c0d14a5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs +++ /dev/null @@ -1,823 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.IO; -using UnityEditor; -using UnityEngine; -using UnityEngine.Rendering; -using Object = UnityEngine.Object; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom shader inspector for the "Mixed Reality Toolkit/Standard" shader. - /// - public class MixedRealityStandardShaderGUI : MixedRealityShaderGUI - { - protected enum AlbedoAlphaMode - { - Transparency, - Metallic, - Smoothness - } - - protected static class Styles - { - public static string primaryMapsTitle = "Main Maps"; - public static string renderingOptionsTitle = "Rendering Options"; - public static string advancedOptionsTitle = "Advanced Options"; - public static string fluentOptionsTitle = "Fluent Options"; - public static string instancedColorName = "_InstancedColor"; - public static string instancedColorFeatureName = "_INSTANCED_COLOR"; - public static string stencilComparisonName = "_StencilComparison"; - public static string stencilOperationName = "_StencilOperation"; - public static string disableAlbedoMapName = "_DISABLE_ALBEDO_MAP"; - public static string albedoMapAlphaMetallicName = "_METALLIC_TEXTURE_ALBEDO_CHANNEL_A"; - public static string albedoMapAlphaSmoothnessName = "_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A"; - public static string propertiesComponentHelp = "Use the {0} component(s) to control {1} properties."; - public static readonly string[] albedoAlphaModeNames = Enum.GetNames(typeof(AlbedoAlphaMode)); - public static GUIContent instancedColor = new GUIContent("Instanced Color", "Enable a Unique Color Per Instance"); - public static GUIContent albedo = new GUIContent("Albedo", "Albedo (RGB) and Transparency (Alpha)"); - public static GUIContent albedoAssignedAtRuntime = new GUIContent("Assigned at Runtime", "As an optimization albedo operations are disabled when no albedo texture is specified. If a albedo texture will be specified at runtime enable this option."); - public static GUIContent alphaCutoff = new GUIContent("Alpha Cutoff", "Threshold for Alpha Cutoff"); - public static GUIContent metallic = new GUIContent("Metallic", "Metallic Value"); - public static GUIContent smoothness = new GUIContent("Smoothness", "Smoothness Value"); - public static GUIContent enableChannelMap = new GUIContent("Channel Map", "Enable Channel Map, a Channel Packing Texture That Follows Unity's Standard Channel Setup"); - public static GUIContent channelMap = new GUIContent("Channel Map", "Metallic (Red), Occlusion (Green), Emission (Blue), Smoothness (Alpha)"); - public static GUIContent enableNormalMap = new GUIContent("Normal Map", "Enable Normal Map"); - public static GUIContent normalMap = new GUIContent("Normal Map"); - public static GUIContent normalMapScale = new GUIContent("Scale", "Scales the Normal Map Normal"); - public static GUIContent enableEmission = new GUIContent("Emission", "Enable Emission"); - public static GUIContent emissiveColor = new GUIContent("Color"); - public static GUIContent enableTriplanarMapping = new GUIContent("Triplanar Mapping", "Enable Triplanar Mapping, a technique which programmatically generates UV coordinates"); - public static GUIContent enableLocalSpaceTriplanarMapping = new GUIContent("Local Space", "If True Triplanar Mapping is Calculated in Local Space"); - public static GUIContent triplanarMappingBlendSharpness = new GUIContent("Blend Sharpness", "The Power of the Blend with the Normal"); - public static GUIContent directionalLight = new GUIContent("Directional Light", "Affected by One Unity Directional Light"); - public static GUIContent specularHighlights = new GUIContent("Specular Highlights", "Calculate Specular Highlights"); - public static GUIContent sphericalHarmonics = new GUIContent("Spherical Harmonics", "Read From Spherical Harmonics Data for Ambient Light"); - public static GUIContent reflections = new GUIContent("Reflections", "Calculate Glossy Reflections"); - public static GUIContent refraction = new GUIContent("Refraction", "Calculate Refraction"); - public static GUIContent refractiveIndex = new GUIContent("Refractive Index", "Ratio of Indices of Refraction at the Surface Interface"); - public static GUIContent rimLight = new GUIContent("Rim Light", "Enable Rim (Fresnel) Lighting"); - public static GUIContent rimColor = new GUIContent("Color", "Rim Highlight Color"); - public static GUIContent rimPower = new GUIContent("Power", "Rim Highlight Saturation"); - public static GUIContent vertexColors = new GUIContent("Vertex Colors", "Enable Vertex Color Tinting"); - public static GUIContent vertexExtrusion = new GUIContent("Vertex Extrusion", "Enable Vertex Extrusion Along the Vertex Normal"); - public static GUIContent vertexExtrusionValue = new GUIContent("Extrusion Value", "How Far to Extrude the Vertex Along the Vertex Normal"); - public static GUIContent vertexExtrusionSmoothNormals = new GUIContent("Use Smooth Normals", "Should Vertex Extrusion use the Smooth Normals in UV3, or Default Normals"); - public static GUIContent blendedClippingWidth = new GUIContent("Blended Clipping Width", "The Width of the Clipping Primitive Clip Fade Region on Non-Cutout Materials"); - public static GUIContent clippingBorder = new GUIContent("Clipping Border", "Enable a Border Along the Clipping Primitive's Edge"); - public static GUIContent clippingBorderWidth = new GUIContent("Width", "Width of the Clipping Border"); - public static GUIContent clippingBorderColor = new GUIContent("Color", "Interpolated Color of the Clipping Border"); - public static GUIContent nearPlaneFade = new GUIContent("Near Fade", "Objects Disappear (Turn to Black/Transparent) as the Camera (or Hover/Proximity Light) Nears Them"); - public static GUIContent nearLightFade = new GUIContent("Use Light", "A Hover or Proximity Light (Rather Than the Camera) Determines Near Fade Distance"); - public static GUIContent fadeBeginDistance = new GUIContent("Fade Begin", "Distance From Camera (or Hover/Proximity Light) to Begin Fade In"); - public static GUIContent fadeCompleteDistance = new GUIContent("Fade Complete", "Distance From Camera (or Hover/Proximity Light) When Fade is Fully In"); - public static GUIContent fadeMinValue = new GUIContent("Fade Min Value", "Clamps the Fade Amount to a Minimum Value"); - public static GUIContent hoverLight = new GUIContent("Hover Light", "Enable utilization of Hover Light(s)"); - public static GUIContent enableHoverColorOverride = new GUIContent("Override Color", "Override Global Hover Light Color for this Material"); - public static GUIContent hoverColorOverride = new GUIContent("Color", "Override Hover Light Color"); - public static GUIContent proximityLight = new GUIContent("Proximity Light", "Enable utilization of Proximity Light(s)"); - public static GUIContent enableProximityLightColorOverride = new GUIContent("Override Color", "Override Global Proximity Light Color for this Material"); - public static GUIContent proximityLightCenterColorOverride = new GUIContent("Center Color", "The Override Color of the ProximityLight Gradient at the Center (RGB) and (A) is Gradient Extent"); - public static GUIContent proximityLightMiddleColorOverride = new GUIContent("Middle Color", "The Override Color of the ProximityLight Gradient at the Middle (RGB) and (A) is Gradient Extent"); - public static GUIContent proximityLightOuterColorOverride = new GUIContent("Outer Color", "The Override Color of the ProximityLight Gradient at the Outer Edge (RGB) and (A) is Gradient Extent"); - public static GUIContent proximityLightSubtractive = new GUIContent("Subtractive", "Proximity Lights Remove Light from a Surface, Used to Mimic a Shadow"); - public static GUIContent proximityLightTwoSided = new GUIContent("Two Sided", "Proximity Lights Apply to Both Sides of a Surface"); - public static GUIContent fluentLightIntensity = new GUIContent("Light Intensity", "Intensity Scaler for All Hover and Proximity Lights"); - public static GUIContent roundCorners = new GUIContent("Round Corners", "(Assumes UVs Specify Borders of Surface, Works Best on Unity Cube, Quad, and Plane)"); - public static GUIContent roundCornerRadius = new GUIContent("Unit Radius", "Rounded Rectangle Corner Unit Sphere Radius"); - public static GUIContent roundCornersRadius = new GUIContent("Corners Radius", "UpLeft-UpRight-BottomRight-BottomLeft"); - public static GUIContent roundCornerMargin = new GUIContent("Margin %", "Distance From Geometry Edge"); - public static GUIContent independentCorners = new GUIContent("Independent Corners", "Manage each corner separately"); - public static GUIContent borderLight = new GUIContent("Border Light", "Enable Border Lighting (Assumes UVs Specify Borders of Surface, Works Best on Unity Cube, Quad, and Plane)"); - public static GUIContent borderLightUsesHoverColor = new GUIContent("Use Hover Color", "Border Color Comes From Hover Light Color Override"); - public static GUIContent borderLightReplacesAlbedo = new GUIContent("Replace Albedo", "Border Light Replaces Albedo (Replacement Rather Than Additive)"); - public static GUIContent borderLightOpaque = new GUIContent("Opaque Borders", "Borders Override Alpha Value to Appear Opaque"); - public static GUIContent borderWidth = new GUIContent("Width %", "Uniform Width Along Border as a % of the Smallest XYZ Dimension"); - public static GUIContent borderMinValue = new GUIContent("Brightness", "Brightness Scaler"); - public static GUIContent edgeSmoothingValue = new GUIContent("Edge Smoothing Value", "Smooths Edges When Round Corners and Transparency Is Enabled"); - public static GUIContent borderLightOpaqueAlpha = new GUIContent("Alpha", "Alpha value of \"opaque\" borders."); - public static GUIContent innerGlow = new GUIContent("Inner Glow", "Enable Inner Glow (Assumes UVs Specify Borders of Surface, Works Best on Unity Cube, Quad, and Plane)"); - public static GUIContent innerGlowColor = new GUIContent("Color", "Inner Glow Color (RGB) and Intensity (A)"); - public static GUIContent innerGlowPower = new GUIContent("Power", "Power Exponent to Control Glow"); - public static GUIContent iridescence = new GUIContent("Iridescence", "Simulated Iridescence via Albedo Changes with the Angle of Observation)"); - public static GUIContent iridescentSpectrumMap = new GUIContent("Spectrum Map", "Spectrum of Colors to Apply (Usually a Texture with ROYGBIV from Left to Right)"); - public static GUIContent iridescenceIntensity = new GUIContent("Intensity", "Intensity of Iridescence"); - public static GUIContent iridescenceThreshold = new GUIContent("Threshold", "Threshold Window to Sample From the Spectrum Map"); - public static GUIContent iridescenceAngle = new GUIContent("Angle", "Surface Angle"); - public static GUIContent environmentColoring = new GUIContent("Environment Coloring", "Change Color Based on View"); - public static GUIContent environmentColorThreshold = new GUIContent("Threshold", "Threshold When Environment Coloring Should Appear Based on Surface Normal"); - public static GUIContent environmentColorIntensity = new GUIContent("Intensity", "Intensity (or Brightness) of the Environment Coloring"); - public static GUIContent environmentColorX = new GUIContent("X-Axis Color", "Color Along the World Space X-Axis"); - public static GUIContent environmentColorY = new GUIContent("Y-Axis Color", "Color Along the World Space Y-Axis"); - public static GUIContent environmentColorZ = new GUIContent("Z-Axis Color", "Color Along the World Space Z-Axis"); - public static GUIContent stencil = new GUIContent("Enable Stencil Testing", "Enabled Stencil Testing Operations"); - public static GUIContent stencilReference = new GUIContent("Stencil Reference", "Value to Compared Against (if Comparison is Anything but Always) and/or the Value to be Written to the Buffer (if Either Pass, Fail or ZFail is Set to Replace)"); - public static GUIContent stencilComparison = new GUIContent("Stencil Comparison", "Function to Compare the Reference Value to"); - public static GUIContent stencilOperation = new GUIContent("Stencil Operation", "What to do When the Stencil Test Passes"); - public static GUIContent ignoreZScale = new GUIContent("Ignore Z Scale", "For Features That Use Object Scale (Round Corners, Border Light, etc.), Ignore the Z Scale of the Object"); - } - - protected MaterialProperty instancedColor; - protected MaterialProperty albedoMap; - protected MaterialProperty albedoColor; - protected MaterialProperty albedoAlphaMode; - protected MaterialProperty albedoAssignedAtRuntime; - protected MaterialProperty alphaCutoff; - protected MaterialProperty enableChannelMap; - protected MaterialProperty channelMap; - protected MaterialProperty enableNormalMap; - protected MaterialProperty normalMap; - protected MaterialProperty normalMapScale; - protected MaterialProperty enableEmission; - protected MaterialProperty emissiveColor; - protected MaterialProperty enableTriplanarMapping; - protected MaterialProperty enableLocalSpaceTriplanarMapping; - protected MaterialProperty triplanarMappingBlendSharpness; - protected MaterialProperty metallic; - protected MaterialProperty smoothness; - protected MaterialProperty directionalLight; - protected MaterialProperty specularHighlights; - protected MaterialProperty sphericalHarmonics; - protected MaterialProperty reflections; - protected MaterialProperty refraction; - protected MaterialProperty refractiveIndex; - protected MaterialProperty rimLight; - protected MaterialProperty rimColor; - protected MaterialProperty rimPower; - protected MaterialProperty vertexColors; - protected MaterialProperty vertexExtrusion; - protected MaterialProperty vertexExtrusionValue; - protected MaterialProperty vertexExtrusionSmoothNormals; - protected MaterialProperty blendedClippingWidth; - protected MaterialProperty clippingBorder; - protected MaterialProperty clippingBorderWidth; - protected MaterialProperty clippingBorderColor; - protected MaterialProperty nearPlaneFade; - protected MaterialProperty nearLightFade; - protected MaterialProperty fadeBeginDistance; - protected MaterialProperty fadeCompleteDistance; - protected MaterialProperty fadeMinValue; - protected MaterialProperty hoverLight; - protected MaterialProperty enableHoverColorOverride; - protected MaterialProperty hoverColorOverride; - protected MaterialProperty proximityLight; - protected MaterialProperty enableProximityLightColorOverride; - protected MaterialProperty proximityLightCenterColorOverride; - protected MaterialProperty proximityLightMiddleColorOverride; - protected MaterialProperty proximityLightOuterColorOverride; - protected MaterialProperty proximityLightSubtractive; - protected MaterialProperty proximityLightTwoSided; - protected MaterialProperty fluentLightIntensity; - protected MaterialProperty roundCorners; - protected MaterialProperty roundCornerRadius; - protected MaterialProperty roundCornerMargin; - protected MaterialProperty independentCorners; - protected MaterialProperty roundCornersRadius; - protected MaterialProperty borderLight; - protected MaterialProperty borderLightUsesHoverColor; - protected MaterialProperty borderLightReplacesAlbedo; - protected MaterialProperty borderLightOpaque; - protected MaterialProperty borderWidth; - protected MaterialProperty borderMinValue; - protected MaterialProperty edgeSmoothingValue; - protected MaterialProperty borderLightOpaqueAlpha; - protected MaterialProperty innerGlow; - protected MaterialProperty innerGlowColor; - protected MaterialProperty innerGlowPower; - protected MaterialProperty iridescence; - protected MaterialProperty iridescentSpectrumMap; - protected MaterialProperty iridescenceIntensity; - protected MaterialProperty iridescenceThreshold; - protected MaterialProperty iridescenceAngle; - protected MaterialProperty environmentColoring; - protected MaterialProperty environmentColorThreshold; - protected MaterialProperty environmentColorIntensity; - protected MaterialProperty environmentColorX; - protected MaterialProperty environmentColorY; - protected MaterialProperty environmentColorZ; - protected MaterialProperty stencil; - protected MaterialProperty stencilReference; - protected MaterialProperty stencilComparison; - protected MaterialProperty stencilOperation; - protected MaterialProperty ignoreZScale; - - protected override void FindProperties(MaterialProperty[] props) - { - base.FindProperties(props); - - instancedColor = FindProperty(Styles.instancedColorName, props); - albedoMap = FindProperty("_MainTex", props); - albedoColor = FindProperty("_Color", props); - albedoAlphaMode = FindProperty("_AlbedoAlphaMode", props); - albedoAssignedAtRuntime = FindProperty("_AlbedoAssignedAtRuntime", props); - alphaCutoff = FindProperty("_Cutoff", props); - metallic = FindProperty("_Metallic", props); - smoothness = FindProperty("_Smoothness", props); - enableChannelMap = FindProperty("_EnableChannelMap", props); - channelMap = FindProperty("_ChannelMap", props); - enableNormalMap = FindProperty("_EnableNormalMap", props); - normalMap = FindProperty("_NormalMap", props); - normalMapScale = FindProperty("_NormalMapScale", props); - enableEmission = FindProperty("_EnableEmission", props); - emissiveColor = FindProperty("_EmissiveColor", props); - enableTriplanarMapping = FindProperty("_EnableTriplanarMapping", props); - enableLocalSpaceTriplanarMapping = FindProperty("_EnableLocalSpaceTriplanarMapping", props); - triplanarMappingBlendSharpness = FindProperty("_TriplanarMappingBlendSharpness", props); - directionalLight = FindProperty("_DirectionalLight", props); - specularHighlights = FindProperty("_SpecularHighlights", props); - sphericalHarmonics = FindProperty("_SphericalHarmonics", props); - reflections = FindProperty("_Reflections", props); - refraction = FindProperty("_Refraction", props); - refractiveIndex = FindProperty("_RefractiveIndex", props); - rimLight = FindProperty("_RimLight", props); - rimColor = FindProperty("_RimColor", props); - rimPower = FindProperty("_RimPower", props); - vertexColors = FindProperty("_VertexColors", props); - vertexExtrusion = FindProperty("_VertexExtrusion", props); - vertexExtrusionValue = FindProperty("_VertexExtrusionValue", props); - vertexExtrusionSmoothNormals = FindProperty("_VertexExtrusionSmoothNormals", props); - blendedClippingWidth = FindProperty("_BlendedClippingWidth", props); - clippingBorder = FindProperty("_ClippingBorder", props); - clippingBorderWidth = FindProperty("_ClippingBorderWidth", props); - clippingBorderColor = FindProperty("_ClippingBorderColor", props); - nearPlaneFade = FindProperty("_NearPlaneFade", props); - nearLightFade = FindProperty("_NearLightFade", props); - fadeBeginDistance = FindProperty("_FadeBeginDistance", props); - fadeCompleteDistance = FindProperty("_FadeCompleteDistance", props); - fadeMinValue = FindProperty("_FadeMinValue", props); - hoverLight = FindProperty("_HoverLight", props); - enableHoverColorOverride = FindProperty("_EnableHoverColorOverride", props); - hoverColorOverride = FindProperty("_HoverColorOverride", props); - proximityLight = FindProperty("_ProximityLight", props); - enableProximityLightColorOverride = FindProperty("_EnableProximityLightColorOverride", props); - proximityLightCenterColorOverride = FindProperty("_ProximityLightCenterColorOverride", props); - proximityLightMiddleColorOverride = FindProperty("_ProximityLightMiddleColorOverride", props); - proximityLightOuterColorOverride = FindProperty("_ProximityLightOuterColorOverride", props); - proximityLightSubtractive = FindProperty("_ProximityLightSubtractive", props); - proximityLightTwoSided = FindProperty("_ProximityLightTwoSided", props); - fluentLightIntensity = FindProperty("_FluentLightIntensity", props); - roundCorners = FindProperty("_RoundCorners", props); - roundCornerRadius = FindProperty("_RoundCornerRadius", props); - roundCornersRadius = FindProperty("_RoundCornersRadius", props); - roundCornerMargin = FindProperty("_RoundCornerMargin", props); - independentCorners = FindProperty("_IndependentCorners", props); - borderLight = FindProperty("_BorderLight", props); - borderLightUsesHoverColor = FindProperty("_BorderLightUsesHoverColor", props); - borderLightReplacesAlbedo = FindProperty("_BorderLightReplacesAlbedo", props); - borderLightOpaque = FindProperty("_BorderLightOpaque", props); - borderWidth = FindProperty("_BorderWidth", props); - borderMinValue = FindProperty("_BorderMinValue", props); - edgeSmoothingValue = FindProperty("_EdgeSmoothingValue", props); - borderLightOpaqueAlpha = FindProperty("_BorderLightOpaqueAlpha", props); - innerGlow = FindProperty("_InnerGlow", props); - innerGlowColor = FindProperty("_InnerGlowColor", props); - innerGlowPower = FindProperty("_InnerGlowPower", props); - iridescence = FindProperty("_Iridescence", props); - iridescentSpectrumMap = FindProperty("_IridescentSpectrumMap", props); - iridescenceIntensity = FindProperty("_IridescenceIntensity", props); - iridescenceThreshold = FindProperty("_IridescenceThreshold", props); - iridescenceAngle = FindProperty("_IridescenceAngle", props); - environmentColoring = FindProperty("_EnvironmentColoring", props); - environmentColorThreshold = FindProperty("_EnvironmentColorThreshold", props); - environmentColorIntensity = FindProperty("_EnvironmentColorIntensity", props); - environmentColorX = FindProperty("_EnvironmentColorX", props); - environmentColorY = FindProperty("_EnvironmentColorY", props); - environmentColorZ = FindProperty("_EnvironmentColorZ", props); - stencil = FindProperty("_Stencil", props); - stencilReference = FindProperty("_StencilReference", props); - stencilComparison = FindProperty(Styles.stencilComparisonName, props); - stencilOperation = FindProperty(Styles.stencilOperationName, props); - ignoreZScale = FindProperty("_IgnoreZScale", props); - } - - public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) - { - Material material = (Material)materialEditor.target; - - base.OnGUI(materialEditor, props); - - MainMapOptions(materialEditor, material); - RenderingOptions(materialEditor, material); - FluentOptions(materialEditor, material); - AdvancedOptions(materialEditor, material); - } - - public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) - { - // Cache old shader properties with potentially different names than the new shader. - float? smoothness = GetFloatProperty(material, "_Glossiness"); - float? diffuse = GetFloatProperty(material, "_UseDiffuse"); - float? specularHighlights = GetFloatProperty(material, "_SpecularHighlights"); - float? normalMap = null; - Texture normalMapTexture = material.GetTexture("_BumpMap"); - float? normalMapScale = GetFloatProperty(material, "_BumpScale"); - float? emission = null; - Color? emissionColor = GetColorProperty(material, "_EmissionColor"); - float? reflections = null; - float? rimLighting = null; - Vector4? textureScaleOffset = null; - float? cullMode = GetFloatProperty(material, "_Cull"); - - if (oldShader) - { - if (oldShader.name.Contains("Standard")) - { - normalMap = material.IsKeywordEnabled("_NORMALMAP") ? 1.0f : 0.0f; - emission = material.IsKeywordEnabled("_EMISSION") ? 1.0f : 0.0f; - reflections = GetFloatProperty(material, "_GlossyReflections"); - } - else if (oldShader.name.Contains("Fast Configurable")) - { - normalMap = material.IsKeywordEnabled("_USEBUMPMAP_ON") ? 1.0f : 0.0f; - emission = GetFloatProperty(material, "_UseEmissionColor"); - reflections = GetFloatProperty(material, "_UseReflections"); - rimLighting = GetFloatProperty(material, "_UseRimLighting"); - textureScaleOffset = GetVectorProperty(material, "_TextureScaleOffset"); - } - } - - base.AssignNewShaderToMaterial(material, oldShader, newShader); - - // Apply old shader properties to the new shader. - SetShaderFeatureActive(material, null, "_Smoothness", smoothness); - SetShaderFeatureActive(material, "_DIRECTIONAL_LIGHT", "_DirectionalLight", diffuse); - SetShaderFeatureActive(material, "_SPECULAR_HIGHLIGHTS", "_SpecularHighlights", specularHighlights); - SetShaderFeatureActive(material, "_NORMAL_MAP", "_EnableNormalMap", normalMap); - - if (normalMapTexture) - { - material.SetTexture("_NormalMap", normalMapTexture); - } - - SetShaderFeatureActive(material, null, "_NormalMapScale", normalMapScale); - SetShaderFeatureActive(material, "_EMISSION", "_EnableEmission", emission); - SetColorProperty(material, "_EmissiveColor", emissionColor); - SetShaderFeatureActive(material, "_REFLECTIONS", "_Reflections", reflections); - SetShaderFeatureActive(material, "_RIM_LIGHT", "_RimLight", rimLighting); - SetVectorProperty(material, "_MainTex_ST", textureScaleOffset); - SetShaderFeatureActive(material, null, "_CullMode", cullMode); - - // Setup the rendering mode based on the old shader. - if (oldShader == null || !oldShader.name.Contains(LegacyShadersPath)) - { - SetupMaterialWithRenderingMode(material, (RenderingMode)material.GetFloat(BaseStyles.renderingModeName), CustomRenderingMode.Opaque, -1); - } - else - { - RenderingMode mode = RenderingMode.Opaque; - - if (oldShader.name.Contains(TransparentCutoutShadersPath)) - { - mode = RenderingMode.Cutout; - } - else if (oldShader.name.Contains(TransparentShadersPath)) - { - mode = RenderingMode.Fade; - } - - material.SetFloat(BaseStyles.renderingModeName, (float)mode); - - MaterialChanged(material); - } - } - - protected override void MaterialChanged(Material material) - { - SetupMaterialWithAlbedo(material, albedoMap, albedoAlphaMode, albedoAssignedAtRuntime); - - base.MaterialChanged(material); - } - - protected void MainMapOptions(MaterialEditor materialEditor, Material material) - { - GUILayout.Label(Styles.primaryMapsTitle, EditorStyles.boldLabel); - - materialEditor.TexturePropertySingleLine(Styles.albedo, albedoMap, albedoColor); - - if (albedoMap.textureValue == null) - { - materialEditor.ShaderProperty(albedoAssignedAtRuntime, Styles.albedoAssignedAtRuntime, 2); - } - - materialEditor.ShaderProperty(enableChannelMap, Styles.enableChannelMap); - - if (PropertyEnabled(enableChannelMap)) - { - EditorGUI.indentLevel += 2; - materialEditor.TexturePropertySingleLine(Styles.channelMap, channelMap); - GUILayout.Box("Metallic (Red), Occlusion (Green), Emission (Blue), Smoothness (Alpha)", EditorStyles.helpBox, Array.Empty()); - EditorGUI.indentLevel -= 2; - } - - if (!PropertyEnabled(enableChannelMap)) - { - EditorGUI.indentLevel += 2; - - materialEditor.ShaderProperty(albedoAlphaMode, albedoAlphaMode.displayName); - - if ((RenderingMode)renderingMode.floatValue == RenderingMode.Cutout || - (RenderingMode)renderingMode.floatValue == RenderingMode.Custom) - { - materialEditor.ShaderProperty(alphaCutoff, Styles.alphaCutoff.text); - } - - if ((AlbedoAlphaMode)albedoAlphaMode.floatValue != AlbedoAlphaMode.Metallic) - { - materialEditor.ShaderProperty(metallic, Styles.metallic); - } - - if ((AlbedoAlphaMode)albedoAlphaMode.floatValue != AlbedoAlphaMode.Smoothness) - { - materialEditor.ShaderProperty(smoothness, Styles.smoothness); - } - - SetupMaterialWithAlbedo(material, albedoMap, albedoAlphaMode, albedoAssignedAtRuntime); - - EditorGUI.indentLevel -= 2; - } - - if (PropertyEnabled(directionalLight) || - PropertyEnabled(reflections) || - PropertyEnabled(rimLight) || - PropertyEnabled(environmentColoring)) - { - materialEditor.ShaderProperty(enableNormalMap, Styles.enableNormalMap); - - if (PropertyEnabled(enableNormalMap)) - { - EditorGUI.indentLevel += 2; - materialEditor.TexturePropertySingleLine(Styles.normalMap, normalMap, normalMap.textureValue != null ? normalMapScale : null); - EditorGUI.indentLevel -= 2; - } - } - - materialEditor.ShaderProperty(enableEmission, Styles.enableEmission); - - if (PropertyEnabled(enableEmission)) - { - materialEditor.ShaderProperty(emissiveColor, Styles.emissiveColor, 2); - } - - materialEditor.ShaderProperty(enableTriplanarMapping, Styles.enableTriplanarMapping); - - if (PropertyEnabled(enableTriplanarMapping)) - { - materialEditor.ShaderProperty(enableLocalSpaceTriplanarMapping, Styles.enableLocalSpaceTriplanarMapping, 2); - materialEditor.ShaderProperty(triplanarMappingBlendSharpness, Styles.triplanarMappingBlendSharpness, 2); - } - - EditorGUILayout.Space(); - materialEditor.TextureScaleOffsetProperty(albedoMap); - } - - protected void RenderingOptions(MaterialEditor materialEditor, Material material) - { - EditorGUILayout.Space(); - GUILayout.Label(Styles.renderingOptionsTitle, EditorStyles.boldLabel); - - materialEditor.ShaderProperty(directionalLight, Styles.directionalLight); - - if (PropertyEnabled(directionalLight)) - { - materialEditor.ShaderProperty(specularHighlights, Styles.specularHighlights, 2); - } - - materialEditor.ShaderProperty(sphericalHarmonics, Styles.sphericalHarmonics); - - materialEditor.ShaderProperty(reflections, Styles.reflections); - - if (PropertyEnabled(reflections)) - { - materialEditor.ShaderProperty(refraction, Styles.refraction, 2); - - if (PropertyEnabled(refraction)) - { - materialEditor.ShaderProperty(refractiveIndex, Styles.refractiveIndex, 4); - } - } - - materialEditor.ShaderProperty(rimLight, Styles.rimLight); - - if (PropertyEnabled(rimLight)) - { - materialEditor.ShaderProperty(rimColor, Styles.rimColor, 2); - materialEditor.ShaderProperty(rimPower, Styles.rimPower, 2); - } - - materialEditor.ShaderProperty(vertexColors, Styles.vertexColors); - - materialEditor.ShaderProperty(vertexExtrusion, Styles.vertexExtrusion); - - if (PropertyEnabled(vertexExtrusion)) - { - materialEditor.ShaderProperty(vertexExtrusionValue, Styles.vertexExtrusionValue, 2); - materialEditor.ShaderProperty(vertexExtrusionSmoothNormals, Styles.vertexExtrusionSmoothNormals, 2); - } - - if ((RenderingMode)renderingMode.floatValue != RenderingMode.Opaque && - (RenderingMode)renderingMode.floatValue != RenderingMode.Cutout) - { - materialEditor.ShaderProperty(blendedClippingWidth, Styles.blendedClippingWidth); - GUILayout.Box(string.Format(Styles.propertiesComponentHelp, nameof(ClippingPrimitive), "other clipping"), EditorStyles.helpBox, Array.Empty()); - } - - materialEditor.ShaderProperty(clippingBorder, Styles.clippingBorder); - - if (PropertyEnabled(clippingBorder)) - { - materialEditor.ShaderProperty(clippingBorderWidth, Styles.clippingBorderWidth, 2); - materialEditor.ShaderProperty(clippingBorderColor, Styles.clippingBorderColor, 2); - GUILayout.Box(string.Format(Styles.propertiesComponentHelp, nameof(ClippingPrimitive), "other clipping"), EditorStyles.helpBox, Array.Empty()); - } - - materialEditor.ShaderProperty(nearPlaneFade, Styles.nearPlaneFade); - - if (PropertyEnabled(nearPlaneFade)) - { - materialEditor.ShaderProperty(nearLightFade, Styles.nearLightFade, 2); - materialEditor.ShaderProperty(fadeBeginDistance, Styles.fadeBeginDistance, 2); - materialEditor.ShaderProperty(fadeCompleteDistance, Styles.fadeCompleteDistance, 2); - materialEditor.ShaderProperty(fadeMinValue, Styles.fadeMinValue, 2); - } - } - - protected void FluentOptions(MaterialEditor materialEditor, Material material) - { - EditorGUILayout.Space(); - GUILayout.Label(Styles.fluentOptionsTitle, EditorStyles.boldLabel); - RenderingMode mode = (RenderingMode)renderingMode.floatValue; - CustomRenderingMode customMode = (CustomRenderingMode)customRenderingMode.floatValue; - - materialEditor.ShaderProperty(hoverLight, Styles.hoverLight); - - if (PropertyEnabled(hoverLight)) - { - GUILayout.Box(string.Format(Styles.propertiesComponentHelp, nameof(HoverLight), Styles.hoverLight.text), EditorStyles.helpBox, Array.Empty()); - - materialEditor.ShaderProperty(enableHoverColorOverride, Styles.enableHoverColorOverride, 2); - - if (PropertyEnabled(enableHoverColorOverride)) - { - materialEditor.ShaderProperty(hoverColorOverride, Styles.hoverColorOverride, 4); - } - } - - materialEditor.ShaderProperty(proximityLight, Styles.proximityLight); - - if (PropertyEnabled(proximityLight)) - { - materialEditor.ShaderProperty(enableProximityLightColorOverride, Styles.enableProximityLightColorOverride, 2); - - if (PropertyEnabled(enableProximityLightColorOverride)) - { - materialEditor.ShaderProperty(proximityLightCenterColorOverride, Styles.proximityLightCenterColorOverride, 4); - materialEditor.ShaderProperty(proximityLightMiddleColorOverride, Styles.proximityLightMiddleColorOverride, 4); - materialEditor.ShaderProperty(proximityLightOuterColorOverride, Styles.proximityLightOuterColorOverride, 4); - } - - materialEditor.ShaderProperty(proximityLightSubtractive, Styles.proximityLightSubtractive, 2); - materialEditor.ShaderProperty(proximityLightTwoSided, Styles.proximityLightTwoSided, 2); - GUILayout.Box(string.Format(Styles.propertiesComponentHelp, nameof(ProximityLight), Styles.proximityLight.text), EditorStyles.helpBox, Array.Empty()); - } - - materialEditor.ShaderProperty(borderLight, Styles.borderLight); - - if (PropertyEnabled(borderLight)) - { - materialEditor.ShaderProperty(borderWidth, Styles.borderWidth, 2); - - materialEditor.ShaderProperty(borderMinValue, Styles.borderMinValue, 2); - - materialEditor.ShaderProperty(borderLightReplacesAlbedo, Styles.borderLightReplacesAlbedo, 2); - - if (PropertyEnabled(hoverLight) && PropertyEnabled(enableHoverColorOverride)) - { - materialEditor.ShaderProperty(borderLightUsesHoverColor, Styles.borderLightUsesHoverColor, 2); - } - - if (mode == RenderingMode.Cutout || mode == RenderingMode.Fade || mode == RenderingMode.Transparent || - (mode == RenderingMode.Custom && customMode == CustomRenderingMode.Cutout) || - (mode == RenderingMode.Custom && customMode == CustomRenderingMode.Fade)) - { - materialEditor.ShaderProperty(borderLightOpaque, Styles.borderLightOpaque, 2); - - if (PropertyEnabled(borderLightOpaque)) - { - materialEditor.ShaderProperty(borderLightOpaqueAlpha, Styles.borderLightOpaqueAlpha, 4); - } - } - } - - if (PropertyEnabled(hoverLight) || PropertyEnabled(proximityLight) || PropertyEnabled(borderLight)) - { - materialEditor.ShaderProperty(fluentLightIntensity, Styles.fluentLightIntensity); - } - - materialEditor.ShaderProperty(roundCorners, Styles.roundCorners); - - if (PropertyEnabled(roundCorners)) - { - materialEditor.ShaderProperty(independentCorners, Styles.independentCorners, 2); - if (PropertyEnabled(independentCorners)) - { - materialEditor.ShaderProperty(roundCornersRadius, Styles.roundCornersRadius, 2); - } - else - { - materialEditor.ShaderProperty(roundCornerRadius, Styles.roundCornerRadius, 2); - } - - materialEditor.ShaderProperty(roundCornerMargin, Styles.roundCornerMargin, 2); - } - - if (PropertyEnabled(roundCorners) || PropertyEnabled(borderLight)) - { - materialEditor.ShaderProperty(edgeSmoothingValue, Styles.edgeSmoothingValue); - } - - materialEditor.ShaderProperty(innerGlow, Styles.innerGlow); - - if (PropertyEnabled(innerGlow)) - { - materialEditor.ShaderProperty(innerGlowColor, Styles.innerGlowColor, 2); - materialEditor.ShaderProperty(innerGlowPower, Styles.innerGlowPower, 2); - } - - materialEditor.ShaderProperty(iridescence, Styles.iridescence); - - if (PropertyEnabled(iridescence)) - { - EditorGUI.indentLevel += 2; - materialEditor.TexturePropertySingleLine(Styles.iridescentSpectrumMap, iridescentSpectrumMap); - EditorGUI.indentLevel -= 2; - materialEditor.ShaderProperty(iridescenceIntensity, Styles.iridescenceIntensity, 2); - materialEditor.ShaderProperty(iridescenceThreshold, Styles.iridescenceThreshold, 2); - materialEditor.ShaderProperty(iridescenceAngle, Styles.iridescenceAngle, 2); - } - - materialEditor.ShaderProperty(environmentColoring, Styles.environmentColoring); - - if (PropertyEnabled(environmentColoring)) - { - materialEditor.ShaderProperty(environmentColorThreshold, Styles.environmentColorThreshold, 2); - materialEditor.ShaderProperty(environmentColorIntensity, Styles.environmentColorIntensity, 2); - materialEditor.ShaderProperty(environmentColorX, Styles.environmentColorX, 2); - materialEditor.ShaderProperty(environmentColorY, Styles.environmentColorY, 2); - materialEditor.ShaderProperty(environmentColorZ, Styles.environmentColorZ, 2); - } - } - - protected void AdvancedOptions(MaterialEditor materialEditor, Material material) - { - EditorGUILayout.Space(); - GUILayout.Label(Styles.advancedOptionsTitle, EditorStyles.boldLabel); - - EditorGUI.BeginChangeCheck(); - - materialEditor.ShaderProperty(renderQueueOverride, BaseStyles.renderQueueOverride); - - if (EditorGUI.EndChangeCheck()) - { - MaterialChanged(material); - } - - // Show the RenderQueueField but do not allow users to directly manipulate it. That is done via the renderQueueOverride. - GUI.enabled = false; - materialEditor.RenderQueueField(); - - // Enable instancing to disable batching. Static and dynamic batching will normalize the object scale, which breaks - // features which utilize object scale. - GUI.enabled = !ScaleRequired(); - - if (!GUI.enabled && !material.enableInstancing) - { - material.enableInstancing = true; - } - - materialEditor.EnableInstancingField(); - - if (material.enableInstancing) - { - GUI.enabled = true; - materialEditor.ShaderProperty(instancedColor, Styles.instancedColor, 2); - } - else - { - // When instancing is disable, disable instanced color. - SetShaderFeatureActive(material, Styles.instancedColorFeatureName, Styles.instancedColorName, 0.0f); - } - - materialEditor.ShaderProperty(stencil, Styles.stencil); - - if (PropertyEnabled(stencil)) - { - materialEditor.ShaderProperty(stencilReference, Styles.stencilReference, 2); - materialEditor.ShaderProperty(stencilComparison, Styles.stencilComparison, 2); - materialEditor.ShaderProperty(stencilOperation, Styles.stencilOperation, 2); - } - else - { - // When stencil is disable, revert to the default stencil operations. Note, when tested on D3D11 hardware the stencil state - // is still set even when the CompareFunction.Disabled is selected, but this does not seem to affect performance. - material.SetInt(Styles.stencilComparisonName, (int)CompareFunction.Disabled); - material.SetInt(Styles.stencilOperationName, (int)StencilOp.Keep); - } - - if (ScaleRequired()) - { - materialEditor.ShaderProperty(ignoreZScale, Styles.ignoreZScale); - } - } - - protected bool ScaleRequired() - { - return PropertyEnabled(vertexExtrusion) || - PropertyEnabled(roundCorners) || - PropertyEnabled(borderLight) || - (PropertyEnabled(enableTriplanarMapping) && PropertyEnabled(enableLocalSpaceTriplanarMapping)); - } - - protected static void SetupMaterialWithAlbedo(Material material, MaterialProperty albedoMap, MaterialProperty albedoAlphaMode, MaterialProperty albedoAssignedAtRuntime) - { - if (albedoMap.textureValue || PropertyEnabled(albedoAssignedAtRuntime)) - { - material.DisableKeyword(Styles.disableAlbedoMapName); - } - else - { - material.EnableKeyword(Styles.disableAlbedoMapName); - } - - switch ((AlbedoAlphaMode)albedoAlphaMode.floatValue) - { - case AlbedoAlphaMode.Transparency: - { - material.DisableKeyword(Styles.albedoMapAlphaMetallicName); - material.DisableKeyword(Styles.albedoMapAlphaSmoothnessName); - } - break; - - case AlbedoAlphaMode.Metallic: - { - material.EnableKeyword(Styles.albedoMapAlphaMetallicName); - material.DisableKeyword(Styles.albedoMapAlphaSmoothnessName); - } - break; - - case AlbedoAlphaMode.Smoothness: - { - material.DisableKeyword(Styles.albedoMapAlphaMetallicName); - material.EnableKeyword(Styles.albedoMapAlphaSmoothnessName); - } - break; - } - } - - [MenuItem("Mixed Reality Toolkit/Utilities/Upgrade MRTK Standard Shader for Lightweight Render Pipeline")] - protected static void UpgradeShaderForLightweightRenderPipeline() - { - if (EditorUtility.DisplayDialog("Upgrade MRTK Standard Shader?", - "This will alter the MRTK Standard Shader for use with Unity's Lightweight Render Pipeline. You cannot undo this action.", - "Ok", - "Cancel")) - { - string path = AssetDatabase.GetAssetPath(StandardShaderUtility.MrtkStandardShader); - - if (!string.IsNullOrEmpty(path)) - { - try - { - string upgradedShader = File.ReadAllText(path); - upgradedShader = upgradedShader.Replace("Tags{ \"RenderType\" = \"Opaque\" \"LightMode\" = \"ForwardBase\" }", - "Tags{ \"RenderType\" = \"Opaque\" \"LightMode\" = \"LightweightForward\" }"); - upgradedShader = upgradedShader.Replace("//#define _LIGHTWEIGHT_RENDER_PIPELINE", - "#define _LIGHTWEIGHT_RENDER_PIPELINE"); - File.WriteAllText(path, upgradedShader); - AssetDatabase.Refresh(); - - Debug.LogFormat("Upgraded {0} for use with the Lightweight Render Pipeline.", path); - } - catch (Exception e) - { - Debug.LogException(e); - } - } - else - { - Debug.LogErrorFormat("Failed to get asset path to: {0}", StandardShaderUtility.MrtkStandardShaderName); - } - } - } - - [MenuItem("Mixed Reality Toolkit/Utilities/Upgrade MRTK Standard Shader for Lightweight Render Pipeline", true)] - protected static bool UpgradeShaderForLightweightRenderPipelineValidate() - { - // If a scriptable render pipeline is not present, no need to upgrade the shader. - return GraphicsSettings.renderPipelineAsset != null; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs.meta deleted file mode 100644 index 47e56575f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityStandardShaderGUI.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 987d0f891c554d668f53217451de169b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs deleted file mode 100644 index e627aad7e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using TMPro.EditorUtilities; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom TMP_SDFShaderGUI inspector for the "Mixed Reality Toolkit/TextMeshPro" shader. - /// Adds the ability to change the depth write mode, and a warning about depth write - /// when depth buffer sharing is enabled. - /// - public class MixedRealityTextMeshProShaderGUI : TMP_SDFShaderGUI - { - protected override void DoGUI() - { - BeginPanel("Mode", true); - DoModePanel(); - EndPanel(); - - base.DoGUI(); - } - - protected void DoModePanel() - { - EditorGUI.indentLevel += 1; - - var depthWrite = FindProperty("_ZWrite", m_Properties, false); - - if (depthWrite != null) - { - m_Editor.ShaderProperty(depthWrite, depthWrite.displayName); - - if (depthWrite.floatValue.Equals(0.0f)) - { - if (MixedRealityToolkitShaderGUIUtilities.DisplayDepthWriteWarning(m_Editor)) - { - depthWrite.floatValue = 1.0f; - } - } - } - - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs.meta deleted file mode 100644 index 6f7617a43..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityTextMeshProShaderGUI.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b322d4ab96d0da446be114e721d59c1c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs deleted file mode 100644 index f9c45f490..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.SceneManagement; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Facades -{ - /// - /// Links service facade objects to active services. - /// - /// - /// This feature is is being deprecated in 2.5 and will be removed in a future release. - /// The code that remains will actively seek to remove existing facades in scenes to ensure that - /// developers that update to 2.5 will get their scenes cleaned up appropriately. - /// - [InitializeOnLoad] - public static class MixedRealityToolkitFacadeHandler - { - private static readonly List childrenToDelete = new List(); - - // While a scene save is occurring, facade creation is disabled - // and currently present facades get deleted. - private static bool sceneSaving = false; - - static MixedRealityToolkitFacadeHandler() - { -#if UNITY_2019_1_OR_NEWER - SceneView.duringSceneGui += OnSceneGUI; -#else - SceneView.onSceneGUIDelegate += OnSceneGUI; -#endif - EditorSceneManager.sceneSaving += OnSceneSaving; - EditorSceneManager.sceneSaved += OnSceneSaved; - } - - #region callbacks - - private static void OnSceneGUI(SceneView sceneView) - { - UpdateServiceFacades(); - } - - private static void OnSceneSaving(Scene scene, string path) - { - sceneSaving = true; - CleanupCurrentFacades(); - } - - private static void OnSceneSaved(Scene scene) - { - sceneSaving = false; - } - - #endregion - - private static void CleanupCurrentFacades() - { - foreach (MixedRealityToolkit toolkitInstance in GameObject.FindObjectsOfType()) - { - DestroyAllChildren(toolkitInstance); - } - } - - private static void UpdateServiceFacades() - { - // If compiling or saving, don't modify service facades - if (sceneSaving || EditorApplication.isCompiling) - { - return; - } - - // If MRTK has no active instance - // or there is no active profile for the active instance - // or we are instructed to not use service inspectors - // Return early and clean up any facade instances - if (!MixedRealityToolkit.IsInitialized || - !MixedRealityToolkit.Instance.HasActiveProfile || -#pragma warning disable 0618 - !MixedRealityToolkit.Instance.ActiveProfile.UseServiceInspectors) -#pragma warning restore 0618 - { - DestroyFacades(); - return; - } - } - - private static void DestroyFacades() - { - for (int i = ServiceFacade.ActiveFacadeObjects.Count - 1; i >= 0; i--) - { - var facade = ServiceFacade.ActiveFacadeObjects[i]; - if (facade != null) - { - GameObjectExtensions.DestroyGameObject(facade.gameObject); - } - } - - ServiceFacade.ActiveFacadeObjects.Clear(); - } - - private static void DestroyAllChildren(MixedRealityToolkit instance) - { - Transform instanceTransform = instance.transform; - - childrenToDelete.Clear(); - foreach (Transform child in instanceTransform.transform) - { - childrenToDelete.Add(child); - } - - foreach (ServiceFacade facade in ServiceFacade.ActiveFacadeObjects) - { - if (!childrenToDelete.Contains(facade.transform)) - { - childrenToDelete.Add(facade.transform); - } - } - - foreach (Transform child in childrenToDelete) - { - GameObjectExtensions.DestroyGameObject(child.gameObject); - } - - childrenToDelete.Clear(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs.meta deleted file mode 100644 index 7b9e2f789..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitFacadeHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3e5187c03457caa448ff3226ff038bb8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs deleted file mode 100644 index 2a4310f79..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor.Search; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(MixedRealityToolkit))] - public class MixedRealityToolkitInspector : UnityEditor.Editor - { - private SerializedProperty activeProfile; - - private void OnEnable() - { - activeProfile = serializedObject.FindProperty("activeProfile"); - } - - public override void OnInspectorGUI() - { - MixedRealityToolkit instance = (MixedRealityToolkit)target; - - if (MixedRealityToolkit.Instance == null && instance.isActiveAndEnabled) - { // See if an active instance exists at all. If it doesn't register this instance preemptively. - MixedRealityToolkit.SetActiveInstance(instance); - } - - if (!instance.IsActiveInstance) - { - EditorGUILayout.HelpBox("This instance of the toolkit is inactive. There can only be one active instance loaded at any time.", MessageType.Warning); - using (new EditorGUILayout.HorizontalScope()) - { - if (GUILayout.Button("Select Active Instance")) - { - UnityEditor.Selection.activeGameObject = MixedRealityToolkit.Instance.gameObject; - } - - if (GUILayout.Button("Make this the Active Instance")) - { - MixedRealityToolkit.SetActiveInstance(instance); - } - } - return; - } - - serializedObject.Update(); - - // If not profile is assigned, then warn user - if (activeProfile.objectReferenceValue == null) - { - EditorGUILayout.HelpBox("MixedRealityToolkit cannot initialize unless an Active Profile is assigned!", MessageType.Error); - } - - bool changed = MixedRealityInspectorUtility.DrawProfileDropDownList(activeProfile, null, activeProfile.objectReferenceValue, typeof(MixedRealityToolkitConfigurationProfile), false); - - serializedObject.ApplyModifiedProperties(); - - if (changed) - { - MixedRealityToolkit.Instance.ResetConfiguration((MixedRealityToolkitConfigurationProfile)activeProfile.objectReferenceValue); - } - - if (activeProfile.objectReferenceValue != null) - { - // For configure, show the default inspector GUI - UnityEditor.Editor activeProfileEditor = CreateEditor(activeProfile.objectReferenceValue); - activeProfileEditor.OnInspectorGUI(); - } - } - - [MenuItem("Mixed Reality Toolkit/Add to Scene and Configure...")] - public static void CreateMixedRealityToolkitGameObject() - { - MixedRealityInspectorUtility.AddMixedRealityToolkitToScene(); - Selection.activeObject = MixedRealityToolkit.Instance; - EditorGUIUtility.PingObject(MixedRealityToolkit.Instance); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs.meta deleted file mode 100644 index dccc0c829..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ba2e1a978ccd4cba83b89f5ff458e977 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs deleted file mode 100644 index 9f4b74c96..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A collection of shared functionality for MRTK shader GUIs. - /// - public static class MixedRealityToolkitShaderGUIUtilities - { - /// - /// GUI content styles which are common among shader GUIs. - /// - public static class Styles - { - public static readonly GUIContent DepthWriteWarning = new GUIContent("Warning: Depth buffer sharing is enabled for this project, but this material does not write depth. Enabling depth will improve reprojection, but may cause rendering artifacts in translucent materials."); - public static readonly GUIContent DepthWriteFixNowButton = new GUIContent("Fix Now", "Enables Depth Write For This Material"); - } - - /// - /// Displays a depth write warning and fix button if depth buffer sharing is enabled. - /// - /// The material editor to display the warning in. - /// The title of the dialog window to display when the user selects the fix button. - /// The message in the dialog window when the user selects the fix button. - /// True if the user opted to fix the warning, false otherwise. - public static bool DisplayDepthWriteWarning(MaterialEditor materialEditor, string dialogTitle = "Depth Write", string dialogMessage = "Change this material to write to the depth buffer?") - { - bool dialogConfirmed = false; - - if (MixedRealityOptimizeUtils.IsDepthBufferSharingEnabled()) - { - var defaultValue = EditorStyles.helpBox.richText; - EditorStyles.helpBox.richText = true; - - if (materialEditor.HelpBoxWithButton(Styles.DepthWriteWarning, Styles.DepthWriteFixNowButton)) - { - if (EditorUtility.DisplayDialog(dialogTitle, dialogMessage, "Yes", "No")) - { - dialogConfirmed = true; - } - } - - EditorStyles.helpBox.richText = defaultValue; - } - - return dialogConfirmed; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs.meta deleted file mode 100644 index 3acf040d9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityToolkitShaderGUIUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 97a49d6c607c32b449bb332cd755610d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs deleted file mode 100644 index c0c01e470..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom shader inspector for the "Mixed Reality Toolkit/Wireframe" shader. - /// - public class MixedRealityWireframeShaderGUI : MixedRealityShaderGUI - { - protected static class Styles - { - public static string mainPropertiesTitle = "Main Properties"; - public static string advancedOptionsTitle = "Advanced Options"; - - public static GUIContent baseColor = new GUIContent("Base Color", "Color of faces"); - public static GUIContent wireColor = new GUIContent("Wire Color", "Color of wires"); - public static GUIContent wireThickness = new GUIContent("Wire Thickness", "Thickness of wires"); - } - - protected MaterialProperty baseColor; - protected MaterialProperty wireColor; - protected MaterialProperty wireThickness; - - public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) - { - Material material = (Material)materialEditor.target; - - base.OnGUI(materialEditor, props); - - GUILayout.Label(Styles.mainPropertiesTitle, EditorStyles.boldLabel); - materialEditor.ShaderProperty(baseColor, Styles.baseColor); - materialEditor.ShaderProperty(wireColor, Styles.wireColor); - materialEditor.ShaderProperty(wireThickness, Styles.wireThickness); - - AdvancedOptions(materialEditor, material); - } - - protected override void FindProperties(MaterialProperty[] props) - { - base.FindProperties(props); - - baseColor = FindProperty("_BaseColor", props); - wireColor = FindProperty("_WireColor", props); - wireThickness = FindProperty("_WireThickness", props); - } - - public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) - { - float? cullMode = GetFloatProperty(material, "_Cull"); - - base.AssignNewShaderToMaterial(material, oldShader, newShader); - - SetShaderFeatureActive(material, null, BaseStyles.cullModeName, cullMode); - - // Setup the rendering mode based on the old shader. - if (oldShader == null || !oldShader.name.Contains(LegacyShadersPath)) - { - SetupMaterialWithRenderingMode(material, (RenderingMode)material.GetFloat(BaseStyles.renderingModeName), CustomRenderingMode.Opaque, -1); - } - else - { - RenderingMode mode = RenderingMode.Opaque; - - if (oldShader.name.Contains(TransparentCutoutShadersPath)) - { - mode = RenderingMode.Cutout; - } - else if (oldShader.name.Contains(TransparentShadersPath)) - { - mode = RenderingMode.Fade; - } - - material.SetFloat(BaseStyles.renderingModeName, (float)mode); - - MaterialChanged(material); - } - } - - protected void AdvancedOptions(MaterialEditor materialEditor, Material material) - { - GUILayout.Label(Styles.advancedOptionsTitle, EditorStyles.boldLabel); - - EditorGUI.BeginChangeCheck(); - - materialEditor.ShaderProperty(renderQueueOverride, BaseStyles.renderQueueOverride); - - if (EditorGUI.EndChangeCheck()) - { - MaterialChanged(material); - } - - // Show the RenderQueueField but do not allow users to directly manipulate it. That is done via the renderQueueOverride. - GUI.enabled = false; - materialEditor.RenderQueueField(); - GUI.enabled = true; - - materialEditor.EnableInstancingField(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs.meta deleted file mode 100644 index deccdda16..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/MixedRealityWireframeShaderGUI.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: beab471bae7ba484d8c3a51dc9c3cbf4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles.meta deleted file mode 100644 index d466f8d96..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 17f654b833624b21bdb7784f7d9a4ae8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs deleted file mode 100644 index c040f63a3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs +++ /dev/null @@ -1,205 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Linq; -using System.Text; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Base class for all Inspectors to inherit from. - /// - public abstract class BaseMixedRealityProfileInspector : UnityEditor.Editor - { - private static readonly StringBuilder dropdownKeyBuilder = new StringBuilder(); - - protected virtual void OnEnable() - { - if (target == null) - { - // Either when we are recompiling, or the inspector window is hidden behind another one, the target can get destroyed (null) and thereby will raise an ArgumentException when accessing serializedObject. For now, just return. - return; - } - } - - /// - /// Renders a non-editable object field and an editable dropdown of a profile. - /// - public static void RenderReadOnlyProfile(SerializedProperty property) - { - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUI.BeginDisabledGroup(true); - EditorGUILayout.ObjectField(property.objectReferenceValue != null ? "" : property.displayName, property.objectReferenceValue, typeof(BaseMixedRealityProfile), false, GUILayout.ExpandWidth(true)); - EditorGUI.EndDisabledGroup(); - } - - if (property.objectReferenceValue != null) - { - bool showReadOnlyProfile = SessionState.GetBool(property.name + ".ReadOnlyProfile", false); - - using (new EditorGUI.IndentLevelScope()) - { - RenderFoldout(ref showReadOnlyProfile, property.displayName, () => - { - using (new EditorGUI.IndentLevelScope()) - { - UnityEditor.Editor subProfileEditor = CreateEditor(property.objectReferenceValue); - // If this is a default MRTK configuration profile, ask it to render as a sub-profile - if (typeof(BaseMixedRealityToolkitConfigurationProfileInspector).IsAssignableFrom(subProfileEditor.GetType())) - { - BaseMixedRealityToolkitConfigurationProfileInspector configProfile = (BaseMixedRealityToolkitConfigurationProfileInspector)subProfileEditor; - configProfile.RenderAsSubProfile = true; - } - subProfileEditor.OnInspectorGUI(); - } - }); - } - - SessionState.SetBool(property.name + ".ReadOnlyProfile", showReadOnlyProfile); - } - } - - /// - /// Renders a . - /// - /// the property. - /// Profile type to filter available values to set on the provided property. If null, defaults to type - /// If true, draw the clone button, if false, don't - /// if true, render box around profile content, if false, don't - /// Optional service type to limit available profile types. - /// True, if the profile changed. - protected static bool RenderProfile(SerializedProperty property, Type profileType, bool showAddButton = true, bool renderProfileInBox = false, Type serviceType = null) - { - return RenderProfileInternal(property, profileType, showAddButton, renderProfileInBox, serviceType); - } - - /// - /// Renders a . - /// - /// the property. - /// If true, draw the clone button, if false, don't - /// if true, render box around profile content, if false, don't - /// Optional service type to limit available profile types. - /// True, if the profile changed. - private static bool RenderProfileInternal(SerializedProperty property, Type profileType, - bool showAddButton, bool renderProfileInBox, Type serviceType = null) - { - var profile = property.serializedObject.targetObject as BaseMixedRealityProfile; - bool changed = false; - var oldObject = property.objectReferenceValue; - - if (profileType != null && !profileType.IsSubclassOf(typeof(BaseMixedRealityProfile)) && profileType != typeof(BaseMixedRealityProfile)) - { - // If they've drag-and-dropped a non-profile scriptable object, set it to null. - profileType = null; - } - - // If we're constraining this to a service type, check whether the profile is valid - // If it isn't, issue a warning. - if (serviceType != null && oldObject != null) - { - if (!MixedRealityProfileUtility.IsProfileForService(oldObject.GetType(), serviceType)) - { - EditorGUILayout.HelpBox("This profile is not supported for " + serviceType.Name + ". Using an unsupported service may result in unexpected behavior.", MessageType.Warning); - } - } - - if (profileType == null) - { - // Find the profile type so we can limit the available object field options - if (serviceType != null) - { - // If GetProfileTypesForService has a count greater than one, then it won't be possible to use - // EditorGUILayout.ObjectField to restrict the set of profiles to a single type - in this - // case all profiles of BaseMixedRealityProfile will be visible in the picker. - // - // However in the case where there is just a single profile type for the service, we can improve - // upon the user experience by limiting the set of things that show in the picker by restricting - // the set of profiles listed to only that type. - var availableTypes = MixedRealityProfileUtility.GetProfileTypesForService(serviceType); - if (availableTypes.Count == 1) - { - profileType = availableTypes.First(); - } - } - - // If the profile type is still null, just set it to base profile type - if (profileType == null) - { - profileType = typeof(BaseMixedRealityProfile); - } - } - - // Draw the profile dropdown - changed |= MixedRealityInspectorUtility.DrawProfileDropDownList(property, profile, oldObject, profileType, showAddButton); - - Debug.Assert(profile != null, "No profile was set in OnEnable. Did you forget to call base.OnEnable in a derived profile class?"); - - // Draw the sub-profile editor - MixedRealityInspectorUtility.DrawSubProfileEditor(property.objectReferenceValue, renderProfileInBox); - - return changed; - } - - /// - /// Render Bold/HelpBox style Foldout - /// - /// reference bool for current visibility state of foldout - /// Title in foldout - /// code to execute to render inside of foldout - /// optional argument, current show/hide state will be tracked associated with provided preference key - protected static void RenderFoldout(ref bool currentState, string title, Action renderContent, string preferenceKey = null) - { - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - - bool isValidPreferenceKey = !string.IsNullOrEmpty(preferenceKey); - bool state = currentState; - if (isValidPreferenceKey) - { - state = SessionState.GetBool(preferenceKey, currentState); - } - - currentState = EditorGUILayout.Foldout(state, title, true, MixedRealityStylesUtility.BoldFoldoutStyle); - - if (isValidPreferenceKey && currentState != state) - { - SessionState.SetBool(preferenceKey, currentState); - } - - if (currentState) - { - renderContent(); - } - - EditorGUILayout.EndVertical(); - } - - private static string GetSubProfileDropdownKey(SerializedProperty property) - { - if (property.objectReferenceValue == null) - { - throw new Exception("Can't get sub profile dropdown key for a property that is null."); - } - - dropdownKeyBuilder.Clear(); - dropdownKeyBuilder.Append("MRTK_SubProfile_ShowDropdown_"); - dropdownKeyBuilder.Append(property.name); - dropdownKeyBuilder.Append("_"); - dropdownKeyBuilder.Append(property.objectReferenceValue.GetType().Name); - return dropdownKeyBuilder.ToString(); - } - - /// - /// Checks if the profile is locked - /// - protected static bool IsProfileLock(BaseMixedRealityProfile profile) - { - return MixedRealityProjectPreferences.LockProfiles && !profile.IsCustomProfile; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs.meta deleted file mode 100644 index 0b6f46bdf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 695870a3b55a4b5ca6885049aea1921f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs deleted file mode 100644 index 156b1efe4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs +++ /dev/null @@ -1,280 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor.Search; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Base class for all Mixed Reality Toolkit specific inspectors to inherit from. - /// - public abstract class BaseMixedRealityToolkitConfigurationProfileInspector : BaseMixedRealityProfileInspector - { - public bool RenderAsSubProfile { get; set; } - - private static GUIContent WarningIconContent = null; - - /// - /// Helper function to determine if the current profile is assigned to the active instance of MRTK. - /// In some cases profile data refers to other profile data in the MRTK config profile. - /// In these cases, we don't want to render when the active instance isn't using this profile, - /// because it may produce an inaccurate combination of settings. - /// - protected abstract bool IsProfileInActiveInstance(); - - /// - /// Internal enum used for back navigation along profile hierarchy. - /// Indicates what type of parent profile the current profile will return to for going back - /// - protected enum BackProfileType - { - Configuration, - Input, - SpatialAwareness, - RegisteredServices - }; - - // NOTE: Must match number of elements in BackProfileType - protected readonly string[] BackProfileDescriptions = { - "Back to Configuration Profile", - "Back to Input Profile", - "Back to Spatial Awareness Profile", - "Back to Registered Service Providers Profile" - }; - - protected virtual void Awake() - { - if (WarningIconContent == null) - { - WarningIconContent = new GUIContent(EditorGUIUtility.IconContent("console.warnicon").image, - "This profile is part of the default set from the Mixed Reality Toolkit SDK. You can make a copy of this profile, and customize it if needed."); - } - } - - /// - /// Render the Mixed Reality Toolkit Logo and search field. - /// - /// True if the rest of the inspector should be drawn. - protected bool RenderMRTKLogoAndSearch() - { - // If we're being rendered as a sub profile, don't show the logo - if (RenderAsSubProfile) - { - return true; - } - - if (MixedRealitySearchInspectorUtility.DrawSearchInterface(target)) - { - return false; - } - - MixedRealityInspectorUtility.RenderMixedRealityToolkitLogo(); - return true; - } - - /// - /// Draws a documentation link for the service. - /// - protected void RenderDocumentation(Object profileObject) - { - if (profileObject == null) - { // Can't proceed if profile is null. - return; - } - - HelpURLAttribute helpURL = profileObject.GetType().GetCustomAttribute(); - if (helpURL != null) - { - InspectorUIUtility.RenderDocumentationButton(helpURL.URL); - } - } - - protected bool DrawBacktrackProfileButton(BackProfileType returnProfileTarget = BackProfileType.Configuration) - { - // We cannot select the correct profile if there is no instance - if (!MixedRealityToolkit.IsInitialized) - { - return false; - } - - string backText = BackProfileDescriptions[(int)returnProfileTarget]; - BaseMixedRealityProfile backProfile = null; - switch (returnProfileTarget) - { - case BackProfileType.Configuration: - backProfile = MixedRealityToolkit.Instance.ActiveProfile; - break; - case BackProfileType.Input: - backProfile = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile; - break; - case BackProfileType.SpatialAwareness: - backProfile = MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile; - break; - case BackProfileType.RegisteredServices: - backProfile = MixedRealityToolkit.Instance.ActiveProfile.RegisteredServiceProvidersProfile; - break; - } - - return DrawBacktrackProfileButton(backText, backProfile); - } - - /// - /// Renders a button that will take user back to a specified profile object - /// - /// True if button was clicked - protected bool DrawBacktrackProfileButton(string message, UnityEngine.Object activeObject) - { - // If we're being rendered as a sub profile, don't show the button - if (RenderAsSubProfile) - { - return false; - } - - if (GUILayout.Button(message)) - { - Selection.activeObject = activeObject; - return true; - } - - return false; - } - - /// - /// Inspect the attributes of the provided system type to determine if a configuration profile is required. - /// - /// The system type representing the service. - /// - /// True if the service is decorated with an attribute indicating a profile is required, false otherwise. - /// - protected bool IsProfileRequired(SystemType serviceType) - { - // Services marked with the MixedRealityExtensionServiceAttribute (or a derivative) - // support specifying whether or not a profile is required. - MixedRealityExtensionServiceAttribute attribute = (serviceType?.Type != null) ? MixedRealityExtensionServiceAttribute.Find(serviceType.Type) : null; - - return ((attribute != null) && attribute.RequiresProfile); - } - - /// - /// Helper function to render header correctly for all profiles - /// - /// Title of profile - /// profile tooltip describing purpose - /// The profile object. Used to re-select the object after MRTK instance is created. - /// profile properties are full initialized for rendering - /// Text for back button if not rendering as sub-profile - /// Target profile to return to if not rendering as sub-profile - /// True if the rest of the profile should be rendered. - protected bool RenderProfileHeader(string title, string description, Object selectionObject, bool isProfileInitialized = true, BackProfileType returnProfileTarget = BackProfileType.Configuration) - { - if (!RenderMRTKLogoAndSearch()) - { - CheckEditorPlayMode(); - return false; - } - - var profile = target as BaseMixedRealityProfile; - if (!RenderAsSubProfile) - { - CheckEditorPlayMode(); - - if (!profile.IsCustomProfile) - { - EditorGUILayout.HelpBox("Default MRTK profiles cannot be edited. Create a clone of this profile to modify settings.", MessageType.Warning); - if (GUILayout.Button(new GUIContent("Clone"))) - { - MixedRealityProfileCloneWindow.OpenWindow(null, (BaseMixedRealityProfile)target, null); - } - } - - if (IsProfileInActiveInstance()) - { - DrawBacktrackProfileButton(returnProfileTarget); - } - - if (!isProfileInitialized) - { - if (!MixedRealityToolkit.IsInitialized) - { - EditorGUILayout.HelpBox("There is not a MRTK instance in your scene. Some properties may not be editable", MessageType.Error); - if (InspectorUIUtility.RenderIndentedButton(new GUIContent("Add Mixed Reality Toolkit instance to scene"), EditorStyles.miniButton)) - { - MixedRealityInspectorUtility.AddMixedRealityToolkitToScene(MixedRealityInspectorUtility.GetDefaultConfigProfile()); - // After the toolkit has been created, set the selection back to this item so the user doesn't get lost - Selection.activeObject = selectionObject; - } - } - else if (!MixedRealityToolkit.Instance.HasActiveProfile) - { - EditorGUILayout.HelpBox("There is no active profile assigned in the current MRTK instance. Some properties may not be editable.", MessageType.Error); - } - } - } - else - { - if (!isProfileInitialized && profile.IsCustomProfile) - { - EditorGUILayout.HelpBox("Some properties may not be editable in this profile. Please refer to the error messages below to resolve editing.", MessageType.Warning); - } - } - - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField(new GUIContent(title, description), EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - RenderDocumentation(selectionObject); - } - - EditorGUILayout.LabelField(string.Empty, GUI.skin.horizontalSlider); - - return true; - } - - /// - /// If application is playing, then show warning to the user and disable inspector GUI - /// - /// true if application is playing, false otherwise - protected bool CheckEditorPlayMode() - { - if (Application.isPlaying) - { - EditorGUILayout.HelpBox("Mixed Reality Toolkit settings cannot be edited while in play mode.", MessageType.Warning); - GUI.enabled = false; - return true; - } - - return false; - } - - /// - /// Check if various input settings are set correctly to read the input actions for the active MRTK instance. If any failures, show appropriate error message - /// - protected void CheckMixedRealityInputActions() - { - if (MixedRealityToolkit.IsInitialized && MixedRealityToolkit.Instance.HasActiveProfile) - { - if (!MixedRealityToolkit.Instance.ActiveProfile.IsInputSystemEnabled) - { - EditorGUILayout.HelpBox("No input system is enabled, or you need to specify the type in the main configuration profile.", MessageType.Warning); - } - - if (MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile == null) - { - EditorGUILayout.HelpBox("No input system profile found, please specify an input system profile in the main configuration.", MessageType.Error); - } - else if (MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile == null) - { - EditorGUILayout.HelpBox("No input actions profile found, please specify an input action profile in the main configuration.", MessageType.Error); - } - else if (!IsProfileInActiveInstance()) - { - EditorGUILayout.HelpBox("This profile is not assigned to the active MRTK instance in your scene. Some properties may not be editable", MessageType.Error); - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs.meta deleted file mode 100644 index 510156786..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/BaseMixedRealityToolkitConfigurationProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 19c8b3dc140744b1bb892aaf02032169 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs deleted file mode 100644 index 29b1cc2f4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Abstract class providing base functionality for data provider management in inspector. Useful for core systems that follow dataprovider access model. - /// Designed to target ScriptableObject profile classes that configure services who support data providers. - /// These profile ScriptableObject classes should contain an array of IMixedRealityServiceConfigurations that configure a list of data providers for this service configuration - /// - public abstract class BaseDataProviderServiceInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - /// - /// Container class used to store references to serialized properties on a target - /// - protected class ServiceConfigurationProperties - { - internal SerializedProperty componentName; - internal SerializedProperty componentType; - internal SerializedProperty providerProfile; - internal SerializedProperty runtimePlatform; - } - - /// - /// Returns SerializedProperty object that wraps references to array of stored on the inspected target object - /// - protected abstract SerializedProperty GetDataProviderConfigurationList(); - - /// - /// Builds container object with SerializedProperty references to associated properties on the supplied reference - /// - /// SerializedProperty reference pointing to instance - protected abstract ServiceConfigurationProperties GetDataProviderConfigurationProperties(SerializedProperty providerEntry); - - /// - /// Returns direct instance at provided index in target object's array of configurations - /// - protected abstract IMixedRealityServiceConfiguration GetDataProviderConfiguration(int index); - - private SerializedProperty providerConfigurations; - private List providerFoldouts = new List(); - - private static readonly GUIContent ComponentTypeLabel = new GUIContent("Type"); - private static readonly GUIContent SupportedPlatformsLabel = new GUIContent("Supported Platform(s)"); - - /// - protected override void OnEnable() - { - base.OnEnable(); - - providerConfigurations = GetDataProviderConfigurationList(); - - if (providerFoldouts == null || providerFoldouts.Count != providerConfigurations.arraySize) - { - providerFoldouts = new List(new bool[providerConfigurations.arraySize]); - } - } - - /// - /// Adds a new data provider profile entry (i.e ) to array list of target object - /// Utilizes GetDataProviderConfigurationList() to get SerializedProperty object that represents array to insert against - /// - protected virtual void AddDataProvider() - { - providerConfigurations.InsertArrayElementAtIndex(providerConfigurations.arraySize); - SerializedProperty provider = providerConfigurations.GetArrayElementAtIndex(providerConfigurations.arraySize - 1); - - var providerProperties = GetDataProviderConfigurationProperties(provider); - providerProperties.componentName.stringValue = $"New data provider {providerConfigurations.arraySize - 1}"; - providerProperties.runtimePlatform.intValue = -1; - providerProperties.providerProfile.objectReferenceValue = null; - - serializedObject.ApplyModifiedProperties(); - - var providerType = GetDataProviderConfiguration(providerConfigurations.arraySize - 1).ComponentType; - providerType.Type = null; - - providerFoldouts.Add(false); - } - - /// - /// Removed given index item from array list. - /// Utilizes GetDataProviderConfigurationList() to get SerializedProperty object that represents array to delete against. - /// - protected virtual void RemoveDataProvider(int index) - { - providerConfigurations.DeleteArrayElementAtIndex(index); - serializedObject.ApplyModifiedProperties(); - - providerFoldouts.RemoveAt(index); - } - - /// - /// Applies the given concrete dataprovider type properties to the provided instance (as represented by ). - /// Requires on concrete type class to pull initial values - /// that will be applied to the container SerializedProperties - /// - protected virtual void ApplyProviderConfiguration(Type dataProviderType, ServiceConfigurationProperties providerProperties) - { - if (dataProviderType != null) - { - MixedRealityDataProviderAttribute providerAttribute = MixedRealityDataProviderAttribute.Find(dataProviderType) as MixedRealityDataProviderAttribute; - if (providerAttribute != null) - { - providerProperties.componentName.stringValue = !string.IsNullOrWhiteSpace(providerAttribute.Name) ? providerAttribute.Name : dataProviderType.Name; - providerProperties.providerProfile.objectReferenceValue = providerAttribute.DefaultProfile; - providerProperties.runtimePlatform.intValue = (int)providerAttribute.RuntimePlatforms; - } - else - { - providerProperties.componentName.stringValue = dataProviderType.Name; - } - - serializedObject.ApplyModifiedProperties(); - } - } - - /// - /// Render list of data provider configuration profiles in inspector. Use provided add and remove content labels for the insert/remove buttons - /// Returns true if any property has changed in this render pass, false otherwise - /// - protected bool RenderDataProviderList(GUIContent addContentLabel, GUIContent removeContentLabel, string errorMsg, Type dataProviderProfileType = null) - { - bool changed = false; - - using (new EditorGUILayout.VerticalScope()) - { - if (providerConfigurations == null || providerConfigurations.arraySize == 0) - { - EditorGUILayout.HelpBox(errorMsg, MessageType.Info); - } - - if (InspectorUIUtility.RenderIndentedButton(addContentLabel, EditorStyles.miniButton)) - { - AddDataProvider(); - return true; - } - - for (int i = 0; i < providerConfigurations.arraySize; i++) - { - changed |= RenderDataProviderEntry(i, removeContentLabel, dataProviderProfileType); - } - - return changed; - } - } - - /// - /// Renders properties of instance at provided index in inspector. - /// Also renders inspector view of data provider's profile object and its contents if applicable and foldout is expanded. - /// - protected bool RenderDataProviderEntry(int index, GUIContent removeContent, System.Type dataProviderProfileType = null) - { - bool changed = false; - SerializedProperty provider = providerConfigurations.GetArrayElementAtIndex(index); - ServiceConfigurationProperties providerProperties = GetDataProviderConfigurationProperties(provider); - - var serviceType = GetDataProviderConfiguration(index).ComponentType; - - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - using (new EditorGUILayout.HorizontalScope()) - { - providerFoldouts[index] = EditorGUILayout.Foldout(providerFoldouts[index], providerProperties.componentName.stringValue, true); - - if (GUILayout.Button(removeContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - RemoveDataProvider(index); - return true; - } - } - - if (providerFoldouts[index]) - { - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(providerProperties.componentType, ComponentTypeLabel); - if (c.changed) - { - serializedObject.ApplyModifiedProperties(); - ApplyProviderConfiguration(serviceType.Type, providerProperties); - return true; - } - - EditorGUILayout.PropertyField(providerProperties.runtimePlatform, SupportedPlatformsLabel); - changed = c.changed; - } - - changed |= RenderProfile(providerProperties.providerProfile, dataProviderProfileType, true, false, serviceType); - - serializedObject.ApplyModifiedProperties(); - } - - if (IsProfileRequired(serviceType) && - (providerProperties.providerProfile.objectReferenceValue == null)) - { - EditorGUILayout.HelpBox($"{providerProperties.componentName.stringValue} requires a profile.", MessageType.Warning); - } - } - - return changed; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs.meta deleted file mode 100644 index 96d87ac3b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/DataProviderAccessServiceInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9e4e9344957d87e4faa7aadf356d70f3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs deleted file mode 100644 index a6f9318a5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Boundary.Editor -{ - [CustomEditor(typeof(MixedRealityBoundaryVisualizationProfile))] - public class MixedRealityBoundaryVisualizationProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private SerializedProperty boundaryHeight; - - private SerializedProperty showFloor; - private SerializedProperty floorMaterial; - private SerializedProperty floorScale; - private SerializedProperty floorPhysicsLayer; - - private SerializedProperty showPlayArea; - private SerializedProperty playAreaMaterial; - private SerializedProperty playAreaPhysicsLayer; - - private SerializedProperty showTrackedArea; - private SerializedProperty trackedAreaMaterial; - private SerializedProperty trackedAreaPhysicsLayer; - - private SerializedProperty showBoundaryWalls; - private SerializedProperty boundaryWallMaterial; - private SerializedProperty boundaryWallsPhysicsLayer; - - private SerializedProperty showBoundaryCeiling; - private SerializedProperty boundaryCeilingMaterial; - private SerializedProperty ceilingPhysicsLayer; - - private const string ProfileTitle = "Boundary Visualization Settings"; - private const string ProfileDescription = "Boundary visualizations can help users stay oriented and comfortable in the experience."; - - private readonly GUIContent showContent = new GUIContent("Show"); - private readonly GUIContent scaleContent = new GUIContent("Scale"); - private readonly GUIContent materialContent = new GUIContent("Material"); - - protected override void OnEnable() - { - base.OnEnable(); - - boundaryHeight = serializedObject.FindProperty("boundaryHeight"); - - showFloor = serializedObject.FindProperty("showFloor"); - floorMaterial = serializedObject.FindProperty("floorMaterial"); - floorScale = serializedObject.FindProperty("floorScale"); - floorPhysicsLayer = serializedObject.FindProperty("floorPhysicsLayer"); - - showPlayArea = serializedObject.FindProperty("showPlayArea"); - playAreaMaterial = serializedObject.FindProperty("playAreaMaterial"); - playAreaPhysicsLayer = serializedObject.FindProperty("playAreaPhysicsLayer"); - - showTrackedArea = serializedObject.FindProperty("showTrackedArea"); - trackedAreaMaterial = serializedObject.FindProperty("trackedAreaMaterial"); - trackedAreaPhysicsLayer = serializedObject.FindProperty("trackedAreaPhysicsLayer"); - - showBoundaryWalls = serializedObject.FindProperty("showBoundaryWalls"); - boundaryWallMaterial = serializedObject.FindProperty("boundaryWallMaterial"); - boundaryWallsPhysicsLayer = serializedObject.FindProperty("boundaryWallsPhysicsLayer"); - - showBoundaryCeiling = serializedObject.FindProperty("showBoundaryCeiling"); - boundaryCeilingMaterial = serializedObject.FindProperty("boundaryCeilingMaterial"); - ceilingPhysicsLayer = serializedObject.FindProperty("ceilingPhysicsLayer"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("General Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(boundaryHeight); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Floor Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showFloor, showContent); - EditorGUILayout.PropertyField(floorMaterial, materialContent); - var prevWideMode = EditorGUIUtility.wideMode; - EditorGUIUtility.wideMode = true; - EditorGUILayout.PropertyField(floorScale, scaleContent, GUILayout.ExpandWidth(true)); - EditorGUIUtility.wideMode = prevWideMode; - EditorGUILayout.PropertyField(floorPhysicsLayer); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Play Area Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showPlayArea, showContent); - EditorGUILayout.PropertyField(playAreaMaterial, materialContent); - EditorGUILayout.PropertyField(playAreaPhysicsLayer); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Tracked Area Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showTrackedArea, showContent); - EditorGUILayout.PropertyField(trackedAreaMaterial, materialContent); - EditorGUILayout.PropertyField(trackedAreaPhysicsLayer); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Boundary Wall Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showBoundaryWalls, showContent); - EditorGUILayout.PropertyField(boundaryWallMaterial, materialContent); - EditorGUILayout.PropertyField(boundaryWallsPhysicsLayer); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Boundary Ceiling Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showBoundaryCeiling, showContent); - EditorGUILayout.PropertyField(boundaryCeilingMaterial, materialContent); - EditorGUILayout.PropertyField(ceilingPhysicsLayer); - } - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.BoundaryVisualizationProfile; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs.meta deleted file mode 100644 index 1d9400e60..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityBoundaryVisualizationProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d44f14e15b3447f4846c13ca5c82129c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs deleted file mode 100644 index 2deb94374..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Class handles rendering inspector view of MixedRealityCameraProfile object - /// - [CustomEditor(typeof(MixedRealityCameraProfile))] - public class MixedRealityCameraProfileInspector : BaseDataProviderServiceInspector - { - private bool showProviders = false; - private const string showProvidersPreferenceKey = "ShowCameraSystem_DataProviders_PreferenceKey"; - - private bool showDisplaySettings = false; - private const string showDisplaySettingsPreferenceKey = "ShowCameraSystem_DisplaySettings_PreferenceKey"; - - private SerializedProperty opaqueNearClip; - private SerializedProperty opaqueFarClip; - private SerializedProperty opaqueClearFlags; - private SerializedProperty opaqueBackgroundColor; - private SerializedProperty opaqueQualityLevel; - - private SerializedProperty transparentNearClip; - private SerializedProperty transparentFarClip; - private SerializedProperty transparentClearFlags; - private SerializedProperty transparentBackgroundColor; - private SerializedProperty transparentQualityLevel; - - private const string DataProviderErrorMsg = "The Mixed Reality Camera System will use default settings.\nAdd a settings provider to customize the camera."; - private static readonly GUIContent AddProviderTitle = new GUIContent("+ Add Camera Settings Provider", "Add Camera Settings Provider"); - private static readonly GUIContent RemoveProviderTitle = new GUIContent("-", "Remove Camera Settings Provider"); - - private readonly GUIContent nearClipTitle = new GUIContent("Near Clip"); - private readonly GUIContent farClipTitle = new GUIContent("Far Clip"); - private readonly GUIContent clearFlagsTitle = new GUIContent("Clear Flags"); - private readonly GUIContent backgroundColorTitle = new GUIContent("Background Color"); - - private const string profileTitle = "Camera Settings"; - private const string profileDescription = "The Camera Profile helps configure cross platform camera settings."; - - /// - protected override void OnEnable() - { - base.OnEnable(); - - opaqueNearClip = serializedObject.FindProperty("nearClipPlaneOpaqueDisplay"); - opaqueFarClip = serializedObject.FindProperty("farClipPlaneOpaqueDisplay"); - opaqueClearFlags = serializedObject.FindProperty("cameraClearFlagsOpaqueDisplay"); - opaqueBackgroundColor = serializedObject.FindProperty("backgroundColorOpaqueDisplay"); - opaqueQualityLevel = serializedObject.FindProperty("opaqueQualityLevel"); - - transparentNearClip = serializedObject.FindProperty("nearClipPlaneTransparentDisplay"); - transparentFarClip = serializedObject.FindProperty("farClipPlaneTransparentDisplay"); - transparentClearFlags = serializedObject.FindProperty("cameraClearFlagsTransparentDisplay"); - transparentBackgroundColor = serializedObject.FindProperty("backgroundColorTransparentDisplay"); - transparentQualityLevel = serializedObject.FindProperty("transparentQualityLevel"); - } - - /// - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(profileTitle, profileDescription, target)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - RenderFoldout(ref showProviders, "Camera Settings Providers", () => - { - using (new EditorGUI.IndentLevelScope()) - { - bool changed = RenderDataProviderList(AddProviderTitle, RemoveProviderTitle, DataProviderErrorMsg, typeof(BaseCameraSettingsProfile)); - - if (changed && MixedRealityToolkit.IsInitialized) - { - EditorApplication.delayCall += () => MixedRealityToolkit.Instance.ResetConfiguration(MixedRealityToolkit.Instance.ActiveProfile); - } - } - }, showProvidersPreferenceKey); - - RenderFoldout(ref showDisplaySettings, "Display Settings", () => - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.LabelField("Opaque", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(opaqueNearClip, nearClipTitle); - EditorGUILayout.PropertyField(opaqueFarClip, farClipTitle); - EditorGUILayout.PropertyField(opaqueClearFlags, clearFlagsTitle); - - if ((CameraClearFlags)opaqueClearFlags.intValue == CameraClearFlags.Color) - { - EditorGUILayout.PropertyField(opaqueBackgroundColor, backgroundColorTitle); - } - - opaqueQualityLevel.intValue = EditorGUILayout.Popup("Quality Setting", opaqueQualityLevel.intValue, QualitySettings.names); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Transparent", EditorStyles.boldLabel); - - EditorGUILayout.PropertyField(transparentNearClip, nearClipTitle); - EditorGUILayout.PropertyField(transparentFarClip, farClipTitle); - EditorGUILayout.PropertyField(transparentClearFlags, clearFlagsTitle); - - if ((CameraClearFlags)transparentClearFlags.intValue == CameraClearFlags.Color) - { - EditorGUILayout.PropertyField(transparentBackgroundColor, backgroundColorTitle); - } - - transparentQualityLevel.intValue = EditorGUILayout.Popup("Quality Setting", transparentQualityLevel.intValue, QualitySettings.names); - } - }, showDisplaySettingsPreferenceKey); - - serializedObject.ApplyModifiedProperties(); - } - } - - /// - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - profile == MixedRealityToolkit.Instance.ActiveProfile.CameraProfile; - } - - #region DataProvider Inspector Utilities - - /// - protected override SerializedProperty GetDataProviderConfigurationList() - { - return serializedObject.FindProperty("settingsConfigurations"); - } - - /// - protected override ServiceConfigurationProperties GetDataProviderConfigurationProperties(SerializedProperty providerEntry) - { - return new ServiceConfigurationProperties() - { - componentName = providerEntry.FindPropertyRelative("componentName"), - componentType = providerEntry.FindPropertyRelative("componentType"), - providerProfile = providerEntry.FindPropertyRelative("settingsProfile"), - runtimePlatform = providerEntry.FindPropertyRelative("runtimePlatform"), - }; - } - - /// - protected override IMixedRealityServiceConfiguration GetDataProviderConfiguration(int index) - { - var configurations = (target as MixedRealityCameraProfile)?.SettingsConfigurations; - if (configurations != null && index >= 0 && index < configurations.Length) - { - return configurations[index]; - } - - return null; - } - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs.meta deleted file mode 100644 index 71ef56944..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2c3efa79d92745718c99c2cbb0bffb78 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs deleted file mode 100644 index af50145a7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs +++ /dev/null @@ -1,361 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using Microsoft.MixedReality.Toolkit.Input.UnityInput; -using System; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.Editor; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(MixedRealityControllerMappingProfile))] - public class MixedRealityControllerMappingProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private readonly struct ControllerMappingSignature - { - public SupportedControllerType SupportedControllerType { get; } - public Handedness Handedness { get; } - - public ControllerMappingSignature(SupportedControllerType supportedControllerType, Handedness handedness) - { - SupportedControllerType = supportedControllerType; - Handedness = handedness; - } - } - - private struct ControllerRenderProfile - { - public SupportedControllerType SupportedControllerType; - public Handedness Handedness; - public MixedRealityInteractionMapping[] Interactions; - - public ControllerRenderProfile(SupportedControllerType supportedControllerType, Handedness handedness, MixedRealityInteractionMapping[] interactions) - { - SupportedControllerType = supportedControllerType; - Handedness = handedness; - Interactions = interactions; - } - } - - private static readonly GUIContent ControllerAddButtonContent = new GUIContent("+ Add a New Controller Definition"); - private static readonly GUIContent ControllerMinusButtonContent = new GUIContent("-", "Remove Controller Definition"); - private static readonly GUIContent GenericTypeContent = new GUIContent("Generic Type"); - private static readonly GUIContent HandednessTypeContent = new GUIContent("Handedness"); - - private static MixedRealityControllerMappingProfile thisProfile; - - private SerializedProperty mixedRealityControllerMappings; - - private static bool showControllerDefinitions = false; - - private const string ProfileTitle = "Controller Input Mapping Settings"; - private const string ProfileDescription = "Use this profile to define all the controllers and their inputs your users will be able to use in your application.\n\n" + - "You'll want to define all your Input Actions first. They can then be wired up to hardware sensors, controllers, gestures, and other input devices."; - - private readonly List controllerRenderList = new List(); - - protected override void OnEnable() - { - base.OnEnable(); - - mixedRealityControllerMappings = serializedObject.FindProperty("mixedRealityControllerMappings"); - thisProfile = target as MixedRealityControllerMappingProfile; - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.Input)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - RenderControllerList(mixedRealityControllerMappings); - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.ControllerMappingProfile; - } - - private void RenderControllerList(SerializedProperty controllerList) - { - if (thisProfile.MixedRealityControllerMappings.Length != controllerList.arraySize) { return; } - - if (InspectorUIUtility.RenderIndentedButton(ControllerAddButtonContent, EditorStyles.miniButton)) - { - AddController(controllerList, typeof(GenericJoystickController)); - return; - } - - controllerRenderList.Clear(); - - // Generating the set of controllers that belong to each Controller Mapping Signature - Dictionary> controllersAffectedByMappingSignatures = new Dictionary>(); - for (int i = 0; i < thisProfile.MixedRealityControllerMappings.Length; i++) - { - MixedRealityControllerMapping controllerMapping = thisProfile.MixedRealityControllerMappings[i]; - Type controllerType = controllerMapping.ControllerType; - if (controllerType == null) { continue; } - - Handedness handedness = controllerMapping.Handedness; - bool useCustomInteractionMappings = controllerMapping.HasCustomInteractionMappings; - SupportedControllerType supportedControllerType = controllerMapping.SupportedControllerType; - - var controllerMappingProperty = controllerList.GetArrayElementAtIndex(i); - var handednessProperty = controllerMappingProperty.FindPropertyRelative("handedness"); - - ControllerMappingSignature currentSignature = new ControllerMappingSignature(supportedControllerType, handedness); - if(!controllersAffectedByMappingSignatures.ContainsKey(currentSignature)) - { - controllersAffectedByMappingSignatures.Add(currentSignature, new List()); - } - controllersAffectedByMappingSignatures[currentSignature].Add(controllerType.ToString()); - } - - showControllerDefinitions = EditorGUILayout.Foldout(showControllerDefinitions, "Controller Definitions", true); - if (showControllerDefinitions) - { - using (var outerVerticalScope = new GUILayout.VerticalScope()) - { - GUILayout.HorizontalScope horizontalScope = null; - - for (int i = 0; i < thisProfile.MixedRealityControllerMappings.Length; i++) - { - MixedRealityControllerMapping controllerMapping = thisProfile.MixedRealityControllerMappings[i]; - Type controllerType = controllerMapping.ControllerType; - if (controllerType == null) { continue; } - - Handedness handedness = controllerMapping.Handedness; - bool useCustomInteractionMappings = controllerMapping.HasCustomInteractionMappings; - SupportedControllerType supportedControllerType = controllerMapping.SupportedControllerType; - - var controllerMappingProperty = controllerList.GetArrayElementAtIndex(i); - var handednessProperty = controllerMappingProperty.FindPropertyRelative("handedness"); - - #region Profile Migration - - // Between MRTK v2 RC2 and GA, the HoloLens clicker and HoloLens voice select input were migrated from - // SupportedControllerType.WindowsMixedReality && Handedness.None to SupportedControllerType.GGVHand && Handedness.None - if (supportedControllerType == SupportedControllerType.WindowsMixedReality && handedness == Handedness.None) - { - for (int j = 0; j < thisProfile.MixedRealityControllerMappings.Length; j++) - { - if (thisProfile.MixedRealityControllerMappings[j].SupportedControllerType == SupportedControllerType.GGVHand && - thisProfile.MixedRealityControllerMappings[j].Handedness == Handedness.None) - { - if (horizontalScope != null) { horizontalScope.Dispose(); horizontalScope = null; } - - serializedObject.ApplyModifiedProperties(); - - for (int k = 0; k < controllerMapping.Interactions.Length; k++) - { - MixedRealityInteractionMapping currentMapping = controllerMapping.Interactions[k]; - - if (currentMapping.InputType == DeviceInputType.Select) - { - thisProfile.MixedRealityControllerMappings[j].Interactions[0].MixedRealityInputAction = currentMapping.MixedRealityInputAction; - } - else if (currentMapping.InputType == DeviceInputType.SpatialGrip) - { - thisProfile.MixedRealityControllerMappings[j].Interactions[1].MixedRealityInputAction = currentMapping.MixedRealityInputAction; - } - } - - serializedObject.Update(); - controllerList.DeleteArrayElementAtIndex(i); - EditorUtility.DisplayDialog("Mappings updated", "The \"HoloLens Voice and Clicker\" mappings have been migrated to a new serialization. Please save this asset.", "Okay, thanks!"); - return; - } - } - } - - #endregion Profile Migration - - if (!useCustomInteractionMappings) - { - bool skip = false; - - // Merge controllers with the same supported controller type. - for (int j = 0; j < controllerRenderList.Count; j++) - { - if (controllerRenderList[j].SupportedControllerType == supportedControllerType && - controllerRenderList[j].Handedness == handedness) - { - try - { - thisProfile.MixedRealityControllerMappings[i].SynchronizeInputActions(controllerRenderList[j].Interactions); - } - catch (ArgumentException e) - { - Debug.LogError($"Controller mappings between {thisProfile.MixedRealityControllerMappings[i].Description} and {controllerMapping.Description} do not match. Error message: {e.Message}"); - } - serializedObject.ApplyModifiedProperties(); - skip = true; - } - } - - if (skip) { continue; } - } - - controllerRenderList.Add(new ControllerRenderProfile(supportedControllerType, handedness, thisProfile.MixedRealityControllerMappings[i].Interactions)); - - string controllerTitle = thisProfile.MixedRealityControllerMappings[i].Description; - var interactionsProperty = controllerMappingProperty.FindPropertyRelative("interactions"); - - if (useCustomInteractionMappings) - { - if (horizontalScope != null) { horizontalScope.Dispose(); horizontalScope = null; } - - GUILayout.Space(24f); - - using (var verticalScope = new GUILayout.VerticalScope()) - { - using (horizontalScope = new GUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField(controllerTitle, EditorStyles.boldLabel); - - if (GUILayout.Button(ControllerMinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - controllerList.DeleteArrayElementAtIndex(i); - return; - } - } - - EditorGUI.BeginChangeCheck(); - - // Generic Type dropdown - Type[] genericTypes = MixedRealityControllerMappingProfile.CustomControllerMappingTypes; - var genericTypeListContent = new GUIContent[genericTypes.Length]; - var genericTypeListIds = new int[genericTypes.Length]; - int currentGenericType = -1; - for (int genericTypeIdx = 0; genericTypeIdx < genericTypes.Length; genericTypeIdx++) - { - var attribute = MixedRealityControllerAttribute.Find(genericTypes[genericTypeIdx]); - if (attribute != null) - { - genericTypeListContent[genericTypeIdx] = new GUIContent(attribute.SupportedControllerType.ToString().Replace("Generic", "").ToProperCase() + " Controller"); - } - else - { - genericTypeListContent[genericTypeIdx] = new GUIContent("Unknown Controller"); - } - - genericTypeListIds[genericTypeIdx] = genericTypeIdx; - - if (controllerType == genericTypes[genericTypeIdx]) - { - currentGenericType = genericTypeIdx; - } - } - Debug.Assert(currentGenericType != -1); - - currentGenericType = EditorGUILayout.IntPopup(GenericTypeContent, currentGenericType, genericTypeListContent, genericTypeListIds); - controllerType = genericTypes[currentGenericType]; - - { - // Handedness dropdown - var attribute = MixedRealityControllerAttribute.Find(controllerType); - if (attribute != null && attribute.SupportedHandedness.Length >= 1) - { - // Make sure handedness is valid for the selected controller type. - if (Array.IndexOf(attribute.SupportedHandedness, (Handedness)handednessProperty.intValue) < 0) - { - handednessProperty.intValue = (int)attribute.SupportedHandedness[0]; - } - - if (attribute.SupportedHandedness.Length >= 2) - { - var handednessListContent = new GUIContent[attribute.SupportedHandedness.Length]; - var handednessListIds = new int[attribute.SupportedHandedness.Length]; - for (int handednessIdx = 0; handednessIdx < attribute.SupportedHandedness.Length; handednessIdx++) - { - handednessListContent[handednessIdx] = new GUIContent(attribute.SupportedHandedness[handednessIdx].ToString()); - handednessListIds[handednessIdx] = (int)attribute.SupportedHandedness[handednessIdx]; - } - - handednessProperty.intValue = EditorGUILayout.IntPopup(HandednessTypeContent, handednessProperty.intValue, handednessListContent, handednessListIds); - } - } - else - { - handednessProperty.intValue = (int)Handedness.None; - } - } - - if (EditorGUI.EndChangeCheck()) - { - interactionsProperty.ClearArray(); - serializedObject.ApplyModifiedProperties(); - thisProfile.MixedRealityControllerMappings[i].ControllerType.Type = genericTypes[currentGenericType]; - thisProfile.MixedRealityControllerMappings[i].SetDefaultInteractionMapping(true); - serializedObject.ApplyModifiedProperties(); - return; - } - - if (InspectorUIUtility.RenderIndentedButton("Edit Input Action Map")) - { - ControllerPopupWindow.Show(controllerMapping, interactionsProperty, handedness); - } - - if (InspectorUIUtility.RenderIndentedButton("Reset Input Actions")) - { - interactionsProperty.ClearArray(); - serializedObject.ApplyModifiedProperties(); - thisProfile.MixedRealityControllerMappings[i].SetDefaultInteractionMapping(true); - serializedObject.ApplyModifiedProperties(); - } - } - } - else - { - if (handedness != Handedness.Right) - { - if (horizontalScope != null) { horizontalScope.Dispose(); horizontalScope = null; } - horizontalScope = new GUILayout.HorizontalScope(); - } - - var buttonContent = new GUIContent(controllerTitle, ControllerMappingLibrary.GetControllerTextureScaled(controllerType, handedness)); - - if (GUILayout.Button(buttonContent, MixedRealityStylesUtility.ControllerButtonStyle, GUILayout.Height(128f), GUILayout.MinWidth(32f), GUILayout.ExpandWidth(true))) - { - ControllerMappingSignature buttonSignature = new ControllerMappingSignature(supportedControllerType, handedness); - ControllerPopupWindow.Show(controllerMapping, interactionsProperty, handedness, controllersAffectedByMappingSignatures[buttonSignature]); - } - } - } - - if (horizontalScope != null) { horizontalScope.Dispose(); horizontalScope = null; } - } - } - } - - private void AddController(SerializedProperty controllerList, Type controllerType) - { - controllerList.InsertArrayElementAtIndex(controllerList.arraySize); - var index = controllerList.arraySize - 1; - var mixedRealityControllerMapping = controllerList.GetArrayElementAtIndex(index); - var handednessProperty = mixedRealityControllerMapping.FindPropertyRelative("handedness"); - handednessProperty.intValue = (int)Handedness.None; - var interactionsProperty = mixedRealityControllerMapping.FindPropertyRelative("interactions"); - interactionsProperty.ClearArray(); - serializedObject.ApplyModifiedProperties(); - thisProfile.MixedRealityControllerMappings[index].ControllerType.Type = controllerType; - thisProfile.MixedRealityControllerMappings[index].SetDefaultInteractionMapping(true); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs.meta deleted file mode 100644 index 9bf38be3a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f3febf47bc78475ea1ed698283efd91a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs deleted file mode 100644 index f70b996ff..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using Microsoft.MixedReality.Toolkit.Input.UnityInput; -using UnityEditor; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.Editor; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(MixedRealityControllerVisualizationProfile))] - public class MixedRealityControllerVisualizationProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent ControllerAddButtonContent = new GUIContent("+ Add a New Controller Definition"); - private static readonly GUIContent ControllerMinusButtonContent = new GUIContent("-", "Remove Controller Definition"); - - private static readonly GUIContent[] HandednessSelections = - { - new GUIContent("Left Hand"), - new GUIContent("Right Hand"), - }; - - private SerializedProperty renderMotionControllers; - private SerializedProperty defaultControllerVisualizationType; - - private SerializedProperty useDefaultModels; - private SerializedProperty defaultControllerModelMaterial; - private SerializedProperty globalLeftHandedControllerModel; - private SerializedProperty globalRightHandedControllerModel; - private SerializedProperty globalLeftHandModel; - private SerializedProperty globalRightHandModel; - - private static bool showControllerDefinitions = true; - private SerializedProperty controllerVisualizationSettings; - - private MixedRealityControllerVisualizationProfile thisProfile; - - private float defaultLabelWidth; - private float defaultFieldWidth; - - private const string ProfileTitle = "Controller Visualization Settings"; - private const string ProfileDescription = "Define all the custom controller visualizations you'd like to use for each controller type when they're rendered in the scene.\n\n" + - "Global settings are the default fallback, and any specific controller definitions take precedence."; - - protected override void OnEnable() - { - base.OnEnable(); - - defaultLabelWidth = EditorGUIUtility.labelWidth; - defaultFieldWidth = EditorGUIUtility.fieldWidth; - - thisProfile = target as MixedRealityControllerVisualizationProfile; - - renderMotionControllers = serializedObject.FindProperty("renderMotionControllers"); - defaultControllerVisualizationType = serializedObject.FindProperty("defaultControllerVisualizationType"); - useDefaultModels = serializedObject.FindProperty("useDefaultModels"); - defaultControllerModelMaterial = serializedObject.FindProperty("defaultControllerModelMaterial"); - globalLeftHandedControllerModel = serializedObject.FindProperty("globalLeftControllerModel"); - globalRightHandedControllerModel = serializedObject.FindProperty("globalRightControllerModel"); - globalLeftHandModel = serializedObject.FindProperty("globalLeftHandVisualizer"); - globalRightHandModel = serializedObject.FindProperty("globalRightHandVisualizer"); - controllerVisualizationSettings = serializedObject.FindProperty("controllerVisualizationSettings"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.Input)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.LabelField("Visualization Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(renderMotionControllers); - - EditorGUILayout.PropertyField(defaultControllerVisualizationType); - - if (thisProfile.DefaultControllerVisualizationType == null || - thisProfile.DefaultControllerVisualizationType.Type == null) - { - EditorGUILayout.HelpBox("A default controller visualization type must be defined!", MessageType.Error); - } - } - - var leftHandModelPrefab = globalLeftHandedControllerModel.objectReferenceValue as GameObject; - var rightHandModelPrefab = globalRightHandedControllerModel.objectReferenceValue as GameObject; - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Controller Model Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(useDefaultModels); - EditorGUILayout.PropertyField(defaultControllerModelMaterial); - - if (useDefaultModels.boolValue && (leftHandModelPrefab != null || rightHandModelPrefab != null)) - { - EditorGUILayout.HelpBox("When default models are used, an attempt is made to obtain controller models from the platform SDK. The global left and right models are only shown if no model can be obtained.", MessageType.Warning); - } - - EditorGUI.BeginChangeCheck(); - leftHandModelPrefab = EditorGUILayout.ObjectField(new GUIContent(globalLeftHandedControllerModel.displayName, "Note: If the default model is not found, the fallback is the global left hand model."), leftHandModelPrefab, typeof(GameObject), false) as GameObject; - - if (EditorGUI.EndChangeCheck() && CheckVisualizer(leftHandModelPrefab)) - { - globalLeftHandedControllerModel.objectReferenceValue = leftHandModelPrefab; - } - - EditorGUI.BeginChangeCheck(); - rightHandModelPrefab = EditorGUILayout.ObjectField(new GUIContent(globalRightHandedControllerModel.displayName, "Note: If the default model is not found, the fallback is the global right hand model."), rightHandModelPrefab, typeof(GameObject), false) as GameObject; - - if (EditorGUI.EndChangeCheck() && CheckVisualizer(rightHandModelPrefab)) - { - globalRightHandedControllerModel.objectReferenceValue = rightHandModelPrefab; - } - - EditorGUILayout.PropertyField(globalLeftHandModel); - EditorGUILayout.PropertyField(globalRightHandModel); - } - - EditorGUIUtility.labelWidth = defaultLabelWidth; - - EditorGUILayout.Space(); - showControllerDefinitions = EditorGUILayout.Foldout(showControllerDefinitions, "Controller Definitions", true); - if (showControllerDefinitions) - { - using (new EditorGUI.IndentLevelScope()) - { - RenderControllerList(controllerVisualizationSettings); - } - } - - serializedObject.ApplyModifiedProperties(); - } - } - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.ControllerVisualizationProfile; - } - - private void RenderControllerList(SerializedProperty controllerList) - { - if (thisProfile.ControllerVisualizationSettings.Length != controllerList.arraySize) { return; } - - EditorGUILayout.Space(); - - if (InspectorUIUtility.RenderIndentedButton(ControllerAddButtonContent, EditorStyles.miniButton)) - { - controllerList.InsertArrayElementAtIndex(controllerList.arraySize); - var index = controllerList.arraySize - 1; - var controllerSetting = controllerList.GetArrayElementAtIndex(index); - - var mixedRealityControllerMappingDescription = controllerSetting.FindPropertyRelative("description"); - mixedRealityControllerMappingDescription.stringValue = typeof(GenericJoystickController).Name; - - var mixedRealityControllerHandedness = controllerSetting.FindPropertyRelative("handedness"); - mixedRealityControllerHandedness.intValue = 1; - - serializedObject.ApplyModifiedProperties(); - - thisProfile.ControllerVisualizationSettings[index].ControllerType.Type = typeof(GenericJoystickController); - return; - } - - for (int i = 0; i < controllerList.arraySize; i++) - { - EditorGUILayout.Space(); - EditorGUILayout.BeginHorizontal(); - - var controllerSetting = controllerList.GetArrayElementAtIndex(i); - var mixedRealityControllerMappingDescription = controllerSetting.FindPropertyRelative("description"); - bool hasValidType = thisProfile.ControllerVisualizationSettings[i].ControllerType != null && - thisProfile.ControllerVisualizationSettings[i].ControllerType.Type != null; - - mixedRealityControllerMappingDescription.stringValue = hasValidType - ? thisProfile.ControllerVisualizationSettings[i].ControllerType.Type.Name.ToProperCase() - : "Undefined Controller"; - - serializedObject.ApplyModifiedProperties(); - var mixedRealityControllerHandedness = controllerSetting.FindPropertyRelative("handedness"); - EditorGUILayout.LabelField($"{mixedRealityControllerMappingDescription.stringValue} {((Handedness)mixedRealityControllerHandedness.intValue).ToString().ToProperCase()} Hand", EditorStyles.boldLabel); - - if (GUILayout.Button(ControllerMinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - controllerList.DeleteArrayElementAtIndex(i); - EditorGUILayout.EndHorizontal(); - GUILayout.EndVertical(); - return; - } - - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.PropertyField(controllerSetting.FindPropertyRelative("controllerType")); - EditorGUILayout.PropertyField(controllerSetting.FindPropertyRelative("controllerVisualizationType")); - - if (!hasValidType) - { - EditorGUILayout.HelpBox("A controller type must be defined!", MessageType.Error); - } - - var handednessValue = mixedRealityControllerHandedness.intValue - 1; - - // Reset in case it was set to something other than left or right. - if (handednessValue < 0 || handednessValue > 1) { handednessValue = 0; } - - EditorGUI.BeginChangeCheck(); - handednessValue = EditorGUILayout.IntPopup(new GUIContent(mixedRealityControllerHandedness.displayName, mixedRealityControllerHandedness.tooltip), handednessValue, HandednessSelections, null); - - if (EditorGUI.EndChangeCheck()) - { - mixedRealityControllerHandedness.intValue = handednessValue + 1; - } - - var overrideModel = controllerSetting.FindPropertyRelative("overrideModel"); - var overrideModelPrefab = overrideModel.objectReferenceValue as GameObject; - - var controllerUseDefaultModelOverride = controllerSetting.FindPropertyRelative("useDefaultModel"); - - using (new GUILayout.HorizontalScope()) - { - EditorGUILayout.PropertyField(controllerUseDefaultModelOverride); - - var defaultModelMaterial = controllerSetting.FindPropertyRelative("defaultModelMaterial"); - EditorGUILayout.PropertyField(defaultModelMaterial); - } - - if (controllerUseDefaultModelOverride.boolValue && overrideModelPrefab != null) - { - EditorGUILayout.HelpBox("When default model is used, the override model will only be used if the default model cannot be loaded from the driver.", MessageType.Warning); - } - - EditorGUI.BeginChangeCheck(); - overrideModelPrefab = EditorGUILayout.ObjectField(new GUIContent(overrideModel.displayName, "If no override model is set, the global model is used."), overrideModelPrefab, typeof(GameObject), false) as GameObject; - - if (EditorGUI.EndChangeCheck() && CheckVisualizer(overrideModelPrefab)) - { - overrideModel.objectReferenceValue = overrideModelPrefab; - } - } - } - - private bool CheckVisualizer(GameObject modelPrefab) - { - if (modelPrefab == null) { return true; } - - if (PrefabUtility.GetPrefabAssetType(modelPrefab) == PrefabAssetType.NotAPrefab) - { - Debug.LogWarning("Assigned GameObject must be a prefab."); - return false; - } - - var componentList = modelPrefab.GetComponentsInChildren(); - - if (componentList == null || componentList.Length == 0) - { - if (thisProfile.DefaultControllerVisualizationType != null && - thisProfile.DefaultControllerVisualizationType.Type != null) - { - modelPrefab.AddComponent(thisProfile.DefaultControllerVisualizationType.Type); - return true; - } - - Debug.LogError("No controller visualization type specified!"); - } - else if (componentList.Length == 1) - { - return true; - } - else if (componentList.Length > 1) - { - Debug.LogWarning("Found too many IMixedRealityControllerVisualizer components on your prefab. There can only be one."); - } - - return false; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs.meta deleted file mode 100644 index df94e288d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerVisualizationProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 752bbdac6dcc46cb9881fa17c072ad02 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs deleted file mode 100644 index b27ca74c0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Diagnostics.Editor -{ - [CustomEditor(typeof(MixedRealityDiagnosticsProfile))] - public class MixedRealityDiagnosticsSystemProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private SerializedProperty showDiagnostics; - private SerializedProperty showProfiler; - private SerializedProperty frameSampleRate; - private SerializedProperty windowAnchor; - private SerializedProperty windowOffset; - private SerializedProperty windowScale; - private SerializedProperty windowFollowSpeed; - private SerializedProperty showProfilerDuringMRC; - - private const string ProfileTitle = "Diagnostic Settings"; - private const string ProfileDescription = "Diagnostic visualizations can help monitor system resources and performance inside an application."; - - // todo: coming soon - // private static bool showDebugPanelSettings = true; - // private SerializedProperty isDebugPanelVisible; - - protected override void OnEnable() - { - base.OnEnable(); - - showDiagnostics = serializedObject.FindProperty("showDiagnostics"); - showProfiler = serializedObject.FindProperty("showProfiler"); - frameSampleRate = serializedObject.FindProperty("frameSampleRate"); - windowAnchor = serializedObject.FindProperty("windowAnchor"); - windowOffset = serializedObject.FindProperty("windowOffset"); - windowScale = serializedObject.FindProperty("windowScale"); - windowFollowSpeed = serializedObject.FindProperty("windowFollowSpeed"); - showProfilerDuringMRC = serializedObject.FindProperty("showProfilerDuringMRC"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("General Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showDiagnostics); - if (!showDiagnostics.boolValue) - { - EditorGUILayout.Space(); - EditorGUILayout.HelpBox("Diagnostic visualizations have been globally disabled.", MessageType.Info); - EditorGUILayout.Space(); - } - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Profiler Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showProfiler); - EditorGUILayout.PropertyField(frameSampleRate); - EditorGUILayout.PropertyField(windowAnchor); - EditorGUILayout.PropertyField(windowOffset); - EditorGUILayout.PropertyField(windowScale); - EditorGUILayout.PropertyField(windowFollowSpeed); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("HoloLens Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(showProfilerDuringMRC); - } - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - profile == MixedRealityToolkit.Instance.ActiveProfile.DiagnosticsSystemProfile; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs.meta deleted file mode 100644 index 7de7fcb3d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityDiagnosticsSystemProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b45f0bc9f7b177946a19ca6ae894edb4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs deleted file mode 100644 index 5024ae47c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Inspectors -{ - [CustomEditor(typeof(MixedRealityEyeTrackingProfile))] - public class MixedRealityEyeTrackingProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private SerializedProperty smoothEyeTracking; - - private const string ProfileTitle = "Eye tracking Settings"; - - protected override void OnEnable() - { - base.OnEnable(); - smoothEyeTracking = serializedObject.FindProperty("smoothEyeTracking"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, string.Empty, target, true, BackProfileType.Input)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - EditorGUILayout.PropertyField(smoothEyeTracking); - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.DataProviderConfigurations != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.DataProviderConfigurations.Any(s => profile == s.DeviceManagerProfile); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs.meta deleted file mode 100644 index b3c8c163f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityEyeTrackingProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e1dc2bf9fb63a40428f55c55c86e326c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs deleted file mode 100644 index d444f2f0f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(MixedRealityGesturesProfile))] - public class MixedRealityGesturesProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent MinusButtonContent = new GUIContent("-", "Remove defined Gesture"); - private static readonly GUIContent AddButtonContent = new GUIContent("+ Add a New defined Gesture"); - private static readonly GUIContent DescriptionContent = new GUIContent("Description", "The human readable description of the Gesture."); - private static readonly GUIContent GestureTypeContent = new GUIContent("Gesture Type", "The type of Gesture that will trigger the action."); - private static readonly GUIContent ActionContent = new GUIContent("Action", "The action to trigger when a Gesture is recognized."); - - private const string ProfileTitle = "Gesture Settings"; - private const string ProfileDescription = "This gesture map is any and all movements of part the user's body, especially a hand or the head, that raise actions through the input system.\n\n" + - "Note: Defined controllers can look up the list of gestures and raise the events based on specific criteria."; - - private SerializedProperty gestures; - private SerializedProperty windowsManipulationGestureSettings; - private SerializedProperty useRailsNavigation; - private SerializedProperty windowsNavigationGestureSettings; - private SerializedProperty windowsRailsNavigationGestures; - private SerializedProperty windowsGestureAutoStart; - - private MixedRealityGesturesProfile thisProfile; - private static GUIContent[] allGestureLabels; - private static int[] allGestureIds; - private static GUIContent[] actionLabels = Array.Empty(); - private static int[] actionIds = Array.Empty(); - private bool isInitialized = false; - - protected override void OnEnable() - { - base.OnEnable(); - isInitialized = false; - - gestures = serializedObject.FindProperty("gestures"); - windowsManipulationGestureSettings = serializedObject.FindProperty("manipulationGestures"); - useRailsNavigation = serializedObject.FindProperty("useRailsNavigation"); - windowsNavigationGestureSettings = serializedObject.FindProperty("navigationGestures"); - windowsRailsNavigationGestures = serializedObject.FindProperty("railsNavigationGestures"); - windowsGestureAutoStart = serializedObject.FindProperty("windowsGestureAutoStart"); - - thisProfile = target as MixedRealityGesturesProfile; - Debug.Assert(thisProfile != null); - - UpdateGestureLabels(); - - if (!IsProfileInActiveInstance() - || MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile == null) - { - return; - } - - var inputActions = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions; - actionLabels = inputActions.Select(action => new GUIContent(action.Description)).Prepend(new GUIContent("None")).ToArray(); - actionIds = inputActions.Select(action => (int)action.Id).Prepend(0).ToArray(); - - isInitialized = true; - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.GesturesProfile; - } - - private void UpdateGestureLabels() - { - var allGestureTypeNames = Enum.GetNames(typeof(GestureInputType)); - - var tempIds = new List(); - var tempContent = new List(); - - for (int i = 0; i < allGestureTypeNames.Length; i++) - { - if (allGestureTypeNames[i].Equals("None") || - thisProfile.Gestures.All(mapping => !allGestureTypeNames[i].Equals(mapping.GestureType.ToString()))) - { - tempContent.Add(new GUIContent(allGestureTypeNames[i])); - tempIds.Add(i); - } - } - - allGestureIds = tempIds.ToArray(); - allGestureLabels = tempContent.ToArray(); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, isInitialized, BackProfileType.Input)) - { - return; - } - - CheckMixedRealityInputActions(); - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Windows Gesture Settings", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(windowsManipulationGestureSettings); - EditorGUILayout.PropertyField(windowsNavigationGestureSettings); - EditorGUILayout.PropertyField(useRailsNavigation); - EditorGUILayout.PropertyField(windowsRailsNavigationGestures); - EditorGUILayout.PropertyField(windowsGestureAutoStart); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Defined Recognizable Gestures", EditorStyles.boldLabel); - - RenderList(gestures); - - serializedObject.ApplyModifiedProperties(); - } - } - - private void RenderList(SerializedProperty list) - { - // Disable gestures list if we could not initialize successfully - using (new EditorGUI.DisabledGroupScope(!isInitialized)) - { - EditorGUILayout.Space(); - using (new EditorGUILayout.VerticalScope()) - { - if (InspectorUIUtility.RenderIndentedButton(AddButtonContent, EditorStyles.miniButton)) - { - list.arraySize += 1; - var speechCommand = list.GetArrayElementAtIndex(list.arraySize - 1); - var keyword = speechCommand.FindPropertyRelative("description"); - keyword.stringValue = string.Empty; - var gestureType = speechCommand.FindPropertyRelative("gestureType"); - gestureType.intValue = (int)GestureInputType.None; - var action = speechCommand.FindPropertyRelative("action"); - var actionId = action.FindPropertyRelative("id"); - actionId.intValue = 0; - var actionDescription = action.FindPropertyRelative("description"); - actionDescription.stringValue = string.Empty; - var actionConstraint = action.FindPropertyRelative("axisConstraint"); - actionConstraint.intValue = 0; - } - - if (list == null || list.arraySize == 0) - { - EditorGUILayout.HelpBox("Define a new Gesture.", MessageType.Warning); - UpdateGestureLabels(); - return; - } - - using (new EditorGUILayout.HorizontalScope()) - { - var labelWidth = EditorGUIUtility.labelWidth; - EditorGUIUtility.labelWidth = 24f; - EditorGUILayout.LabelField(DescriptionContent, GUILayout.ExpandWidth(true)); - EditorGUILayout.LabelField(GestureTypeContent, GUILayout.Width(80f)); - EditorGUILayout.LabelField(ActionContent, GUILayout.Width(64f)); - EditorGUILayout.LabelField(string.Empty, GUILayout.Width(24f)); - EditorGUIUtility.labelWidth = labelWidth; - } - - var inputActions = GetInputActions(); - - for (int i = 0; i < list.arraySize; i++) - { - using (new EditorGUILayout.HorizontalScope()) - { - SerializedProperty gesture = list.GetArrayElementAtIndex(i); - var keyword = gesture.FindPropertyRelative("description"); - var gestureType = gesture.FindPropertyRelative("gestureType"); - var action = gesture.FindPropertyRelative("action"); - var actionId = action.FindPropertyRelative("id"); - var actionDescription = action.FindPropertyRelative("description"); - var actionConstraint = action.FindPropertyRelative("axisConstraint"); - - EditorGUILayout.PropertyField(keyword, GUIContent.none, GUILayout.ExpandWidth(true)); - - Debug.Assert(allGestureLabels.Length == allGestureIds.Length); - - var gestureLabels = new GUIContent[allGestureLabels.Length + 1]; - var gestureIds = new int[allGestureIds.Length + 1]; - - gestureLabels[0] = new GUIContent(((GestureInputType)gestureType.intValue).ToString()); - gestureIds[0] = gestureType.intValue; - - for (int j = 0; j < allGestureLabels.Length; j++) - { - gestureLabels[j + 1] = allGestureLabels[j]; - gestureIds[j + 1] = allGestureIds[j]; - } - - EditorGUI.BeginChangeCheck(); - gestureType.intValue = EditorGUILayout.IntPopup(GUIContent.none, gestureType.intValue, gestureLabels, gestureIds, GUILayout.Width(80f)); - - if (EditorGUI.EndChangeCheck()) - { - serializedObject.ApplyModifiedProperties(); - UpdateGestureLabels(); - } - - EditorGUI.BeginChangeCheck(); - - actionId.intValue = EditorGUILayout.IntPopup(GUIContent.none, actionId.intValue, actionLabels, actionIds, GUILayout.Width(64f)); - - if (EditorGUI.EndChangeCheck()) - { - MixedRealityInputAction inputAction = MixedRealityInputAction.None; - int idx = actionId.intValue - 1; - if (idx >= 0 && idx < inputActions.Length) - { - inputAction = inputActions[idx]; - } - - actionDescription.stringValue = inputAction.Description; - actionConstraint.enumValueIndex = (int)inputAction.AxisConstraint; - serializedObject.ApplyModifiedProperties(); - } - - if (GUILayout.Button(MinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - list.DeleteArrayElementAtIndex(i); - serializedObject.ApplyModifiedProperties(); - UpdateGestureLabels(); - } - } - } - } - } - } - - private static MixedRealityInputAction[] GetInputActions() - { - if (!MixedRealityToolkit.IsInitialized || - !MixedRealityToolkit.Instance.HasActiveProfile || - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile == null || - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile == null) - { - return Array.Empty(); - } - - return MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs.meta deleted file mode 100644 index c005f498c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityGesturesProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 82cccce472e145f4bcdf7338afc66e46 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs deleted file mode 100644 index eb8acd6f2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Inspectors -{ - [CustomEditor(typeof(MixedRealityHandTrackingProfile))] - public class MixedRealityHandTrackingProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private SerializedProperty jointPrefab; - private SerializedProperty palmPrefab; - private SerializedProperty fingertipPrefab; - private SerializedProperty handMeshPrefab; - private SerializedProperty handMeshVisualizationModes; - private SerializedProperty handJointVisualizationModes; - - private const string ProfileTitle = "Hand Tracking Settings"; - private const string ProfileDescription = "Use this for hand tracking settings."; - - protected override void OnEnable() - { - base.OnEnable(); - - jointPrefab = serializedObject.FindProperty("jointPrefab"); - fingertipPrefab = serializedObject.FindProperty("fingertipPrefab"); - palmPrefab = serializedObject.FindProperty("palmPrefab"); - handMeshPrefab = serializedObject.FindProperty("handMeshPrefab"); - handMeshVisualizationModes = serializedObject.FindProperty("handMeshVisualizationModes"); - handJointVisualizationModes = serializedObject.FindProperty("handJointVisualizationModes"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.Input)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.LabelField("General settings", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(jointPrefab); - EditorGUILayout.PropertyField(palmPrefab); - EditorGUILayout.PropertyField(fingertipPrefab); - EditorGUILayout.PropertyField(handMeshPrefab); - EditorGUILayout.PropertyField(handMeshVisualizationModes); - EditorGUILayout.PropertyField(handJointVisualizationModes); - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.HandTrackingProfile; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs.meta deleted file mode 100644 index 239e64668..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityHandTrackingProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1f0f672d65a59dc40b12814dad7f3122 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs deleted file mode 100644 index c543bdf9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs +++ /dev/null @@ -1,566 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(MixedRealityInputActionRulesProfile))] - public class MixedRealityInputActionRulesInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent RuleAddButtonContent = new GUIContent("+ Add a New Rule Definition"); - private static readonly GUIContent RuleMinusButtonContent = new GUIContent("-", "Remove Rule Definition"); - private static readonly GUIContent BaseActionContent = new GUIContent("Base Input Action:", "The Action that will raise new actions based on the criteria met"); - private static readonly GUIContent RuleActionContent = new GUIContent("Rule Input Action:", "The Action that will be raised when the criteria is met"); - private static readonly GUIContent CriteriaContent = new GUIContent("Action Criteria:", "The Criteria that must be met in order to raise the new Action"); - - private const string ProfileTitle = "Input Action Rule Settings"; - private const string ProfileDescription = "Input Action Rules help define alternative Actions that will be raised based on specific criteria.\n\n" + - "You can create new rules by assigning a base Input Action below, then assigning the criteria you'd like to meet. When the criteria is met, the Rule's Action will be raised with the criteria value.\n\n" + - "Note: Rules can only be created for the same axis constraints."; - - private SerializedProperty inputActionRulesDigital; - private SerializedProperty inputActionRulesSingleAxis; - private SerializedProperty inputActionRulesDualAxis; - private SerializedProperty inputActionRulesVectorAxis; - private SerializedProperty inputActionRulesQuaternionAxis; - private SerializedProperty inputActionRulesPoseAxis; - - private int[] baseActionIds = System.Array.Empty(); - private string[] baseActionLabels = System.Array.Empty(); - - // These are marked as static because this inspector will reset itself every refresh - // because it can be rendered as a sub-profile and thus OnEnable() is called every time - private static int[] ruleActionIds = System.Array.Empty(); - private static string[] ruleActionLabels = System.Array.Empty(); - - private static int selectedBaseActionId = 0; - private static int selectedRuleActionId = 0; - - private static MixedRealityInputAction currentBaseAction = MixedRealityInputAction.None; - private static MixedRealityInputAction currentRuleAction = MixedRealityInputAction.None; - - private static bool currentBoolCriteria; - private static float currentSingleAxisCriteria; - private static Vector2 currentDualAxisCriteria; - private static Vector3 currentVectorCriteria; - private static Quaternion currentQuaternionCriteria; - private static MixedRealityPose currentPoseCriteria; - - private static bool[] digitalFoldouts; - private static bool[] singleAxisFoldouts; - private static bool[] dualAxisFoldouts; - private static bool[] vectorFoldouts; - private static bool[] quaternionFoldouts; - private static bool[] poseFoldouts; - - private MixedRealityInputActionRulesProfile thisProfile; - private bool isInitialized = false; - - protected override void OnEnable() - { - base.OnEnable(); - isInitialized = false; - - inputActionRulesDigital = serializedObject.FindProperty("inputActionRulesDigital"); - inputActionRulesSingleAxis = serializedObject.FindProperty("inputActionRulesSingleAxis"); - inputActionRulesDualAxis = serializedObject.FindProperty("inputActionRulesDualAxis"); - inputActionRulesVectorAxis = serializedObject.FindProperty("inputActionRulesVectorAxis"); - inputActionRulesQuaternionAxis = serializedObject.FindProperty("inputActionRulesQuaternionAxis"); - inputActionRulesPoseAxis = serializedObject.FindProperty("inputActionRulesPoseAxis"); - - thisProfile = target as MixedRealityInputActionRulesProfile; - - // Only reset if we haven't get done so - if (digitalFoldouts == null) - { - ResetCriteria(); - } - - if (!IsProfileInActiveInstance() - || MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile == null) - { - return; - } - - var inputActions = GetInputActions(); - baseActionLabels = inputActions.Where(action => action.AxisConstraint != AxisType.None && action.AxisConstraint != AxisType.Raw) - .Select(action => action.Description).ToArray(); - - baseActionIds = inputActions.Where(action => action.AxisConstraint != AxisType.None && action.AxisConstraint != AxisType.Raw) - .Select(action => (int)action.Id).ToArray(); - - isInitialized = true; - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, isInitialized, BackProfileType.Input)) - { - return; - } - - CheckMixedRealityInputActions(); - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - selectedBaseActionId = RenderBaseInputAction(selectedBaseActionId, out currentBaseAction); - - using (new EditorGUI.DisabledGroupScope(currentBaseAction == MixedRealityInputAction.None)) - { - RenderCriteriaField(currentBaseAction); - - if (selectedBaseActionId == selectedRuleActionId) - { - selectedRuleActionId = 0; - } - - selectedRuleActionId = RenderRuleInputAction(selectedRuleActionId, out currentRuleAction); - - EditorGUILayout.Space(); - } - - bool addButtonEnable = !RuleExists() && - currentBaseAction != MixedRealityInputAction.None && - currentRuleAction != MixedRealityInputAction.None && - currentBaseAction.AxisConstraint != AxisType.None && - currentBaseAction.AxisConstraint != AxisType.Raw; - - using (new EditorGUI.DisabledGroupScope(!addButtonEnable)) - { - if (InspectorUIUtility.RenderIndentedButton(RuleAddButtonContent, EditorStyles.miniButton)) - { - AddRule(); - ResetCriteria(); - } - } - - EditorGUILayout.Space(); - - var isWideMode = EditorGUIUtility.wideMode; - EditorGUIUtility.wideMode = true; - - RenderList(inputActionRulesDigital, digitalFoldouts); - RenderList(inputActionRulesSingleAxis, singleAxisFoldouts); - RenderList(inputActionRulesDualAxis, dualAxisFoldouts); - RenderList(inputActionRulesVectorAxis, vectorFoldouts); - RenderList(inputActionRulesQuaternionAxis, quaternionFoldouts); - RenderList(inputActionRulesPoseAxis, poseFoldouts); - - EditorGUIUtility.wideMode = isWideMode; - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionRulesProfile; - } - - private bool RuleExists() - { - switch (currentBaseAction.AxisConstraint) - { - default: - return false; - case AxisType.Digital: - return thisProfile.InputActionRulesDigital.Any(digitalRule => digitalRule.BaseAction == currentBaseAction && digitalRule.RuleAction == currentRuleAction && digitalRule.Criteria == currentBoolCriteria); - case AxisType.SingleAxis: - return thisProfile.InputActionRulesSingleAxis.Any(singleAxisRule => singleAxisRule.BaseAction == currentBaseAction && singleAxisRule.RuleAction == currentRuleAction && singleAxisRule.Criteria.Equals(currentSingleAxisCriteria)); - case AxisType.DualAxis: - return thisProfile.InputActionRulesDualAxis.Any(dualAxisRule => dualAxisRule.BaseAction == currentBaseAction && dualAxisRule.RuleAction == currentRuleAction && dualAxisRule.Criteria == currentDualAxisCriteria); - case AxisType.ThreeDofPosition: - return thisProfile.InputActionRulesVectorAxis.Any(vectorAxisRule => vectorAxisRule.BaseAction == currentBaseAction && vectorAxisRule.RuleAction == currentRuleAction && vectorAxisRule.Criteria == currentVectorCriteria); - case AxisType.ThreeDofRotation: - return thisProfile.InputActionRulesQuaternionAxis.Any(quaternionRule => quaternionRule.BaseAction == currentBaseAction && quaternionRule.RuleAction == currentRuleAction && quaternionRule.Criteria == currentQuaternionCriteria); - case AxisType.SixDof: - return thisProfile.InputActionRulesPoseAxis.Any(poseRule => poseRule.BaseAction == currentBaseAction && poseRule.RuleAction == currentRuleAction && poseRule.Criteria == currentPoseCriteria); - } - } - - private void ResetCriteria() - { - selectedBaseActionId = 0; - selectedRuleActionId = 0; - currentBaseAction = MixedRealityInputAction.None; - currentRuleAction = MixedRealityInputAction.None; - currentBoolCriteria = false; - currentSingleAxisCriteria = 0f; - currentDualAxisCriteria = Vector2.zero; - currentVectorCriteria = Vector3.zero; - currentQuaternionCriteria = Quaternion.identity; - currentPoseCriteria = MixedRealityPose.ZeroIdentity; - - digitalFoldouts = new bool[inputActionRulesDigital.arraySize]; - singleAxisFoldouts = new bool[inputActionRulesSingleAxis.arraySize]; - dualAxisFoldouts = new bool[inputActionRulesDualAxis.arraySize]; - vectorFoldouts = new bool[inputActionRulesVectorAxis.arraySize]; - quaternionFoldouts = new bool[inputActionRulesQuaternionAxis.arraySize]; - poseFoldouts = new bool[inputActionRulesPoseAxis.arraySize]; - } - - private static void GetCompatibleActions(MixedRealityInputAction baseAction) - { - var inputActions = GetInputActions(); - - ruleActionLabels = inputActions.Where(inputAction => inputAction.AxisConstraint == baseAction.AxisConstraint && inputAction.Id != baseAction.Id) - .Select(action => action.Description).ToArray(); - - ruleActionIds = inputActions.Where(inputAction => inputAction.AxisConstraint == baseAction.AxisConstraint && inputAction.Id != baseAction.Id) - .Select(action => (int)action.Id).ToArray(); - } - - private void RenderCriteriaField(MixedRealityInputAction action, SerializedProperty criteriaValue = null) - { - var isWideMode = EditorGUIUtility.wideMode; - EditorGUIUtility.wideMode = true; - if (action != MixedRealityInputAction.None) - { - switch (action.AxisConstraint) - { - default: - EditorGUILayout.HelpBox("Base rule must have a valid axis constraint.", MessageType.Warning); - break; - case AxisType.Digital: - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField(CriteriaContent, GUILayout.Width(128)); - EditorGUI.BeginChangeCheck(); - var boolValue = EditorGUILayout.Toggle(GUIContent.none, criteriaValue?.boolValue ?? currentBoolCriteria, GUILayout.Width(64), GUILayout.ExpandWidth(true)); - - if (EditorGUI.EndChangeCheck()) - { - if (criteriaValue != null) - { - criteriaValue.boolValue = boolValue; - } - else - { - currentBoolCriteria = boolValue; - } - } - } - break; - case AxisType.SingleAxis: - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField(CriteriaContent, GUILayout.Width(128)); - EditorGUI.BeginChangeCheck(); - var floatValue = EditorGUILayout.FloatField(GUIContent.none, criteriaValue?.floatValue ?? currentSingleAxisCriteria, GUILayout.Width(64), GUILayout.ExpandWidth(true)); - - if (EditorGUI.EndChangeCheck()) - { - if (criteriaValue != null) - { - criteriaValue.floatValue = floatValue; - } - else - { - currentSingleAxisCriteria = floatValue; - } - } - } - break; - case AxisType.DualAxis: - EditorGUILayout.LabelField(CriteriaContent, GUILayout.Width(128)); - using (new EditorGUI.IndentLevelScope()) - { - EditorGUI.BeginChangeCheck(); - var dualAxisValue = EditorGUILayout.Vector2Field("Position", criteriaValue?.vector2Value ?? currentDualAxisCriteria, GUILayout.Width(64), GUILayout.ExpandWidth(true)); - - if (EditorGUI.EndChangeCheck()) - { - if (criteriaValue != null) - { - criteriaValue.vector2Value = dualAxisValue; - } - else - { - currentDualAxisCriteria = dualAxisValue; - } - } - } - break; - case AxisType.ThreeDofPosition: - EditorGUILayout.LabelField(CriteriaContent, GUILayout.Width(128)); - using (new EditorGUI.IndentLevelScope()) - { - EditorGUI.BeginChangeCheck(); - var positionValue = EditorGUILayout.Vector3Field("Position", criteriaValue?.vector3Value ?? currentVectorCriteria, GUILayout.ExpandWidth(true)); - - if (EditorGUI.EndChangeCheck()) - { - if (criteriaValue != null) - { - criteriaValue.vector3Value = positionValue; - } - else - { - currentVectorCriteria = positionValue; - } - } - } - break; - case AxisType.ThreeDofRotation: - EditorGUILayout.LabelField(CriteriaContent, GUILayout.Width(128)); - using (new EditorGUI.IndentLevelScope()) - { - EditorGUI.BeginChangeCheck(); - var rotationValue = EditorGUILayout.Vector3Field("Rotation", criteriaValue?.quaternionValue.eulerAngles ?? currentQuaternionCriteria.eulerAngles, GUILayout.ExpandWidth(true)); - - if (EditorGUI.EndChangeCheck()) - { - if (criteriaValue != null) - { - criteriaValue.quaternionValue = Quaternion.Euler(rotationValue); - } - else - { - currentQuaternionCriteria = Quaternion.Euler(rotationValue); - } - } - } - break; - case AxisType.SixDof: - EditorGUILayout.LabelField(CriteriaContent, GUILayout.Width(128)); - using (new EditorGUI.IndentLevelScope()) - { - var posePosition = currentPoseCriteria.Position; - var poseRotation = currentPoseCriteria.Rotation; - - if (criteriaValue != null) - { - posePosition = criteriaValue.FindPropertyRelative("position").vector3Value; - poseRotation = criteriaValue.FindPropertyRelative("rotation").quaternionValue; - } - - EditorGUI.BeginChangeCheck(); - posePosition = EditorGUILayout.Vector3Field("Position", posePosition); - - poseRotation.eulerAngles = EditorGUILayout.Vector3Field("Rotation", poseRotation.eulerAngles); - - if (EditorGUI.EndChangeCheck()) - { - if (criteriaValue != null) - { - criteriaValue.FindPropertyRelative("position").vector3Value = posePosition; - criteriaValue.FindPropertyRelative("rotation").quaternionValue = poseRotation; - } - else - { - currentPoseCriteria.Position = posePosition; - currentPoseCriteria.Rotation = poseRotation; - } - } - } - break; - } - - EditorGUIUtility.wideMode = isWideMode; - } - } - - private void AddRule() - { - SerializedProperty rule; - switch (currentBaseAction.AxisConstraint) - { - case AxisType.Digital: - inputActionRulesDigital.arraySize += 1; - rule = inputActionRulesDigital.GetArrayElementAtIndex(inputActionRulesDigital.arraySize - 1); - rule.FindPropertyRelative("criteria").boolValue = currentBoolCriteria; - break; - case AxisType.SingleAxis: - inputActionRulesSingleAxis.arraySize += 1; - rule = inputActionRulesSingleAxis.GetArrayElementAtIndex(inputActionRulesSingleAxis.arraySize - 1); - rule.FindPropertyRelative("criteria").floatValue = currentSingleAxisCriteria; - break; - case AxisType.DualAxis: - inputActionRulesDualAxis.arraySize += 1; - rule = inputActionRulesDualAxis.GetArrayElementAtIndex(inputActionRulesDualAxis.arraySize - 1); - rule.FindPropertyRelative("criteria").vector2Value = currentDualAxisCriteria; - break; - case AxisType.ThreeDofPosition: - inputActionRulesVectorAxis.arraySize += 1; - rule = inputActionRulesVectorAxis.GetArrayElementAtIndex(inputActionRulesVectorAxis.arraySize - 1); - rule.FindPropertyRelative("criteria").vector3Value = currentVectorCriteria; - break; - case AxisType.ThreeDofRotation: - inputActionRulesQuaternionAxis.arraySize += 1; - rule = inputActionRulesQuaternionAxis.GetArrayElementAtIndex(inputActionRulesQuaternionAxis.arraySize - 1); - rule.FindPropertyRelative("criteria").quaternionValue = currentQuaternionCriteria; - break; - case AxisType.SixDof: - inputActionRulesPoseAxis.arraySize += 1; - rule = inputActionRulesPoseAxis.GetArrayElementAtIndex(inputActionRulesPoseAxis.arraySize - 1); - var criteria = rule.FindPropertyRelative("criteria"); - criteria.FindPropertyRelative("position").vector3Value = currentPoseCriteria.Position; - criteria.FindPropertyRelative("rotation").quaternionValue = currentPoseCriteria.Rotation; - break; - default: - Debug.LogError("Invalid Axis Constraint!"); - return; - } - - var baseAction = rule.FindPropertyRelative("baseAction"); - var baseActionId = baseAction.FindPropertyRelative("id"); - var baseActionDescription = baseAction.FindPropertyRelative("description"); - var baseActionConstraint = baseAction.FindPropertyRelative("axisConstraint"); - - baseActionId.intValue = (int)currentBaseAction.Id; - baseActionDescription.stringValue = currentBaseAction.Description; - baseActionConstraint.intValue = (int)currentBaseAction.AxisConstraint; - - var ruleAction = rule.FindPropertyRelative("ruleAction"); - var ruleActionId = ruleAction.FindPropertyRelative("id"); - var ruleActionDescription = ruleAction.FindPropertyRelative("description"); - var ruleActionConstraint = ruleAction.FindPropertyRelative("axisConstraint"); - - ruleActionId.intValue = (int)currentRuleAction.Id; - ruleActionDescription.stringValue = currentRuleAction.Description; - ruleActionConstraint.intValue = (int)currentRuleAction.AxisConstraint; - } - - private int RenderBaseInputAction(int baseActionId, out MixedRealityInputAction action, bool isLocked = false) - { - using (new EditorGUI.DisabledGroupScope(!isInitialized)) - { - action = MixedRealityInputAction.None; - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField(BaseActionContent); - EditorGUI.BeginChangeCheck(); - - if (!isLocked) - { - baseActionId = EditorGUILayout.IntPopup(baseActionId, baseActionLabels, baseActionIds, GUILayout.ExpandWidth(true)); - } - - var inputActions = GetInputActions(); - for (int i = 0; i < inputActions.Length; i++) - { - if (baseActionId == (int)inputActions[i].Id) - { - action = inputActions[i]; - } - } - - if (action != MixedRealityInputAction.None) - { - GetCompatibleActions(action); - } - - if (isLocked) - { - EditorGUILayout.LabelField(action.Description, EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - } - - EditorGUILayout.EndHorizontal(); - } - - return baseActionId; - } - - private int RenderRuleInputAction(int ruleActionId, out MixedRealityInputAction action) - { - action = MixedRealityInputAction.None; - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField(RuleActionContent, GUILayout.Width(128)); - EditorGUI.BeginChangeCheck(); - ruleActionId = EditorGUILayout.IntPopup(ruleActionId, ruleActionLabels, ruleActionIds, GUILayout.ExpandWidth(true)); - - var inputActions = GetInputActions(); - for (int i = 0; i < inputActions.Length; i++) - { - if (ruleActionId == (int)inputActions[i].Id) - { - action = inputActions[i]; - } - } - - EditorGUILayout.EndHorizontal(); - return ruleActionId; - } - - private void RenderList(SerializedProperty list, bool[] foldouts) - { - for (int i = 0; i < list?.arraySize; i++) - { - var rule = list.GetArrayElementAtIndex(i); - var criteria = rule.FindPropertyRelative("criteria"); - - var baseAction = rule.FindPropertyRelative("baseAction"); - var baseActionId = baseAction.FindPropertyRelative("id"); - var baseActionDescription = baseAction.FindPropertyRelative("description"); - var baseActionConstraint = baseAction.FindPropertyRelative("axisConstraint"); - - var ruleAction = rule.FindPropertyRelative("ruleAction"); - var ruleActionId = ruleAction.FindPropertyRelative("id"); - var ruleActionDescription = ruleAction.FindPropertyRelative("description"); - var ruleActionConstraint = ruleAction.FindPropertyRelative("axisConstraint"); - - using (new EditorGUILayout.HorizontalScope()) - { - foldouts[i] = EditorGUILayout.Foldout(foldouts[i], new GUIContent($"{baseActionDescription.stringValue} -> {ruleActionDescription.stringValue}"), true); - - if (GUILayout.Button(RuleMinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - list.DeleteArrayElementAtIndex(i); - return; - } - } - - if (foldouts[i]) - { - EditorGUI.indentLevel++; - - MixedRealityInputAction newBaseAction; - baseActionId.intValue = RenderBaseInputAction(baseActionId.intValue, out newBaseAction, true); - baseActionDescription.stringValue = newBaseAction.Description; - baseActionConstraint.intValue = (int)newBaseAction.AxisConstraint; - - if (baseActionId.intValue == ruleActionId.intValue || newBaseAction == MixedRealityInputAction.None || baseActionConstraint.intValue != ruleActionConstraint.intValue) - { - criteria.Reset(); - ruleActionId.intValue = (int)MixedRealityInputAction.None.Id; - ruleActionDescription.stringValue = MixedRealityInputAction.None.Description; - ruleActionConstraint.intValue = (int)MixedRealityInputAction.None.AxisConstraint; - } - - RenderCriteriaField(newBaseAction, criteria); - - MixedRealityInputAction newRuleAction; - ruleActionId.intValue = RenderRuleInputAction(ruleActionId.intValue, out newRuleAction); - ruleActionDescription.stringValue = newRuleAction.Description; - ruleActionConstraint.intValue = (int)newRuleAction.AxisConstraint; - EditorGUI.indentLevel--; - } - - EditorGUILayout.Space(); - } - } - - private static MixedRealityInputAction[] GetInputActions() - { - if (!MixedRealityToolkit.IsInitialized || - !MixedRealityToolkit.Instance.HasActiveProfile || - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile == null || - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile == null) - { - return System.Array.Empty(); - } - - return MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs.meta deleted file mode 100644 index 2cdcb8850..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionRulesInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 088654758d8f4856ba3ca7c6b2515958 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs deleted file mode 100644 index 64f7c0f28..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(MixedRealityInputActionsProfile))] - public class MixedRealityInputActionsProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent MinusButtonContent = new GUIContent("-", "Remove Action"); - private static readonly GUIContent AddButtonContent = new GUIContent("+ Add a New Action", "Add New Action"); - private static readonly GUIContent ActionContent = new GUIContent("Action", "The Name of the Action."); - private static readonly GUIContent AxisConstraintContent = new GUIContent("Axis Constraint", "Optional Axis Constraint for this input source."); - private const string ProfileTitle = "Input Action Settings"; - private const string ProfileDescription = "Input Actions are any/all actions your users will be able to make when interacting with your application.\n\n" + - "After defining all your actions, you can then wire up these actions to hardware sensors, controllers, and other input devices."; - - private static Vector2 scrollPosition = Vector2.zero; - - private SerializedProperty inputActionList; - - protected override void OnEnable() - { - base.OnEnable(); - - inputActionList = serializedObject.FindProperty("inputActions"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.Input)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - RenderList(inputActionList); - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile; - } - - private static void RenderList(SerializedProperty list) - { - using (new EditorGUILayout.VerticalScope()) - { - if (InspectorUIUtility.RenderIndentedButton(AddButtonContent, EditorStyles.miniButton)) - { - list.arraySize += 1; - var inputAction = list.GetArrayElementAtIndex(list.arraySize - 1); - var inputActionId = inputAction.FindPropertyRelative("id"); - var inputActionDescription = inputAction.FindPropertyRelative("description"); - var inputActionConstraint = inputAction.FindPropertyRelative("axisConstraint"); - inputActionConstraint.intValue = 0; - inputActionDescription.stringValue = $"New Action {inputActionId.intValue = list.arraySize}"; - } - - using (new EditorGUILayout.HorizontalScope()) - { - var labelWidth = EditorGUIUtility.labelWidth; - EditorGUIUtility.labelWidth = 36f; - EditorGUILayout.LabelField(ActionContent, GUILayout.ExpandWidth(true)); - EditorGUILayout.LabelField(AxisConstraintContent, GUILayout.Width(96f)); - EditorGUILayout.LabelField(string.Empty, GUILayout.Width(24f)); - EditorGUIUtility.labelWidth = labelWidth; - } - - scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition, GUILayout.Height(100f)); - - for (int i = 0; i < list.arraySize; i++) - { - using (new EditorGUILayout.HorizontalScope()) - { - var previousLabelWidth = EditorGUIUtility.labelWidth; - EditorGUIUtility.labelWidth = 64f; - SerializedProperty inputAction = list.GetArrayElementAtIndex(i); - SerializedProperty inputActionDescription = inputAction.FindPropertyRelative("description"); - var inputActionConstraint = inputAction.FindPropertyRelative("axisConstraint"); - EditorGUILayout.PropertyField(inputActionDescription, GUIContent.none); - EditorGUILayout.PropertyField(inputActionConstraint, GUIContent.none, GUILayout.Width(96f)); - EditorGUIUtility.labelWidth = previousLabelWidth; - - if (GUILayout.Button(MinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - list.DeleteArrayElementAtIndex(i); - } - - } - } - - EditorGUILayout.EndScrollView(); - } - EditorGUILayout.Space(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs.meta deleted file mode 100644 index 5237281b6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputActionsProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c68a38578e3a4ccea6f8aea6476c618d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs deleted file mode 100644 index 4db65a981..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - /// - /// Class handles rendering inspector view of MixedRealityInputSystemProfile object - /// - [CustomEditor(typeof(MixedRealityInputSystemProfile))] - public class MixedRealityInputSystemProfileInspector : BaseDataProviderServiceInspector - { - private const string DataProviderErrorMsg = "The Mixed Reality Input System requires one or more data providers."; - private static readonly GUIContent AddProviderContent = new GUIContent("+ Add Data Provider", "Add Data Provider"); - private static readonly GUIContent RemoveProviderContent = new GUIContent("-", "Remove Data Provider"); - - private static bool showDataProviders = false; - private const string ShowInputSystem_DataProviders_PreferenceKey = "ShowInputSystem_DataProviders_PreferenceKey"; - - private SerializedProperty focusProviderType; - private SerializedProperty focusQueryBufferSize; - private SerializedProperty raycastProviderType; - private SerializedProperty focusIndividualCompoundCollider; - - private static bool showPointerProperties = false; - private const string ShowInputSystem_Pointers_PreferenceKey = "ShowInputSystem_Pointers_PreferenceKey"; - private SerializedProperty pointerProfile; - - private static bool showActionsProperties = false; - private const string ShowInputSystem_Actions_PreferenceKey = "ShowInputSystem_Actions_PreferenceKey"; - private SerializedProperty inputActionsProfile; - private SerializedProperty inputActionRulesProfile; - - private static bool showControllerProperties = false; - private const string ShowInputSystem_Controller_PreferenceKey = "ShowInputSystem_Controller_PreferenceKey"; - private SerializedProperty enableControllerMapping; - private SerializedProperty controllerMappingProfile; - private SerializedProperty controllerVisualizationProfile; - - private static bool showGestureProperties = false; - private const string ShowInputSystem_Gesture_PreferenceKey = "ShowInputSystem_Gesture_PreferenceKey"; - private SerializedProperty gesturesProfile; - - private static bool showSpeechCommandsProperties = false; - private const string ShowInputSystem_Speech_PreferenceKey = "ShowInputSystem_Speech_PreferenceKey"; - private SerializedProperty speechCommandsProfile; - - private static bool showHandTrackingProperties = false; - private const string ShowInputSystem_HandTracking_PreferenceKey = "ShowInputSystem_HandTracking_PreferenceKey"; - private SerializedProperty handTrackingProfile; - - private const string ProfileTitle = "Input System Settings"; - private const string ProfileDescription = "The Input System Profile helps developers configure input for cross-platform applications."; - - /// - protected override void OnEnable() - { - base.OnEnable(); - - focusProviderType = serializedObject.FindProperty("focusProviderType"); - focusQueryBufferSize = serializedObject.FindProperty("focusQueryBufferSize"); - raycastProviderType = serializedObject.FindProperty("raycastProviderType"); - focusIndividualCompoundCollider = serializedObject.FindProperty("focusIndividualCompoundCollider"); - inputActionsProfile = serializedObject.FindProperty("inputActionsProfile"); - inputActionRulesProfile = serializedObject.FindProperty("inputActionRulesProfile"); - pointerProfile = serializedObject.FindProperty("pointerProfile"); - gesturesProfile = serializedObject.FindProperty("gesturesProfile"); - speechCommandsProfile = serializedObject.FindProperty("speechCommandsProfile"); - controllerMappingProfile = serializedObject.FindProperty("controllerMappingProfile"); - enableControllerMapping = serializedObject.FindProperty("enableControllerMapping"); - controllerVisualizationProfile = serializedObject.FindProperty("controllerVisualizationProfile"); - handTrackingProfile = serializedObject.FindProperty("handTrackingProfile"); - } - - /// - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target)) - { - return; - } - - bool changed = false; - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(focusProviderType); - EditorGUILayout.PropertyField(focusQueryBufferSize); - EditorGUILayout.PropertyField(raycastProviderType); - EditorGUILayout.PropertyField(focusIndividualCompoundCollider); - changed |= EditorGUI.EndChangeCheck(); - - EditorGUILayout.Space(); - - bool isSubProfile = RenderAsSubProfile; - if (!isSubProfile) - { - EditorGUI.indentLevel++; - } - - RenderFoldout(ref showDataProviders, "Input Data Providers", () => - { - using (new EditorGUI.IndentLevelScope()) - { - changed |= RenderDataProviderList(AddProviderContent, RemoveProviderContent, DataProviderErrorMsg); - } - }, ShowInputSystem_DataProviders_PreferenceKey); - - RenderFoldout(ref showPointerProperties, "Pointers", () => - { - using (new EditorGUI.IndentLevelScope()) - { - changed |= RenderProfile(pointerProfile, typeof(MixedRealityPointerProfile), true, false); - } - }, ShowInputSystem_Pointers_PreferenceKey); - - RenderFoldout(ref showActionsProperties, "Input Actions", () => - { - using (new EditorGUI.IndentLevelScope()) - { - changed |= RenderProfile(inputActionsProfile, typeof(MixedRealityInputActionsProfile), true, false); - EditorGUILayout.Space(); - EditorGUILayout.Space(); - changed |= RenderProfile(inputActionRulesProfile, typeof(MixedRealityInputActionRulesProfile), true, false); - } - }, ShowInputSystem_Actions_PreferenceKey); - - RenderFoldout(ref showControllerProperties, "Controllers", () => - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(enableControllerMapping); - changed |= RenderProfile(controllerMappingProfile, typeof(MixedRealityControllerMappingProfile), true, false); - EditorGUILayout.Space(); - changed |= RenderProfile(controllerVisualizationProfile, null, true, false, typeof(IMixedRealityControllerVisualizer)); - } - }, ShowInputSystem_Controller_PreferenceKey); - - RenderFoldout(ref showGestureProperties, "Gestures", () => - { - using (new EditorGUI.IndentLevelScope()) - { - changed |= RenderProfile(gesturesProfile, typeof(MixedRealityGesturesProfile), true, false); - } - }, ShowInputSystem_Gesture_PreferenceKey); - - RenderFoldout(ref showSpeechCommandsProperties, "Speech", () => - { - using (new EditorGUI.IndentLevelScope()) - { - changed |= RenderProfile(speechCommandsProfile, typeof(MixedRealitySpeechCommandsProfile), true, false); - } - }, ShowInputSystem_Speech_PreferenceKey); - - RenderFoldout(ref showHandTrackingProperties, "Hand Tracking", () => - { - using (new EditorGUI.IndentLevelScope()) - { - changed |= RenderProfile(handTrackingProfile, typeof(MixedRealityHandTrackingProfile), true, false); - } - }, ShowInputSystem_HandTracking_PreferenceKey); - - if (!isSubProfile) - { - EditorGUI.indentLevel--; - } - - serializedObject.ApplyModifiedProperties(); - } - - if (changed && MixedRealityToolkit.IsInitialized) - { - EditorApplication.delayCall += () => MixedRealityToolkit.Instance.ResetConfiguration(MixedRealityToolkit.Instance.ActiveProfile); - } - } - - /// - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile; - } - - #region DataProvider Inspector Utilities - - /// - protected override SerializedProperty GetDataProviderConfigurationList() - { - return serializedObject.FindProperty("dataProviderConfigurations"); - } - - /// - protected override ServiceConfigurationProperties GetDataProviderConfigurationProperties(SerializedProperty providerEntry) - { - return new ServiceConfigurationProperties() - { - componentName = providerEntry.FindPropertyRelative("componentName"), - componentType = providerEntry.FindPropertyRelative("componentType"), - providerProfile = providerEntry.FindPropertyRelative("deviceManagerProfile"), - runtimePlatform = providerEntry.FindPropertyRelative("runtimePlatform"), - }; - } - - /// - protected override IMixedRealityServiceConfiguration GetDataProviderConfiguration(int index) - { - MixedRealityInputSystemProfile targetProfile = target as MixedRealityInputSystemProfile; - if (targetProfile != null) - { - var configurations = targetProfile.DataProviderConfigurations; - if (configurations != null && index >= 0 && index < configurations.Length) - { - return configurations[index]; - } - } - - return null; - } - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs.meta deleted file mode 100644 index e7f8af876..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityInputSystemProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c098f43cbf0ed9a43ad84b590fafa459 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs deleted file mode 100644 index 4587da58e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Input.UnityInput; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CustomEditor(typeof(MixedRealityMouseInputProfile))] - public class MixedRealityMouseInputProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private const string ProfileTitle = "Mouse Input Settings"; - private const string ProfileDescription = "Settings used to configure the behavior of mouse controllers."; - - private SerializedProperty cursorSpeed; - private SerializedProperty wheelSpeed; - - protected override void OnEnable() - { - base.OnEnable(); - cursorSpeed = serializedObject.FindProperty("cursorSpeed"); - wheelSpeed = serializedObject.FindProperty("wheelSpeed"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.Input)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - EditorGUILayout.PropertyField(cursorSpeed); - EditorGUILayout.PropertyField(wheelSpeed); - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - if (!MixedRealityToolkit.IsInitialized || profile == null) - { - return false; - } - - var mouseManager = MixedRealityToolkit.Instance.GetService(null, false); - return mouseManager != null && profile == mouseManager.ConfigurationProfile; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs.meta deleted file mode 100644 index 709ee531a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityMouseInputProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a4054f9166cdf974eb265d3209eb985d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs deleted file mode 100644 index eb7ba0e95..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(MixedRealityPointerProfile))] - public class MixedRealityPointerProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent ControllerTypeContent = new GUIContent("Controller Type", "The type of Controller this pointer will attach itself to at runtime."); - private static readonly GUIContent MinusButtonContent = new GUIContent("-", "Remove Pointer Option"); - private static readonly GUIContent AddButtonContent = new GUIContent("+ Add a New Pointer Option", "Add Pointer Option"); - - private const string ProfileTitle = "Pointer Settings"; - private const string ProfileDescription = "Pointers attach themselves onto controllers as they are initialized."; - - private SerializedProperty pointingExtent; - private SerializedProperty pointingRaycastLayerMasks; - private static bool showPointerOptionProperties = true; - private SerializedProperty pointerOptions; - private SerializedProperty debugDrawPointingRays; - private SerializedProperty debugDrawPointingRayColors; - private SerializedProperty gazeCursorPrefab; - private SerializedProperty gazeProviderType; - private SerializedProperty useHeadGazeOverride; - private SerializedProperty isEyeTrackingEnabled; - private SerializedProperty showCursorWithEyeGaze; - private SerializedProperty pointerMediator; - private SerializedProperty primaryPointerSelector; - - protected override void OnEnable() - { - base.OnEnable(); - - pointingExtent = serializedObject.FindProperty("pointingExtent"); - pointingRaycastLayerMasks = serializedObject.FindProperty("pointingRaycastLayerMasks"); - pointerOptions = serializedObject.FindProperty("pointerOptions"); - debugDrawPointingRays = serializedObject.FindProperty("debugDrawPointingRays"); - debugDrawPointingRayColors = serializedObject.FindProperty("debugDrawPointingRayColors"); - gazeCursorPrefab = serializedObject.FindProperty("gazeCursorPrefab"); - gazeProviderType = serializedObject.FindProperty("gazeProviderType"); - useHeadGazeOverride = serializedObject.FindProperty("useHeadGazeOverride"); - isEyeTrackingEnabled = serializedObject.FindProperty("isEyeTrackingEnabled"); - showCursorWithEyeGaze = serializedObject.FindProperty("showCursorWithEyeGaze"); - pointerMediator = serializedObject.FindProperty("pointerMediator"); - primaryPointerSelector = serializedObject.FindProperty("primaryPointerSelector"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.Input)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Gaze Settings", EditorStyles.boldLabel); - { - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(gazeCursorPrefab); - EditorGUILayout.PropertyField(gazeProviderType); - EditorGUILayout.PropertyField(useHeadGazeOverride); - EditorGUILayout.PropertyField(isEyeTrackingEnabled); - EditorGUILayout.Space(); - - if (InspectorUIUtility.RenderIndentedButton("Customize Gaze Provider Settings")) - { - Selection.activeObject = CameraCache.Main.gameObject; - } - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Pointer Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(pointingExtent); - EditorGUILayout.PropertyField(pointingRaycastLayerMasks, true); - EditorGUILayout.PropertyField(pointerMediator); - EditorGUILayout.PropertyField(primaryPointerSelector); - - EditorGUILayout.Space(); - showPointerOptionProperties = EditorGUILayout.Foldout(showPointerOptionProperties, "Pointer Options", true); - if (showPointerOptionProperties) - { - using (new EditorGUI.IndentLevelScope()) - { - RenderPointerList(pointerOptions); - } - } - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Debug Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(debugDrawPointingRays); - EditorGUILayout.PropertyField(debugDrawPointingRayColors, true); - } - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.PointerProfile; - } - - private void RenderPointerList(SerializedProperty list) - { - if (InspectorUIUtility.RenderIndentedButton(AddButtonContent, EditorStyles.miniButton)) - { - pointerOptions.arraySize += 1; - - var newPointerOption = list.GetArrayElementAtIndex(list.arraySize - 1); - var controllerType = newPointerOption.FindPropertyRelative("controllerType"); - var handedness = newPointerOption.FindPropertyRelative("handedness"); - var prefab = newPointerOption.FindPropertyRelative("pointerPrefab"); - - // Reset new entry - controllerType.intValue = 0; - handedness.intValue = 0; - prefab.objectReferenceValue = null; - } - - if (list == null || list.arraySize == 0) - { - EditorGUILayout.HelpBox("Create a new Pointer Option entry.", MessageType.Warning); - return; - } - - for (int i = 0; i < list.arraySize; i++) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - var pointerOption = list.GetArrayElementAtIndex(i); - var controllerType = pointerOption.FindPropertyRelative("controllerType"); - var handedness = pointerOption.FindPropertyRelative("handedness"); - var prefab = pointerOption.FindPropertyRelative("pointerPrefab"); - - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.PropertyField(prefab); - if (GUILayout.Button(MinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - list.DeleteArrayElementAtIndex(i); - break; - } - } - - EditorGUILayout.PropertyField(controllerType, ControllerTypeContent); - EditorGUILayout.PropertyField(handedness); - } - EditorGUILayout.Space(); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs.meta deleted file mode 100644 index 96b848f57..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityPointerProfileInspector.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 137cc53a3db84eb8a0e568d57b36c958 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: - - logo: {instanceID: 0} - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs deleted file mode 100644 index abbcb5dd8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs +++ /dev/null @@ -1,417 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - public class MixedRealityProfileCloneWindow : EditorWindow - { - public enum ProfileCloneBehavior - { - UseExisting, // Use the existing reference - CloneExisting, // Create a clone of the sub-profile - UseSubstitution, // Manually select a profile - LeaveEmpty, // Set the reference to null - } - - private struct SubProfileAction - { - public SubProfileAction( - ProfileCloneBehavior behavior, - SerializedProperty property, - Object substitutionReference, - System.Type profileType) - { - Behavior = behavior; - Property = property; - SubstitutionReference = substitutionReference; - ProfileType = profileType; - TargetFolder = null; - - CloneName = (SubstitutionReference != null) ? "New " + SubstitutionReference.name : "New " + profileType.Name; - } - - public ProfileCloneBehavior Behavior; - public SerializedProperty Property; - public string CloneName; - public Object SubstitutionReference; - public System.Type ProfileType; - internal Object TargetFolder; - } - - private const string AdvancedModeKey = "MRTK_ProfileCloneWindow_AdvancedMode_Key"; - private static bool AdvancedMode = false; - protected static string DefaultCustomProfileFolder => Path.Combine(MixedRealityToolkitFiles.MapModulePath(MixedRealityToolkitModuleType.Generated), "CustomProfiles"); - private const string IsCustomProfileProperty = "isCustomProfile"; - private static readonly Vector2 MinWindowSizeBasic = new Vector2(500, 180); - private const float SubProfileSizeMultiplier = 95f; - private static MixedRealityProfileCloneWindow cloneWindow; - - private BaseMixedRealityProfile parentProfile; - private BaseMixedRealityProfile childProfile; - private SerializedProperty childProperty; - private SerializedObject childSerializedObject; - private Object targetFolder; - private Object selectionTarget; - private string childProfileTypeName; - private string childProfileAssetName; - private List subProfileActions = new List(); - - public static void OpenWindow(BaseMixedRealityProfile parentProfile, BaseMixedRealityProfile childProfile, SerializedProperty childProperty, Object selectionTarget = null) - { - if (cloneWindow != null) - { - cloneWindow.Close(); - } - - cloneWindow = (MixedRealityProfileCloneWindow)GetWindow(true, "Clone Profile", true); - cloneWindow.Initialize(parentProfile, childProfile, childProperty, selectionTarget); - cloneWindow.Show(true); - } - - private void Initialize(BaseMixedRealityProfile parentProfile, BaseMixedRealityProfile childProfile, SerializedProperty childProperty, Object selectionTarget) - { - this.childProperty = childProperty; - this.parentProfile = parentProfile; - this.childProfile = childProfile; - this.selectionTarget = selectionTarget; - - childSerializedObject = new SerializedObject(childProfile); - childProfileTypeName = childProfile.GetType().Name; - childProfileAssetName = "New " + childProfileTypeName; - - // Find all the serialized properties for sub-profiles - SerializedProperty iterator = childSerializedObject.GetIterator(); - System.Type basePropertyType = typeof(BaseMixedRealityProfile); - - while (iterator.Next(true)) - { - SerializedProperty subProfileProperty = childSerializedObject.FindProperty(iterator.name); - - if (subProfileProperty == null) - { - continue; - } - - if (!subProfileProperty.type.Contains("PPtr<$")) // Not an object reference type - { - continue; - } - - string subProfileTypeName = subProfileProperty.type.Replace("PPtr<$", string.Empty).Replace(">", string.Empty).Trim(); - System.Type subProfileType = FindProfileType(subProfileTypeName); - if (subProfileType == null) - { - continue; - } - - if (!basePropertyType.IsAssignableFrom(subProfileType)) - { - continue; - } - - subProfileActions.Add(new SubProfileAction( - ProfileCloneBehavior.UseExisting, - subProfileProperty, - subProfileProperty.objectReferenceValue, - subProfileType)); - } - - cloneWindow.maxSize = MinWindowSizeBasic; - - targetFolder = EnsureTargetFolder(targetFolder); - } - - private void OnGUI() - { - if (cloneWindow == null || childProfile == null) - { - Close(); - return; - } - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.ObjectField("Cloning profile", childProfile, typeof(BaseMixedRealityProfile), false); - if (parentProfile != null) - { // Only show this if we're initiating this from a parent profile - EditorGUILayout.ObjectField("from parent profile", parentProfile, typeof(BaseMixedRealityProfile), false); - } - EditorGUILayout.EndVertical(); - EditorGUILayout.Space(); - - if (subProfileActions.Count > 0) - { - AdvancedMode = EditorGUILayout.Foldout(SessionState.GetBool(AdvancedModeKey, false), "Advanced Options", true, MixedRealityStylesUtility.BoldFoldoutStyle); - SessionState.SetBool(AdvancedModeKey, AdvancedMode); - - if (AdvancedMode) - { - EditorGUILayout.HelpBox("This profile has sub-profiles. By default your clone will reference the existing profiles. If you want to specify a different profile, or if you want to clone the sub-profile, use the options below.", MessageType.Info); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - - for (int i = 0; i < subProfileActions.Count; i++) - { - GUI.color = Color.white; - EditorGUILayout.Space(); - - SubProfileAction action = subProfileActions[i]; - - action.Behavior = (ProfileCloneBehavior)EditorGUILayout.EnumPopup(action.Property.displayName, action.Behavior); - - switch (action.Behavior) - { - case ProfileCloneBehavior.UseExisting: - GUI.color = Color.Lerp(Color.white, Color.clear, 0.5f); - EditorGUILayout.ObjectField("Existing", action.Property.objectReferenceValue, action.ProfileType, false); - break; - - case ProfileCloneBehavior.UseSubstitution: - action.SubstitutionReference = EditorGUILayout.ObjectField("Substitution", action.SubstitutionReference, action.ProfileType, false); - break; - - case ProfileCloneBehavior.CloneExisting: - if (action.Property.objectReferenceValue == null) - { - EditorGUILayout.LabelField("Can't clone profile - none is set."); - } - else - { - action.CloneName = EditorGUILayout.TextField("Clone name", action.CloneName); - } - using (new EditorGUILayout.HorizontalScope()) - { - if (action.TargetFolder == null) - { - action.TargetFolder = targetFolder; - } - action.TargetFolder = EditorGUILayout.ObjectField("Target Folder", action.TargetFolder, typeof(DefaultAsset), false); - if (GUILayout.Button("Put in original folder", EditorStyles.miniButton, GUILayout.MaxWidth(120))) - { - string profilePath = AssetDatabase.GetAssetPath(action.Property.objectReferenceValue); - action.TargetFolder = AssetDatabase.LoadAssetAtPath(System.IO.Path.GetDirectoryName(profilePath)); - } - } - break; - - case ProfileCloneBehavior.LeaveEmpty: - // Add one line for formatting reasons - EditorGUILayout.LabelField(" "); - break; - } - subProfileActions[i] = action; - } - - EditorGUILayout.EndVertical(); - } - } - - GUI.color = Color.white; - // Space between props and buttons at bottom - GUILayout.FlexibleSpace(); - - // Get the selected folder in the project window - using (new EditorGUILayout.HorizontalScope()) - { - targetFolder = EditorGUILayout.ObjectField("Target Folder", targetFolder, typeof(DefaultAsset), false); - if (GUILayout.Button("Put in original folder", EditorStyles.miniButton, GUILayout.MaxWidth(120))) - { - string profilePath = AssetDatabase.GetAssetPath(childProfile); - targetFolder = AssetDatabase.LoadAssetAtPath(System.IO.Path.GetDirectoryName(profilePath)); - } - } - - EditorGUILayout.HelpBox("If no folder is provided, the profile will be cloned to the Assets/MixedRealityToolkit.Generated/CustomProfiles folder.", MessageType.Info); - childProfileAssetName = EditorGUILayout.TextField("Profile Name", childProfileAssetName); - - using (new EditorGUILayout.HorizontalScope()) - { - if (GUILayout.Button("Clone")) - { - targetFolder = EnsureTargetFolder(targetFolder); - CloneMainProfile(); - } - - if (GUILayout.Button("Cancel")) - { - cloneWindow.Close(); - } - } - - // If there are no sub profiles, limit the max so the window isn't spawned too large - if (subProfileActions.Count <= 0 || !AdvancedMode) - { - cloneWindow.minSize = MinWindowSizeBasic; - cloneWindow.maxSize = MinWindowSizeBasic; - } - else - { - Vector2 minWindowSize = MinWindowSizeBasic; - minWindowSize.y = Mathf.Max(minWindowSize.y, subProfileActions.Count * SubProfileSizeMultiplier); - cloneWindow.minSize = minWindowSize; - cloneWindow.maxSize = minWindowSize; - } - - Repaint(); - } - - private void CloneMainProfile() - { - var newChildProfile = CloneProfile(parentProfile, childProfile, childProfileTypeName, childProperty, targetFolder, childProfileAssetName); - SerializedObject newChildSerializedObject = new SerializedObject(newChildProfile); - // First paste all values outright - PasteProfileValues(parentProfile, childProfile, newChildSerializedObject); - - // Then over-write with substitutions or clones - foreach (SubProfileAction action in subProfileActions) - { - SerializedProperty actionProperty = newChildSerializedObject.FindProperty(action.Property.name); - - switch (action.Behavior) - { - case ProfileCloneBehavior.UseExisting: - // Do nothing - break; - - case ProfileCloneBehavior.UseSubstitution: - // Apply the chosen reference to the new property - actionProperty.objectReferenceValue = action.SubstitutionReference; - break; - - case ProfileCloneBehavior.CloneExisting: - // Clone the profile, then apply the new reference - - // If the property reference is null, skip this step, the user was warned - if (action.Property.objectReferenceValue == null) - { - break; - } - - // If for some reason it's the wrong type, bail now - BaseMixedRealityProfile subProfileToClone = (BaseMixedRealityProfile)action.Property.objectReferenceValue; - if (subProfileToClone == null) - { - break; - } - - // Clone the sub profile - Object subTargetFolder = (action.TargetFolder == null) ? targetFolder : action.TargetFolder; - var newSubProfile = CloneProfile(newChildProfile, subProfileToClone, action.ProfileType.Name, actionProperty, subTargetFolder, action.CloneName); - SerializedObject newSubProfileSerializedObject = new SerializedObject(newSubProfile); - // Paste values from existing profile - PasteProfileValues(newChildProfile, subProfileToClone, newSubProfileSerializedObject); - newSubProfileSerializedObject.ApplyModifiedProperties(); - break; - - case ProfileCloneBehavior.LeaveEmpty: - actionProperty.objectReferenceValue = null; - break; - } - } - - newChildSerializedObject.ApplyModifiedProperties(); - - // If we're not working with a parent profile, select the newly created profile - // UNLESS we've been given a selection target - if (selectionTarget != null) - { - Selection.activeObject = selectionTarget; - } - else - { - if (parentProfile == null) - { - Selection.activeObject = newChildProfile; - } - } - - cloneWindow.Close(); - } - - private static BaseMixedRealityProfile CloneProfile(BaseMixedRealityProfile parentProfile, BaseMixedRealityProfile profileToClone, string childProfileTypeName, SerializedProperty childProperty, Object targetFolder, string profileName) - { - ScriptableObject instance = CreateInstance(childProfileTypeName); - instance.name = string.IsNullOrEmpty(profileName) ? childProfileTypeName : profileName; - - string fileName = instance.name; - string path = AssetDatabase.GetAssetPath(targetFolder); - Debug.Log("Creating asset in path " + targetFolder); - - var newChildProfile = instance.CreateAsset(path, fileName) as BaseMixedRealityProfile; - - if (childProperty != null) - { - childProperty.objectReferenceValue = newChildProfile; - childProperty.serializedObject.ApplyModifiedProperties(); - } - - return newChildProfile; - } - - private static void PasteProfileValues(BaseMixedRealityProfile parentProfile, BaseMixedRealityProfile profileToCopy, SerializedObject targetProfile) - { - if (parentProfile != null) - { - Undo.RecordObject(parentProfile, "Paste Profile Values"); - } - - bool targetIsCustom = targetProfile.FindProperty(IsCustomProfileProperty).boolValue; - string originalName = targetProfile.targetObject.name; - EditorUtility.CopySerialized(profileToCopy, targetProfile.targetObject); - targetProfile.Update(); - targetProfile.FindProperty(IsCustomProfileProperty).boolValue = targetIsCustom; - targetProfile.ApplyModifiedProperties(); - targetProfile.targetObject.name = originalName; - - AssetDatabase.SaveAssets(); - } - - private static System.Type FindProfileType(string profileTypeName) - { - System.Type type = null; - foreach (Assembly assembly in System.AppDomain.CurrentDomain.GetAssemblies()) - { - foreach (System.Type checkType in assembly.GetLoadableTypes()) - { - if (checkType.Name == profileTypeName) - { - type = checkType; - break; - } - } - } - - return type; - } - - /// - /// If the targetFolder is invalid asset folder, this will create the CustomProfiles - /// folder and use that as the default target. - /// - private static Object EnsureTargetFolder(Object targetFolder) - { - if (targetFolder != null && AssetDatabase.IsValidFolder(AssetDatabase.GetAssetPath(targetFolder))) - { - return targetFolder; - } - - string customProfilesFolderPath = DefaultCustomProfileFolder; - if (!AssetDatabase.IsValidFolder(customProfilesFolderPath)) - { - // AssetDatabase.CreateFolder must be called to create each child of the asset folder - // path individually. - - // If the packages have been imported via NugetForUnity, MixedRealityToolkitFiles.GetGeneratedFolder - // will also create the MixedRealityToolkit.Generated Folder and return the path to the folder. - AssetDatabase.CreateFolder(MixedRealityToolkitFiles.GetGeneratedFolder, "CustomProfiles"); - } - return AssetDatabase.LoadAssetAtPath(DefaultCustomProfileFolder, typeof(Object)); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs.meta deleted file mode 100644 index cba57e80c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityProfileCloneWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e65ead8fa667a584aba5f82a58b8a590 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs deleted file mode 100644 index 1b55f9faf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs +++ /dev/null @@ -1,201 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(MixedRealityRegisteredServiceProvidersProfile))] - public class MixedRealityRegisteredServiceProviderProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent MinusButtonContent = new GUIContent("-", "Unregister"); - private static readonly GUIContent AddButtonContent = new GUIContent("+ Register a new Service Provider"); - private SerializedProperty configurations; - - private static bool[] configFoldouts; - - private const string ProfileTitle = "Registered Services Settings"; - private const string ProfileDescription = "This profile defines any additional Services like systems, features, and managers to register with the Mixed Reality Toolkit."; - - protected override void OnEnable() - { - base.OnEnable(); - - configurations = serializedObject.FindProperty("configurations"); - configFoldouts = new bool[configurations.arraySize]; - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - RenderList(configurations); - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.RegisteredServiceProvidersProfile == profile; - } - - private void RenderList(SerializedProperty list) - { - bool changed = false; - EditorGUILayout.Space(); - using (new EditorGUILayout.VerticalScope()) - { - if (GUILayout.Button(AddButtonContent, EditorStyles.miniButton)) - { - list.InsertArrayElementAtIndex(list.arraySize); - SerializedProperty managerConfig = list.GetArrayElementAtIndex(list.arraySize - 1); - var componentName = managerConfig.FindPropertyRelative("componentName"); - componentName.stringValue = $"New Configuration {list.arraySize - 1}"; - var priority = managerConfig.FindPropertyRelative("priority"); - priority.intValue = 10; - var runtimePlatform = managerConfig.FindPropertyRelative("runtimePlatform"); - runtimePlatform.intValue = -1; - var configurationProfile = managerConfig.FindPropertyRelative("configurationProfile"); - configurationProfile.objectReferenceValue = null; - serializedObject.ApplyModifiedProperties(); - var componentType = ((MixedRealityRegisteredServiceProvidersProfile)serializedObject.targetObject).Configurations[list.arraySize - 1].ComponentType; - componentType.Type = null; - configFoldouts = new bool[list.arraySize]; - return; - } - - EditorGUILayout.Space(); - - if (list == null || list.arraySize == 0) - { - EditorGUILayout.HelpBox("Register a new Service Provider.", MessageType.Warning); - return; - } - - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField("Configurations", EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - } - EditorGUILayout.Space(); - - for (int i = 0; i < list.arraySize; i++) - { - SerializedProperty managerConfig = list.GetArrayElementAtIndex(i); - var componentName = managerConfig.FindPropertyRelative("componentName"); - var componentType = managerConfig.FindPropertyRelative("componentType"); - var priority = managerConfig.FindPropertyRelative("priority"); - var runtimePlatform = managerConfig.FindPropertyRelative("runtimePlatform"); - var configurationProfile = managerConfig.FindPropertyRelative("configurationProfile"); - - using (new EditorGUILayout.VerticalScope()) - { - using (new EditorGUILayout.HorizontalScope()) - { - configFoldouts[i] = EditorGUILayout.Foldout(configFoldouts[i], componentName.stringValue, true); - - if (GUILayout.Button(MinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - list.DeleteArrayElementAtIndex(i); - serializedObject.ApplyModifiedProperties(); - changed = true; - break; - } - } - - SystemType serviceType = (target as MixedRealityRegisteredServiceProvidersProfile).Configurations[i].ComponentType; - - if (configFoldouts[i] || RenderAsSubProfile) - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(componentName); - changed |= EditorGUI.EndChangeCheck(); - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(componentType); - if (EditorGUI.EndChangeCheck()) - { - // Try to assign default configuration profile when type changes. - serializedObject.ApplyModifiedProperties(); - AssignDefaultConfigurationValues( - ((MixedRealityRegisteredServiceProvidersProfile)serializedObject.targetObject).Configurations[i].ComponentType, - componentName, - configurationProfile, - runtimePlatform); - changed = true; - break; - } - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(priority); - EditorGUILayout.PropertyField(runtimePlatform); - - changed |= EditorGUI.EndChangeCheck(); - - changed |= RenderProfile(configurationProfile, null, true, true, serviceType); - } - - serializedObject.ApplyModifiedProperties(); - } - - if (IsProfileRequired(serviceType) && - (configurationProfile.objectReferenceValue == null)) - { - EditorGUILayout.HelpBox("This service requires a profile to be selected.", MessageType.Warning); - } - } - EditorGUILayout.Space(); - } - } - - if (changed && MixedRealityToolkit.IsInitialized) - { - EditorApplication.delayCall += () => MixedRealityToolkit.Instance.ResetConfiguration(MixedRealityToolkit.Instance.ActiveProfile); - } - } - - private void AssignDefaultConfigurationValues( - System.Type componentType, - SerializedProperty componentName, - SerializedProperty configurationProfile, - SerializedProperty runtimePlatform) - { - configurationProfile.objectReferenceValue = null; - runtimePlatform.intValue = -1; - - if (componentType != null) - { - MixedRealityExtensionServiceAttribute attr = MixedRealityExtensionServiceAttribute.Find(componentType) as MixedRealityExtensionServiceAttribute; - - if (attr != null) - { - componentName.stringValue = !string.IsNullOrWhiteSpace(attr.Name) ? attr.Name : componentType.Name; - configurationProfile.objectReferenceValue = attr.DefaultProfile; - runtimePlatform.intValue = (int)attr.RuntimePlatforms; - } - else - { - componentName.stringValue = componentType.Name; - } - } - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs.meta deleted file mode 100644 index 52b780d19..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityRegisteredServiceProviderProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b61a53c2b44c444cb6b6a567442c5602 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs deleted file mode 100644 index cc939b833..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs +++ /dev/null @@ -1,315 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SceneSystem; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; -using UnityEditorInternal; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(MixedRealitySceneSystemProfile))] - public class MixedRealitySceneSystemProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - const float DragAreaWidth = 0; - const float DragAreaHeight = 30; - const float DragAreaOffset = 10; - const float LightingSceneTypesLabelWidth = 45; - - private static string managerSceneContent = - "The Manager scene is loaded first and remains loaded for the duration of the app. Only one Manager scene is ever loaded, and no scene operation will ever unload it."; - - private static string lightingSceneContent = - "The Lighting scene controls lighting settings such as ambient light, skybox and sun direction. A Lighting scene's content is restricted based on the types defined in your editor settings. A default lighting scene is loaded on initialization. Only one lighting scene will ever be loaded at a time."; - - private static string contentSceneContent = - "Content scenes are everything else. You can load and unload any number of content scenes in any combination, and their content is unrestricted."; - - private static bool showEditorProperties = true; - private const string ShowSceneSystem_Editor_PreferenceKey = "ShowSceneSystem_Editor_PreferenceKey"; - private SerializedProperty editorManageBuildSettings; - private SerializedProperty editorManageLoadedScenes; - private SerializedProperty editorEnforceSceneOrder; - private SerializedProperty editorEnforceLightingSceneTypes; - private SerializedProperty permittedLightingSceneComponentTypes; - - private static bool showManagerProperties = true; - private const string ShowSceneSystem_Manager_PreferenceKey = "ShowSceneSystem_Manager_PreferenceKey"; - private SerializedProperty useManagerScene; - private SerializedProperty managerScene; - - private static bool showContentProperties = true; - private const string ShowSceneSystem_Content_PreferenceKey = "ShowSceneSystem_Content_PreferenceKey"; - private SerializedProperty contentScenes; - - private static bool showLightingProperties = true; - private const string ShowSceneSystem_Lighting_PreferenceKey = "ShowSceneSystem_Lighting_PreferenceKey"; - private SerializedProperty useLightingScene; - private SerializedProperty defaultLightingSceneIndex; - private SerializedProperty lightingScenes; - - private const string ProfileTitle = "Scene System Settings"; - private const string ProfileDescription = "The Scene System helps developers manage additive scene loading at runtime and in editor."; - - - protected override void OnEnable() - { - base.OnEnable(); - - if (!MixedRealityToolkit.IsInitialized) - { - return; - } - - editorManageBuildSettings = serializedObject.FindProperty("editorManageBuildSettings"); - editorManageLoadedScenes = serializedObject.FindProperty("editorManageLoadedScenes"); - editorEnforceSceneOrder = serializedObject.FindProperty("editorEnforceSceneOrder"); - editorEnforceLightingSceneTypes = serializedObject.FindProperty("editorEnforceLightingSceneTypes"); - permittedLightingSceneComponentTypes = serializedObject.FindProperty("permittedLightingSceneComponentTypes"); - - useManagerScene = serializedObject.FindProperty("useManagerScene"); - managerScene = serializedObject.FindProperty("managerScene"); - - useLightingScene = serializedObject.FindProperty("useLightingScene"); - defaultLightingSceneIndex = serializedObject.FindProperty("defaultLightingSceneIndex"); - lightingScenes = serializedObject.FindProperty("lightingScenes"); - - contentScenes = serializedObject.FindProperty("contentScenes"); - } - - public override void OnInspectorGUI() - { - if (!MixedRealityToolkit.IsInitialized) - { - return; - } - - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target)) - { - return; - } - - MixedRealityInspectorUtility.CheckMixedRealityConfigured(true); - - serializedObject.Update(); - - MixedRealitySceneSystemProfile profile = (MixedRealitySceneSystemProfile)target; - - RenderFoldout(ref showEditorProperties, "Editor Settings", () => - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(editorManageBuildSettings); - EditorGUILayout.PropertyField(editorManageLoadedScenes); - EditorGUILayout.PropertyField(editorEnforceSceneOrder); - EditorGUILayout.PropertyField(editorEnforceLightingSceneTypes); - - if (editorEnforceLightingSceneTypes.boolValue) - { - EditorGUILayout.Space(); - EditorGUILayout.HelpBox("Below are the component types that will be allowed in lighting scenes. Types not found in this list will be moved to another scene.", MessageType.Info); - EditorGUIUtility.labelWidth = LightingSceneTypesLabelWidth; - EditorGUILayout.PropertyField(permittedLightingSceneComponentTypes, true); - EditorGUIUtility.labelWidth = 0; - } - } - }, ShowSceneSystem_Editor_PreferenceKey); - - RenderFoldout(ref showManagerProperties, "Manager Scene Settings", () => - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.HelpBox(managerSceneContent, MessageType.Info); - - // Disable the tag field since we're drawing manager scenes - SceneInfoDrawer.DrawTagProperty = false; - EditorGUILayout.PropertyField(useManagerScene); - - if (useManagerScene.boolValue && profile.ManagerScene.IsEmpty && !Application.isPlaying) - { - EditorGUILayout.HelpBox("You haven't created a manager scene yet. Click the button below to create one.", MessageType.Warning); - var buttonRect = EditorGUI.IndentedRect(EditorGUILayout.GetControlRect(System.Array.Empty())); - if (GUI.Button(buttonRect, "Create Manager Scene", EditorStyles.miniButton)) - { - // Create a new manager scene and add it to build settings - SceneInfo newManagerScene = EditorSceneUtils.CreateAndSaveScene("ManagerScene"); - SerializedObjectUtils.SetStructValue(managerScene, newManagerScene); - EditorSceneUtils.AddSceneToBuildSettings(newManagerScene, EditorBuildSettings.scenes, EditorSceneUtils.BuildIndexTarget.First); - } - EditorGUILayout.Space(); - } - - if (useManagerScene.boolValue) - { - EditorGUILayout.PropertyField(managerScene, includeChildren: true); - } - } - }, ShowSceneSystem_Manager_PreferenceKey); - - RenderFoldout(ref showLightingProperties, "Lighting Scene Settings", () => - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.HelpBox(lightingSceneContent, MessageType.Info); - - EditorGUILayout.PropertyField(useLightingScene); - - if (useLightingScene.boolValue && profile.NumLightingScenes < 1 && !Application.isPlaying) - { - EditorGUILayout.HelpBox("You haven't created a lighting scene yet. Click the button below to create one.", MessageType.Warning); - var buttonRect = EditorGUI.IndentedRect(EditorGUILayout.GetControlRect(System.Array.Empty())); - if (GUI.Button(buttonRect, "Create Lighting Scene", EditorStyles.miniButton)) - { - // Create a new lighting scene and add it to build settings - SceneInfo newLightingScene = EditorSceneUtils.CreateAndSaveScene("LightingScene"); - // Create an element in the array - lightingScenes.arraySize = 1; - serializedObject.ApplyModifiedProperties(); - SerializedObjectUtils.SetStructValue(lightingScenes.GetArrayElementAtIndex(0), newLightingScene); - EditorSceneUtils.AddSceneToBuildSettings(newLightingScene, EditorBuildSettings.scenes, EditorSceneUtils.BuildIndexTarget.Last); - } - EditorGUILayout.Space(); - } - - if (useLightingScene.boolValue) - { - // Disable the tag field since we're drawing lighting scenes - SceneInfoDrawer.DrawTagProperty = false; - - if (profile.NumLightingScenes > 0) - { - string[] lightingSceneNames = profile.LightingScenes.Select(l => l.Name).ToArray(); - defaultLightingSceneIndex.intValue = EditorGUILayout.Popup("Default Lighting Scene", defaultLightingSceneIndex.intValue, lightingSceneNames); - } - - EditorGUILayout.PropertyField(lightingScenes, includeChildren: true); - EditorGUILayout.Space(); - - if (profile.NumLightingScenes > 0) - { - if (profile.EditorLightingCacheOutOfDate) - { - EditorGUILayout.HelpBox("Your cached lighting settings may be out of date. This could result in unexpected appearances at runtime.", MessageType.Warning); - } - if (InspectorUIUtility.RenderIndentedButton(new GUIContent("Update Cached Lighting Settings"), EditorStyles.miniButton)) - { - profile.EditorLightingCacheUpdateRequested = true; - } - } - EditorGUILayout.Space(); - } - } - }, ShowSceneSystem_Lighting_PreferenceKey); - - RenderFoldout(ref showContentProperties, "Content Scene Settings", () => - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.HelpBox(contentSceneContent, MessageType.Info); - - // Enable the tag field since we're drawing content scenes - SceneInfoDrawer.DrawTagProperty = true; - EditorGUILayout.PropertyField(contentScenes, includeChildren: true); - } - }, ShowSceneSystem_Content_PreferenceKey); - - serializedObject.ApplyModifiedProperties(); - - // Keep this inspector perpetually refreshed - EditorUtility.SetDirty(target); - } - - protected override bool IsProfileInActiveInstance() - { - return MixedRealityToolkit.IsInitialized - && MixedRealityToolkit.Instance.HasActiveProfile - && MixedRealityToolkit.Instance.ActiveProfile.CameraProfile == this; - } - - /// - /// Used to drag-drop scene objects into scene lists. (Currently unused.) - /// - private void DrawSceneInfoDragAndDrop(SerializedProperty arrayProperty) - { - if (!Application.isPlaying) - { - Rect dropArea = GUILayoutUtility.GetRect(DragAreaWidth, DragAreaHeight, GUILayout.ExpandWidth(true)); - dropArea.width -= DragAreaOffset * 2; - dropArea.x += DragAreaOffset; - GUI.Box(dropArea, "Drag-and-drop new " + arrayProperty.displayName, EditorStyles.helpBox); - - switch (Event.current.type) - { - case EventType.DragUpdated: - case EventType.DragPerform: - if (!dropArea.Contains(Event.current.mousePosition)) - { - break; - } - - DragAndDrop.visualMode = DragAndDropVisualMode.Link; - if (Event.current.type == EventType.DragPerform) - { - SerializedProperty arrayElement = null; - SerializedProperty assetProperty = null; - - DragAndDrop.AcceptDrag(); - foreach (UnityEngine.Object draggedObject in DragAndDrop.objectReferences) - { - if (draggedObject.GetType() != typeof(SceneAsset)) - { // Skip anything that isn't a scene asset - continue; - } - - bool isDuplicate = false; - for (int i = 0; i < arrayProperty.arraySize; i++) - { - arrayElement = arrayProperty.GetArrayElementAtIndex(i); - assetProperty = arrayElement.FindPropertyRelative("Asset"); - if (assetProperty.objectReferenceValue != null && assetProperty.objectReferenceValue == draggedObject) - { - isDuplicate = true; - break; - } - } - - if (isDuplicate) - { // Skip any duplicates - Debug.LogWarning("Skipping " + draggedObject.name + " - it's already in the " + arrayProperty.displayName + " list."); - continue; - } - - // Create the new element at 0 - arrayProperty.InsertArrayElementAtIndex(0); - arrayProperty.serializedObject.ApplyModifiedProperties(); - - // Get the new element and assign the dragged object - arrayElement = arrayProperty.GetArrayElementAtIndex(0); - assetProperty = arrayElement.FindPropertyRelative("Asset"); - assetProperty.objectReferenceValue = draggedObject; - arrayProperty.serializedObject.ApplyModifiedProperties(); - - // Move the new element to end of list - arrayProperty.MoveArrayElement(0, arrayProperty.arraySize - 1); - arrayProperty.serializedObject.ApplyModifiedProperties(); - } - } - break; - } - } - } - - private void OnSelecteContentScene(ReorderableList list) - { - // Do nothing. - } - - private void DrawContentSceneElement(Rect rect, int index, bool isActive, bool isFocused) - { - SceneInfoDrawer.DrawProperty(rect, contentScenes.GetArrayElementAtIndex(index), GUIContent.none, isActive, isFocused); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs.meta deleted file mode 100644 index 888f11107..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySceneSystemProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cf102fcdd7648dc4a93f82d65c4c9deb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs deleted file mode 100644 index 702223c21..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using System.Linq; - -namespace Microsoft.MixedReality.Toolkit.Editor.SpatialAwareness -{ - [CustomEditor(typeof(MixedRealitySpatialAwarenessMeshObserverProfile))] - public class MixedRealitySpatialAwarenessMeshObserverProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - // General settings - private SerializedProperty startupBehavior; - private SerializedProperty observationExtents; - private SerializedProperty observerVolumeType; - private SerializedProperty isStationaryObserver; - private SerializedProperty updateInterval; - - // Physics settings - private SerializedProperty meshPhysicsLayer; - private SerializedProperty recalculateNormals; - private SerializedProperty physicsMaterial; - - // Level of Detail settings - private SerializedProperty levelOfDetail; - private SerializedProperty trianglesPerCubicMeter; - - // Display settings - private SerializedProperty displayOption; - private SerializedProperty visibleMaterial; - private SerializedProperty occlusionMaterial; - - private readonly GUIContent displayOptionContent = new GUIContent("Display Option"); - private readonly GUIContent lodContent = new GUIContent("Level of Detail"); - private readonly GUIContent volumeTypeContent = new GUIContent("Observer Shape"); - private readonly GUIContent physicsLayerContent = new GUIContent("Physics Layer"); - private readonly GUIContent trianglesPerCubicMeterContent = new GUIContent("Triangles/Cubic Meter"); - private const string ProfileTitle = "Spatial Mesh Observer Settings"; - private const string ProfileDescription = "Configuration settings for how the real-world environment will be perceived and displayed."; - - protected override void OnEnable() - { - base.OnEnable(); - - // General settings - startupBehavior = serializedObject.FindProperty("startupBehavior"); - observationExtents = serializedObject.FindProperty("observationExtents"); - observerVolumeType = serializedObject.FindProperty("observerVolumeType"); - isStationaryObserver = serializedObject.FindProperty("isStationaryObserver"); - updateInterval = serializedObject.FindProperty("updateInterval"); - - // Mesh settings - meshPhysicsLayer = serializedObject.FindProperty("meshPhysicsLayer"); - physicsMaterial = serializedObject.FindProperty("physicsMaterial"); - recalculateNormals = serializedObject.FindProperty("recalculateNormals"); - levelOfDetail = serializedObject.FindProperty("levelOfDetail"); - trianglesPerCubicMeter = serializedObject.FindProperty("trianglesPerCubicMeter"); - displayOption = serializedObject.FindProperty("displayOption"); - visibleMaterial = serializedObject.FindProperty("visibleMaterial"); - occlusionMaterial = serializedObject.FindProperty("occlusionMaterial"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.SpatialAwareness)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.LabelField("General Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(startupBehavior); - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(updateInterval); - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(isStationaryObserver); - EditorGUILayout.PropertyField(observerVolumeType, volumeTypeContent); - string message = string.Empty; - if (observerVolumeType.intValue == (int)VolumeType.AxisAlignedCube) - { - message = "Observed meshes will be aligned to the world coordinate space."; - } - else if (observerVolumeType.intValue == (int)VolumeType.UserAlignedCube) - { - message = "Observed meshes will be aligned to the user's coordinate space."; - } - else if (observerVolumeType.intValue == (int)VolumeType.Sphere) - { - message = "The X value of the Observation Extents will be used as the sphere radius."; - } - EditorGUILayout.HelpBox(message, MessageType.Info); - EditorGUILayout.PropertyField(observationExtents); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Physics Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(meshPhysicsLayer, physicsLayerContent); - EditorGUILayout.PropertyField(recalculateNormals); - EditorGUILayout.PropertyField(physicsMaterial); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Level of Detail Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(levelOfDetail, lodContent); - EditorGUILayout.PropertyField(trianglesPerCubicMeter, trianglesPerCubicMeterContent); - EditorGUILayout.HelpBox("The value of Triangles per Cubic Meter is ignored unless Level of Detail is set to Custom.", MessageType.Info); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Display Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(displayOption, displayOptionContent); - EditorGUILayout.PropertyField(visibleMaterial); - EditorGUILayout.PropertyField(occlusionMaterial); - } - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile != null && - MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile.ObserverConfigurations != null && - MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile.ObserverConfigurations.Any(s => s.ObserverProfile == profile); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs.meta deleted file mode 100644 index ab881f37a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessMeshObserverProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 79c224568662ca84eb241a8035a0a433 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs deleted file mode 100644 index a4eeeaa06..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness.Editor -{ - /// - /// Class handles rendering inspector view of MixedRealitySpatialAwarenessSystemProfile object - /// - [CustomEditor(typeof(MixedRealitySpatialAwarenessSystemProfile))] - public class MixedRealitySpatialAwarenessSystemProfileInspector : BaseDataProviderServiceInspector - { - private const string ObserverErrorMsg = "The Mixed Reality Spatial Awareness System requires one or more observers."; - private static readonly GUIContent AddObserverContent = new GUIContent("+ Add Spatial Observer", "Add Spatial Observer"); - private static readonly GUIContent RemoveObserverContent = new GUIContent("-", "Remove Spatial Observer"); - - private const string ProfileTitle = "Spatial Awareness System Settings"; - private const string ProfileDescription = "The Spatial Awareness System profile allows developers to configure cross-platform environmental awareness."; - - /// - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - using (new EditorGUI.IndentLevelScope()) - { - RenderDataProviderList(AddObserverContent, RemoveObserverContent, ObserverErrorMsg, typeof(BaseSpatialAwarenessObserverProfile)); - } - - serializedObject.ApplyModifiedProperties(); - } - } - - /// - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - profile == MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile; - } - - #region DataProvider Inspector Utilities - - /// - protected override SerializedProperty GetDataProviderConfigurationList() - { - return serializedObject.FindProperty("observerConfigurations"); - } - - /// - protected override ServiceConfigurationProperties GetDataProviderConfigurationProperties(SerializedProperty providerEntry) - { - return new ServiceConfigurationProperties() - { - componentName = providerEntry.FindPropertyRelative("componentName"), - componentType = providerEntry.FindPropertyRelative("componentType"), - providerProfile = providerEntry.FindPropertyRelative("observerProfile"), - runtimePlatform = providerEntry.FindPropertyRelative("runtimePlatform"), - }; - } - - /// - protected override IMixedRealityServiceConfiguration GetDataProviderConfiguration(int index) - { - var configurations = (target as MixedRealitySpatialAwarenessSystemProfile)?.ObserverConfigurations; - if (configurations != null && index >= 0 && index < configurations.Length) - { - return configurations[index]; - } - - return null; - } - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs.meta deleted file mode 100644 index 7054a3527..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpatialAwarenessSystemProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 129f491d2df55a64e8731f81942cad21 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs deleted file mode 100644 index 8236139b8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(MixedRealitySpeechCommandsProfile))] - public class MixedRealitySpeechCommandsProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent MinusButtonContent = new GUIContent("-", "Remove Speech Command"); - private static readonly GUIContent AddButtonContent = new GUIContent("+ Add a New Speech Command", "Add Speech Command"); - private static readonly GUIContent LocalizationContent = new GUIContent("LocalizationKey", "An optional key to lookup a localized value for keyword"); - private static readonly GUIContent KeywordContent = new GUIContent("Keyword", "Spoken word that will trigger the action. Overridden by a localized version if LocalizationKey is specified and found"); - private static readonly GUIContent KeyCodeContent = new GUIContent("KeyCode", "The keyboard key that will trigger the action."); - private static readonly GUIContent ActionContent = new GUIContent("Action", "The action to trigger when a keyboard key is pressed or keyword is recognized."); - - private const string ProfileTitle = "Speech Settings"; - private const string ProfileDescription = "Speech Commands are any/all spoken keywords your users will be able say to raise an Input Action in your application."; - - private SerializedProperty recognizerStartBehaviour; - private SerializedProperty recognitionConfidenceLevel; - - private static bool showSpeechCommands = true; - private SerializedProperty speechCommands; - private static GUIContent[] actionLabels = System.Array.Empty(); - private static int[] actionIds = System.Array.Empty(); - private bool isInitialized = false; - - protected override void OnEnable() - { - base.OnEnable(); - - isInitialized = false; - - recognizerStartBehaviour = serializedObject.FindProperty("startBehavior"); - recognitionConfidenceLevel = serializedObject.FindProperty("recognitionConfidenceLevel"); - speechCommands = serializedObject.FindProperty("speechCommands"); - - var thisProfile = target as BaseMixedRealityProfile; - - if (!MixedRealityToolkit.IsInitialized || - !MixedRealityToolkit.Instance.ActiveProfile.IsInputSystemEnabled || - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile == null || - thisProfile != MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.SpeechCommandsProfile) - { - return; - } - - var inputActions = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions; - actionLabels = inputActions.Select(action => new GUIContent(action.Description)).Prepend(new GUIContent("None")).ToArray(); - actionIds = inputActions.Select(action => (int)action.Id).Prepend(0).ToArray(); - - isInitialized = true; - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, isInitialized, BackProfileType.Input)) - { - return; - } - - CheckMixedRealityInputActions(); - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.LabelField("General Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(recognizerStartBehaviour); - EditorGUILayout.PropertyField(recognitionConfidenceLevel); - } - - EditorGUILayout.Space(); - showSpeechCommands = EditorGUILayout.Foldout(showSpeechCommands, "Speech Commands", true, MixedRealityStylesUtility.BoldFoldoutStyle); - if (showSpeechCommands) - { - using (new EditorGUI.IndentLevelScope()) - { - RenderList(speechCommands); - } - } - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.SpeechCommandsProfile; - } - - private void RenderList(SerializedProperty list) - { - // Disable speech commands if we could not initialize successfully - using (new EditorGUI.DisabledGroupScope(!isInitialized)) - { - EditorGUILayout.Space(); - using (new EditorGUILayout.VerticalScope()) - { - if (InspectorUIUtility.RenderIndentedButton(AddButtonContent, EditorStyles.miniButton)) - { - list.arraySize += 1; - var speechCommand = list.GetArrayElementAtIndex(list.arraySize - 1); - var localizationKey = speechCommand.FindPropertyRelative("localizationKey"); - localizationKey.stringValue = string.Empty; - var keyword = speechCommand.FindPropertyRelative("keyword"); - keyword.stringValue = string.Empty; - var keyCode = speechCommand.FindPropertyRelative("keyCode"); - keyCode.intValue = (int)KeyCode.None; - var action = speechCommand.FindPropertyRelative("action"); - var actionId = action.FindPropertyRelative("id"); - actionId.intValue = 0; - } - - EditorGUILayout.Space(); - - if (list == null || list.arraySize == 0) - { - EditorGUILayout.HelpBox("Create a new Speech Command.", MessageType.Warning); - return; - } - - for (int i = 0; i < list.arraySize; i++) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - SerializedProperty speechCommand = list.GetArrayElementAtIndex(i); - - using (new EditorGUILayout.HorizontalScope()) - { - var keyword = speechCommand.FindPropertyRelative("keyword"); - EditorGUILayout.PropertyField(keyword, KeywordContent); - if (GUILayout.Button(MinusButtonContent, EditorStyles.miniButtonRight, GUILayout.Width(24f))) - { - list.DeleteArrayElementAtIndex(i); - break; - } - } - - var localizationKey = speechCommand.FindPropertyRelative("localizationKey"); - EditorGUILayout.PropertyField(localizationKey, LocalizationContent); - - var keyCode = speechCommand.FindPropertyRelative("keyCode"); - EditorGUILayout.PropertyField(keyCode, KeyCodeContent); - - var action = speechCommand.FindPropertyRelative("action"); - var actionId = action.FindPropertyRelative("id"); - var actionDescription = action.FindPropertyRelative("description"); - var actionConstraint = action.FindPropertyRelative("axisConstraint"); - - EditorGUI.BeginChangeCheck(); - actionId.intValue = EditorGUILayout.IntPopup(ActionContent, actionId.intValue, actionLabels, actionIds); - - if (EditorGUI.EndChangeCheck()) - { - MixedRealityInputAction inputAction = actionId.intValue == 0 ? MixedRealityInputAction.None : MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions[actionId.intValue - 1]; - actionDescription.stringValue = inputAction.Description; - actionConstraint.enumValueIndex = (int)inputAction.AxisConstraint; - } - } - EditorGUILayout.Space(); - } - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs.meta deleted file mode 100644 index e01d711a0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealitySpeechCommandsProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d996fc103ca1456cbd0164baee6afd69 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs deleted file mode 100644 index bd843240c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs +++ /dev/null @@ -1,496 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Boundary; -using Microsoft.MixedReality.Toolkit.Diagnostics; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Rendering; -using Microsoft.MixedReality.Toolkit.SceneSystem; -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(MixedRealityToolkitConfigurationProfile))] - public class MixedRealityToolkitConfigurationProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private static readonly GUIContent TargetScaleContent = new GUIContent("Target Scale:"); - - // Experience properties - private SerializedProperty targetExperienceScale; - // Camera properties - private SerializedProperty enableCameraSystem; - private SerializedProperty cameraSystemType; - private SerializedProperty cameraProfile; - // Input system properties - private SerializedProperty enableInputSystem; - private SerializedProperty inputSystemType; - private SerializedProperty inputSystemProfile; - // Boundary system properties - private SerializedProperty enableBoundarySystem; - private SerializedProperty boundarySystemType; - private SerializedProperty boundaryVisualizationProfile; - // Teleport system properties - private SerializedProperty enableTeleportSystem; - private SerializedProperty teleportSystemType; - // Spatial Awareness system properties - private SerializedProperty enableSpatialAwarenessSystem; - private SerializedProperty spatialAwarenessSystemType; - private SerializedProperty spatialAwarenessSystemProfile; - // Diagnostic system properties - private SerializedProperty enableDiagnosticsSystem; - private SerializedProperty enableVerboseLogging; - private SerializedProperty diagnosticsSystemType; - private SerializedProperty diagnosticsSystemProfile; - // Scene system properties - private SerializedProperty enableSceneSystem; - private SerializedProperty sceneSystemType; - private SerializedProperty sceneSystemProfile; - - // Additional registered components profile - private SerializedProperty registeredServiceProvidersProfile; - - // Editor settings - private SerializedProperty useServiceInspectors; - private SerializedProperty renderDepthBuffer; - - private Func[] renderProfileFuncs; - - private static readonly string[] ProfileTabTitles = { - "Camera", - "Input", - "Boundary", - "Teleport", - "Spatial Awareness", - "Diagnostics", - "Scene System", - "Extensions", - "Editor", - }; - - private static int SelectedProfileTab = 0; - private const string SelectedTabPreferenceKey = "SelectedProfileTab"; - - protected override void OnEnable() - { - base.OnEnable(); - - if (target == null) - { - // Either when we are recompiling, or the inspector window is hidden behind another one, the target can get destroyed (null) and thereby will raise an ArgumentException when accessing serializedObject. For now, just return. - return; - } - - MixedRealityToolkitConfigurationProfile mrtkConfigProfile = target as MixedRealityToolkitConfigurationProfile; - - // Experience configuration - targetExperienceScale = serializedObject.FindProperty("targetExperienceScale"); - // Camera configuration - enableCameraSystem = serializedObject.FindProperty("enableCameraSystem"); - cameraSystemType = serializedObject.FindProperty("cameraSystemType"); - cameraProfile = serializedObject.FindProperty("cameraProfile"); - // Input system configuration - enableInputSystem = serializedObject.FindProperty("enableInputSystem"); - inputSystemType = serializedObject.FindProperty("inputSystemType"); - inputSystemProfile = serializedObject.FindProperty("inputSystemProfile"); - // Boundary system configuration - enableBoundarySystem = serializedObject.FindProperty("enableBoundarySystem"); - boundarySystemType = serializedObject.FindProperty("boundarySystemType"); - boundaryVisualizationProfile = serializedObject.FindProperty("boundaryVisualizationProfile"); - // Teleport system configuration - enableTeleportSystem = serializedObject.FindProperty("enableTeleportSystem"); - teleportSystemType = serializedObject.FindProperty("teleportSystemType"); - // Spatial Awareness system configuration - enableSpatialAwarenessSystem = serializedObject.FindProperty("enableSpatialAwarenessSystem"); - spatialAwarenessSystemType = serializedObject.FindProperty("spatialAwarenessSystemType"); - spatialAwarenessSystemProfile = serializedObject.FindProperty("spatialAwarenessSystemProfile"); - // Diagnostics system configuration - enableDiagnosticsSystem = serializedObject.FindProperty("enableDiagnosticsSystem"); - enableVerboseLogging = serializedObject.FindProperty("enableVerboseLogging"); - diagnosticsSystemType = serializedObject.FindProperty("diagnosticsSystemType"); - diagnosticsSystemProfile = serializedObject.FindProperty("diagnosticsSystemProfile"); - // Scene system configuration - enableSceneSystem = serializedObject.FindProperty("enableSceneSystem"); - sceneSystemType = serializedObject.FindProperty("sceneSystemType"); - sceneSystemProfile = serializedObject.FindProperty("sceneSystemProfile"); - - // Additional registered components configuration - registeredServiceProvidersProfile = serializedObject.FindProperty("registeredServiceProvidersProfile"); - - // Editor settings - useServiceInspectors = serializedObject.FindProperty("useServiceInspectors"); - renderDepthBuffer = serializedObject.FindProperty("renderDepthBuffer"); - - SelectedProfileTab = SessionState.GetInt(SelectedTabPreferenceKey, SelectedProfileTab); - - if (renderProfileFuncs == null) - { - renderProfileFuncs = new Func[] - { - () => { - bool changed = false; - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(enableCameraSystem); - - const string service = "Camera System"; - if (enableCameraSystem.boolValue) - { - CheckSystemConfiguration(service, mrtkConfigProfile.CameraSystemType, mrtkConfigProfile.CameraProfile != null); - - EditorGUILayout.PropertyField(cameraSystemType); - - changed |= RenderProfile(cameraProfile, typeof(MixedRealityCameraProfile), true, false); - } - else - { - RenderSystemDisabled(service); - } - - changed |= c.changed; - } - return changed; - }, - () => { - bool changed = false; - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(enableInputSystem); - - const string service = "Input System"; - if (enableInputSystem.boolValue) - { - CheckSystemConfiguration(service, mrtkConfigProfile.InputSystemType, mrtkConfigProfile.InputSystemProfile != null); - - EditorGUILayout.PropertyField(inputSystemType); - - changed |= RenderProfile(inputSystemProfile, null, true, false, typeof(IMixedRealityInputSystem)); - } - else - { - RenderSystemDisabled(service); - } - - changed |= c.changed; - } - return changed; - }, - () => { - var experienceScale = (ExperienceScale)targetExperienceScale.intValue; - if (experienceScale != ExperienceScale.Room) - { - // Alert the user if the experience scale does not support boundary features. - GUILayout.Space(6f); - EditorGUILayout.HelpBox("Boundaries are only supported in Room scale experiences.", MessageType.Warning); - GUILayout.Space(6f); - } - - bool changed = false; - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(enableBoundarySystem); - - const string service = "Boundary System"; - if (enableBoundarySystem.boolValue) - { - CheckSystemConfiguration(service, mrtkConfigProfile.BoundarySystemSystemType, mrtkConfigProfile.BoundaryVisualizationProfile != null); - - EditorGUILayout.PropertyField(boundarySystemType); - - changed |= RenderProfile(boundaryVisualizationProfile, null, true, false, typeof(IMixedRealityBoundarySystem)); - } - else - { - RenderSystemDisabled(service); - } - - changed |= c.changed; - } - return changed; - }, - () => { - const string service = "Teleport System"; - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(enableTeleportSystem); - if (enableTeleportSystem.boolValue) - { - // Teleport System does not have a profile scriptableobject so auto to true - CheckSystemConfiguration(service, mrtkConfigProfile.TeleportSystemSystemType,true); - - EditorGUILayout.PropertyField(teleportSystemType); - } - else - { - RenderSystemDisabled(service); - } - - return c.changed; - } - }, - () => { - bool changed = false; - using (var c = new EditorGUI.ChangeCheckScope()) - { - const string service = "Spatial Awareness System"; - EditorGUILayout.PropertyField(enableSpatialAwarenessSystem); - - if (enableSpatialAwarenessSystem.boolValue) - { - CheckSystemConfiguration(service, mrtkConfigProfile.SpatialAwarenessSystemSystemType, mrtkConfigProfile.SpatialAwarenessSystemProfile != null); - - EditorGUILayout.PropertyField(spatialAwarenessSystemType); - - EditorGUILayout.HelpBox("Spatial Awareness settings are configured per observer.", MessageType.Info); - - changed |= RenderProfile(spatialAwarenessSystemProfile, null, true, false, typeof(IMixedRealitySpatialAwarenessSystem)); - } - else - { - RenderSystemDisabled(service); - } - - changed |= c.changed; - } - return changed; - }, - () => { - EditorGUILayout.HelpBox("It is recommended to enable the Diagnostics system during development. Be sure to disable prior to building your shipping product.", MessageType.Warning); - - bool changed = false; - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(enableVerboseLogging); - EditorGUILayout.PropertyField(enableDiagnosticsSystem); - - const string service = "Diagnostics System"; - if (enableDiagnosticsSystem.boolValue) - { - CheckSystemConfiguration(service, mrtkConfigProfile.DiagnosticsSystemSystemType, mrtkConfigProfile.DiagnosticsSystemProfile != null); - - EditorGUILayout.PropertyField(diagnosticsSystemType); - - changed |= RenderProfile(diagnosticsSystemProfile, typeof(MixedRealityDiagnosticsProfile)); - } - else - { - RenderSystemDisabled(service); - } - - changed |= c.changed; - } - return changed; - }, - () => { - bool changed = false; - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(enableSceneSystem); - const string service = "Scene System"; - if (enableSceneSystem.boolValue) - { - CheckSystemConfiguration(service, mrtkConfigProfile.SceneSystemSystemType, mrtkConfigProfile.SceneSystemProfile != null); - - EditorGUILayout.PropertyField(sceneSystemType); - - changed |= RenderProfile(sceneSystemProfile, typeof(MixedRealitySceneSystemProfile), true, true, typeof(IMixedRealitySceneSystem)); - } - - changed |= c.changed; - } - return changed; - }, - () => { - return RenderProfile(registeredServiceProvidersProfile, typeof(MixedRealityRegisteredServiceProvidersProfile), true, false); - }, - () => { - EditorGUILayout.PropertyField(useServiceInspectors); - - using (var c = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(renderDepthBuffer); - if (c.changed) - { - if (renderDepthBuffer.boolValue) - { - CameraCache.Main.gameObject.AddComponent(); - } - else - { - foreach (var dbr in FindObjectsOfType()) - { - UnityObjectExtensions.DestroyObject(dbr); - } - } - } - } - return false; - }, - }; - } - } - - public override void OnInspectorGUI() - { - var configurationProfile = (MixedRealityToolkitConfigurationProfile)target; - serializedObject.Update(); - - if (!RenderMRTKLogoAndSearch()) - { - CheckEditorPlayMode(); - return; - } - - CheckEditorPlayMode(); - - if (!MixedRealityToolkit.IsInitialized) - { - EditorGUILayout.HelpBox("No Mixed Reality Toolkit found in scene.", MessageType.Warning); - if (InspectorUIUtility.RenderIndentedButton("Add Mixed Reality Toolkit instance to scene")) - { - MixedRealityInspectorUtility.AddMixedRealityToolkitToScene(configurationProfile); - } - } - - if (!configurationProfile.IsCustomProfile) - { - EditorGUILayout.HelpBox("The Mixed Reality Toolkit's core SDK profiles can be used to get up and running quickly.\n\n" + - "You can use the default profiles provided, copy and customize the default profiles, or create your own.", MessageType.Warning); - EditorGUILayout.BeginHorizontal(); - - if (GUILayout.Button("Copy & Customize")) - { - SerializedProperty targetProperty = null; - UnityEngine.Object selectionTarget = null; - // If we have an active MRTK instance, find its config profile serialized property - if (MixedRealityToolkit.IsInitialized) - { - selectionTarget = MixedRealityToolkit.Instance; - SerializedObject mixedRealityToolkitObject = new SerializedObject(MixedRealityToolkit.Instance); - targetProperty = mixedRealityToolkitObject.FindProperty("activeProfile"); - } - MixedRealityProfileCloneWindow.OpenWindow(null, target as BaseMixedRealityProfile, targetProperty, selectionTarget); - } - - if (MixedRealityToolkit.IsInitialized) - { - if (GUILayout.Button("Create new profiles")) - { - ScriptableObject profile = CreateInstance(nameof(MixedRealityToolkitConfigurationProfile)); - var newProfile = profile.CreateAsset("Assets/MixedRealityToolkit.Generated/CustomProfiles") as MixedRealityToolkitConfigurationProfile; - UnityEditor.Undo.RecordObject(MixedRealityToolkit.Instance, "Create new profiles"); - MixedRealityToolkit.Instance.ActiveProfile = newProfile; - Selection.activeObject = newProfile; - } - } - - EditorGUILayout.EndHorizontal(); - EditorGUILayout.LabelField(string.Empty, GUI.skin.horizontalSlider); - } - - bool isGUIEnabled = !IsProfileLock((BaseMixedRealityProfile)target) && GUI.enabled; - GUI.enabled = isGUIEnabled; - - EditorGUI.BeginChangeCheck(); - bool changed = false; - - // Experience configuration - ExperienceScale experienceScale = (ExperienceScale)targetExperienceScale.intValue; - EditorGUILayout.PropertyField(targetExperienceScale, TargetScaleContent); - - string scaleDescription = GetExperienceDescription(experienceScale); - if (!string.IsNullOrEmpty(scaleDescription)) - { - EditorGUILayout.HelpBox(scaleDescription, MessageType.None); - EditorGUILayout.Space(); - } - - changed |= EditorGUI.EndChangeCheck(); - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Width(100)); - GUI.enabled = true; // Force enable so we can view profile defaults - - int prefsSelectedTab = SessionState.GetInt(SelectedTabPreferenceKey, 0); - SelectedProfileTab = GUILayout.SelectionGrid(prefsSelectedTab, ProfileTabTitles, 1, GUILayout.MaxWidth(125)); - if (SelectedProfileTab != prefsSelectedTab) - { - SessionState.SetInt(SelectedTabPreferenceKey, SelectedProfileTab); - } - - GUI.enabled = isGUIEnabled; - EditorGUILayout.EndVertical(); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - using (new EditorGUI.IndentLevelScope()) - { - changed |= renderProfileFuncs[SelectedProfileTab](); - } - EditorGUILayout.EndVertical(); - EditorGUILayout.EndHorizontal(); - - serializedObject.ApplyModifiedProperties(); - GUI.enabled = true; - - if (changed && MixedRealityToolkit.IsInitialized) - { - EditorApplication.delayCall += () => MixedRealityToolkit.Instance.ResetConfiguration(configurationProfile); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - profile == MixedRealityToolkit.Instance.ActiveProfile; - } - - /// - /// Checks if a system is enabled and the service type or validProfile is null, then displays warning message to the user - /// - /// name of service being tested - /// Selected implementation type for service - /// true if profile scriptableobject property is not null, false otherwise - protected void CheckSystemConfiguration(string service, SystemType systemType, bool validProfile) - { - if (systemType?.Type == null || !validProfile) - { - EditorGUILayout.HelpBox($"{service} is enabled but will not be initialized because the System Type and/or Profile is not set.", MessageType.Warning); - } - } - - /// - /// Render helpbox that provided service string is disabled and none of its functionality will be loaded at runtime - /// - protected static void RenderSystemDisabled(string service) - { - EditorGUILayout.Space(); - EditorGUILayout.HelpBox($"The {service} is disabled.\n\nThis module will not be loaded and thus none of its features will be available at runtime.", MessageType.Info); - EditorGUILayout.Space(); - } - - private static string GetExperienceDescription(ExperienceScale experienceScale) - { - switch (experienceScale) - { - case ExperienceScale.OrientationOnly: - return "The user is stationary. Position data does not change."; - case ExperienceScale.Seated: - return "The user is stationary and seated. The origin of the world is at a neutral head-level position."; - case ExperienceScale.Standing: - return "The user is stationary and standing. The origin of the world is on the floor, facing forward."; - case ExperienceScale.Room: - return "The user is free to move about the room. The origin of the world is on the floor, facing forward. Boundaries are available."; - case ExperienceScale.World: - return "The user is free to move about the world. Relies upon knowledge of the environment (Spatial Anchors and Spatial Mapping)."; - } - - return null; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs.meta deleted file mode 100644 index 1a7fdfe0a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 2c26aa3e9a68477e9a4f07352dd39ab4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: - - logo: {instanceID: 0} - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers.meta deleted file mode 100644 index c43607407..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ca598b36c27d4c94af91cbefe6127938 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs deleted file mode 100644 index 784fa253f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Renders enum flags on fields with the attribute. - /// From https://answers.unity.com/questions/486694/default-editor-enum-as-flags-.html - /// - [CustomPropertyDrawer(typeof(EnumFlagsAttribute))] - public class EnumFlagsAttributeDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - property.intValue = EditorGUI.MaskField(position, label, property.intValue, property.enumDisplayNames); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs.meta deleted file mode 100644 index fa87c4a1f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/EnumFlagsAttributeDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6aa1351245f841d4a814bee7cc00df5b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs deleted file mode 100644 index 61de27742..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Draws a customer decorator drawer that displays a help box with rich text tagging implementation as experimental. - /// - [CustomPropertyDrawer(typeof(ExperimentalAttribute))] - public class ExperimentalDrawer : DecoratorDrawer - { - /// - /// Unity calls this function to draw the GUI. - /// - /// Rectangle to display the GUI in - public override void OnGUI(Rect position) - { - var experimental = attribute as ExperimentalAttribute; - - if (experimental != null) - { - var defaultValue = EditorStyles.helpBox.richText; - EditorStyles.helpBox.richText = true; - EditorGUI.HelpBox(position, experimental.Text, MessageType.Warning); - EditorStyles.helpBox.richText = defaultValue; - } - } - - /// - /// Returns the height required to display UI elements drawn by OnGUI. - /// - /// The height required by OnGUI. - public override float GetHeight() - { - var experimental = attribute as ExperimentalAttribute; - - if (experimental != null) - { - return EditorStyles.helpBox.CalcHeight(new GUIContent(experimental.Text), EditorGUIUtility.currentViewWidth); - } - - return base.GetHeight(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs.meta deleted file mode 100644 index ce6fdb372..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ExperimentalDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cd85b928fff94c645b5eb1c23c11ad2a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs deleted file mode 100644 index 49821a3ac..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Custom property drawer to show an optionally collapsible foldout help section in the Inspector - /// - /// - /// - /// [Help("This is a multiline optionally collapsable help section.\n • Great for providing simple instructions in Inspector.\n • Easy to use.\n • Saves space.")] - /// - /// - [CustomPropertyDrawer(typeof(HelpAttribute))] - public class HelpDrawer : DecoratorDrawer - { - /// - /// Unity calls this function to draw the GUI - /// - /// Rectangle to display the GUI in - public override void OnGUI(Rect position) - { - HelpAttribute help = attribute as HelpAttribute; - - if (help.Collapsible) - { - HelpFoldOut = EditorGUI.Foldout(position, HelpFoldOut, help.Header); - if (HelpFoldOut) - { - EditorGUI.HelpBox(position, help.Text, MessageType.Info); - } - } - else - { - EditorGUI.HelpBox(position, help.Text, MessageType.Info); - } - cachedPosition = position; - } - - /// - /// Gets the height of the decorator - /// - public override float GetHeight() - { - HelpAttribute help = attribute as HelpAttribute; - - // Computing the actual height requires the cachedPosition because - // CalcSize doesn't factor in word-wrapped height, and CalcHeight - // requires a pre-determined width. - GUIStyle helpStyle = EditorStyles.helpBox; - GUIContent helpContent = new GUIContent(help.Text); - float wrappedHeight = helpStyle.CalcHeight(helpContent, cachedPosition.width); - - // The height of the help box should be the content if expanded, or - // just the header text if not expanded. - float contentHeight = !help.Collapsible || HelpFoldOut ? - wrappedHeight : - helpStyle.lineHeight; - - return helpStyle.margin.top + helpStyle.margin.bottom + contentHeight; - } - - #region Private - - /// - /// The "help" foldout state - /// - private bool HelpFoldOut = false; - private Rect cachedPosition = new Rect(); - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs.meta deleted file mode 100644 index 2488c17e9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/HelpDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 484c9c379fb924844953a4487ccdbad0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs deleted file mode 100644 index d7aee03fb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomPropertyDrawer(typeof(MixedRealityInputAction))] - public class InputActionPropertyDrawer : PropertyDrawer - { - private static MixedRealityInputActionsProfile profile = null; - private static GUIContent[] actionLabels = { new GUIContent("Missing Input Action Profile") }; - private static int[] actionIds = { 0 }; - - public override void OnGUI(Rect rect, SerializedProperty property, GUIContent content) - { - if (!MixedRealityToolkit.IsInitialized || !MixedRealityToolkit.Instance.HasActiveProfile) - { - profile = null; - actionLabels = new[] { new GUIContent("Missing Mixed Reality Toolkit") }; - actionIds = new[] { 0 }; - } - else - { - if (profile == null || - (MixedRealityToolkit.Instance.ActiveProfile.IsInputSystemEnabled && - profile.InputActions != null && - profile.InputActions != MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile.InputActions)) - { - profile = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.InputActionsProfile; - - if (profile != null) - { - actionLabels = profile.InputActions.Select(action => new GUIContent(action.Description)).Prepend(new GUIContent("None")).ToArray(); - actionIds = profile.InputActions.Select(action => (int)action.Id).Prepend(0).ToArray(); - } - else - { - actionLabels = new[] { new GUIContent("No input action profile found") }; - actionIds = new[] { 0 }; - } - } - - if (!MixedRealityToolkit.Instance.ActiveProfile.IsInputSystemEnabled) - { - profile = null; - actionLabels = new[] { new GUIContent("Input System Disabled") }; - actionIds = new[] { 0 }; - } - } - - var label = EditorGUI.BeginProperty(rect, content, property); - var inputActionId = property.FindPropertyRelative("id"); - - if (profile == null || actionLabels == null || actionIds == null) - { - GUI.enabled = false; - EditorGUI.IntPopup(rect, label, inputActionId.intValue.ResetIfGreaterThan(0), actionLabels, actionIds); - GUI.enabled = true; - } - else - { - EditorGUI.BeginChangeCheck(); - inputActionId.intValue = EditorGUI.IntPopup(rect, label, inputActionId.intValue.ResetIfGreaterThan(profile.InputActions.Length), actionLabels, actionIds); - - if (EditorGUI.EndChangeCheck()) - { - var description = property.FindPropertyRelative("description"); - var axisConstraint = property.FindPropertyRelative("axisConstraint"); - - if (inputActionId.intValue > 0) - { - description.stringValue = profile.InputActions[inputActionId.intValue - 1].Description; - axisConstraint.intValue = (int)profile.InputActions[inputActionId.intValue - 1].AxisConstraint; - } - else - { - description.stringValue = "None"; - axisConstraint.intValue = 0; - } - } - } - - EditorGUI.EndProperty(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs.meta deleted file mode 100644 index ff47715a8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/InputActionPropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4d6d0005923b40fd8be3dc72fbc920cd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs deleted file mode 100644 index fd5fc380a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomPropertyDrawer(typeof(MixedRealityPose))] - public class MixedRealityPosePropertyDrawer : PropertyDrawer - { - private readonly GUIContent positionContent = new GUIContent("Position"); - private readonly GUIContent rotationContent = new GUIContent("Rotation"); - private const int NumberOfLines = 3; - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return EditorGUIUtility.singleLineHeight * NumberOfLines; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - bool lastMode = EditorGUIUtility.wideMode; - EditorGUIUtility.wideMode = true; - EditorGUI.BeginProperty(position, label, property); - EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); - EditorGUI.indentLevel++; - - var fieldHeight = position.height / NumberOfLines; - var positionRect = new Rect(position.x, position.y + fieldHeight, position.width, fieldHeight); - var rotationRect = new Rect(position.x, position.y + fieldHeight * 2, position.width, fieldHeight); - - EditorGUI.PropertyField(positionRect, property.FindPropertyRelative("position"), positionContent); - - EditorGUI.BeginChangeCheck(); - var rotationProperty = property.FindPropertyRelative("rotation"); - var newEulerRotation = EditorGUI.Vector3Field(rotationRect, rotationContent, rotationProperty.quaternionValue.eulerAngles); - - if (EditorGUI.EndChangeCheck()) - { - rotationProperty.quaternionValue = Quaternion.Euler(newEulerRotation); - } - - EditorGUI.indentLevel--; - EditorGUIUtility.wideMode = lastMode; - EditorGUI.EndProperty(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs.meta deleted file mode 100644 index 3bf9215c7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/MixedRealityPosePropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: af801b933f5e405f834b32ec02d1072f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs deleted file mode 100644 index ffbcc57c1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics.Editor -{ - /// - /// Renders the physics layer dropdown based on the current layers set in the Tag Manager. - /// - [CustomPropertyDrawer(typeof(PhysicsLayerAttribute))] - public sealed class PhysicsLayerAttributeDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - var guiContents = new List(); - var layerIds = new List(); - - for (int i = 0; i < EditorLayerExtensions.TagManagerLayers.arraySize; i++) - { - var layer = EditorLayerExtensions.TagManagerLayers.GetArrayElementAtIndex(i); - - if (!string.IsNullOrWhiteSpace(layer.stringValue)) - { - guiContents.Add(new GUIContent($"{i}: {layer.stringValue}")); - layerIds.Add(i); - } - } - - property.intValue = EditorGUI.IntPopup(position, label, property.intValue, guiContents.ToArray(), layerIds.ToArray()); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs.meta deleted file mode 100644 index e7cf0811c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PhysicsLayerAttributeDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aff88c41ecbf4e11bb7798d1087b4099 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs deleted file mode 100644 index 28f07622b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Custom property drawer for decorated GameObject values rendered in the inspector. - /// - [CustomPropertyDrawer(typeof(PrefabAttribute))] - public class PrefabPropertyDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - var prefabAttribute = (PrefabAttribute)attribute; - - if (prefabAttribute != null && - property.propertyType == SerializedPropertyType.ObjectReference && - (property.objectReferenceValue is GameObject || property.objectReferenceValue == null)) - { - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(position, property); - - if (!EditorGUI.EndChangeCheck()) { return; } - if (property.objectReferenceValue == null) { return; } - - if (PrefabUtility.GetPrefabAssetType(property.objectReferenceValue) == PrefabAssetType.NotAPrefab) - { - property.objectReferenceValue = null; - Debug.LogWarning("Assigned GameObject must be a prefab."); - } - } - else - { - EditorGUI.LabelField(position, label.text, "Use PrefabAttribute with GameObject fields only."); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs.meta deleted file mode 100644 index 4d0671697..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/PrefabPropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e2e007466b9648b7832d227bcbd46ae5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs deleted file mode 100644 index 8d6a75d7a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs +++ /dev/null @@ -1,25 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Draws an object field as a scene asset reference. - /// This enables fields to store references to scene assets (which is an editor-only object) as unity objects (which work in both editor and runtime) - /// - [CustomPropertyDrawer(typeof(SceneAssetReferenceAttribute))] - public class SceneAssetReferenceAttributeDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - EditorGUI.BeginProperty(position, new GUIContent(property.name), property); - UnityEngine.Object newObject = EditorGUI.ObjectField(position, label, property.objectReferenceValue, typeof(SceneAsset), false); - if (property.objectReferenceValue != newObject) - { - property.objectReferenceValue = newObject; - EditorUtility.SetDirty(property.serializedObject.targetObject); - } - EditorGUI.EndProperty(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs.meta deleted file mode 100644 index 952cd85f4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneAssetReferenceAttributeDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 10f3153a8cd95864e97922a706b18798 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs deleted file mode 100644 index 58f5d75f8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs +++ /dev/null @@ -1,269 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SceneSystem; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Draws the scene info struct and populates its hidden fields. - /// - [CustomPropertyDrawer(typeof(SceneInfo))] - public class SceneInfoDrawer : PropertyDrawer - { - /// - /// Used to control whether to draw the tag property. - /// All scenes can have tags, but they're not always relevant based on how the scene is being used. - /// Not sure how much I like this method of controlling property drawing since it could result in unpredictable behavior in inspectors. - /// We could add an enum or bool to the SceneInfo struct to control this, but that seemed like unnecessary clutter. - /// - public static bool DrawTagProperty { get; set; } - - const float iconWidth = 20f; - const float totalPropertyWidth = 410; - const float assetPropertyWidth = 400; - const float tagPropertyWidth = 400; - const float buttonPropertyWidth = 400; - const float assetLabelWidth = 150; - const float tagLabelWidth = 40; - - const string enabledIconContent = "TestPassed"; - const string missingIconContent = "TestIgnored"; - const string disabledIconContent = "TestNormal"; - const string warningIconContent = "TestInconclusive"; - const string errorIconContent = "TestFailed"; - - static RectOffset boxOffset; - static GUIStyle italicStyle; - - public static float GetPropertyHeight(bool drawTagProperty) - { - return (EditorGUIUtility.standardVerticalSpacing + EditorGUIUtility.singleLineHeight) * (drawTagProperty ? 4 : 3); - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return GetPropertyHeight(DrawTagProperty); - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - DrawProperty(position, property, label); - } - - public static void DrawProperty(Rect position, SerializedProperty property, GUIContent label, bool isActive = false, bool isSelected = false) - { - SerializedProperty assetProperty, nameProperty, pathProperty, buildIndexProperty, includedProperty, tagProperty; - SceneInfoUtils.GetSceneInfoRelativeProperties(property, out assetProperty, out nameProperty, out pathProperty, out buildIndexProperty, out includedProperty, out tagProperty); - - // Set up our properties and settings - boxOffset = EditorStyles.helpBox.padding; - if (italicStyle == null) { italicStyle = new GUIStyle(EditorStyles.label); } - bool lastMode = EditorGUIUtility.wideMode; - int lastIndentLevel = EditorGUI.indentLevel; - EditorGUIUtility.wideMode = true; - EditorGUI.BeginProperty(position, label, property); - - GUI.color = isActive ? Color.gray : GUI.backgroundColor; - GUI.color = isSelected ? Color.blue : GUI.backgroundColor; - - // Indent our rect, then reset indent to 0 so sub-properties don't get doubly indented - position = EditorGUI.IndentedRect(position); - EditorGUI.indentLevel = 0; - - // Draw a box around our item - Rect boxPosition = position; - boxPosition.height = (EditorGUIUtility.singleLineHeight * (DrawTagProperty ? 4 : 3)) - EditorGUIUtility.standardVerticalSpacing; - GUI.Box(boxPosition, GUIContent.none, EditorStyles.helpBox); - - position = boxOffset.Remove(position); - - Rect iconRect = position; - iconRect.width = iconWidth; - - Rect assetRect = position; - assetRect.width = position.width - iconWidth; - assetRect.height = EditorGUIUtility.singleLineHeight; - assetRect.x += iconWidth; - - Rect buttonRect = position; - buttonRect.height = EditorGUIUtility.singleLineHeight; - buttonRect.y += (EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing); - - Rect tagRect = position; - tagRect.height = EditorGUIUtility.singleLineHeight; - tagRect.y += ((EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing) * 2) + EditorGUIUtility.standardVerticalSpacing; - - bool changed = false; - - UnityEngine.Object asset = assetProperty.objectReferenceValue; - - if (!Application.isPlaying && !EditorApplication.isPlayingOrWillChangePlaymode && !EditorApplication.isCompiling) - { // This is expensive so don't refresh during play mode or while other stuff is going on - changed = SceneInfoUtils.RefreshSceneInfo(asset, nameProperty, pathProperty, buildIndexProperty, includedProperty, tagProperty); - } - - GUIContent labelContent = null; - GUIContent iconContent = null; - italicStyle.fontStyle = FontStyle.Normal; - bool buttonsDisabled = false; - bool tagDisabled = false; - - if (asset == null) - { - string missingSceneName = nameProperty.stringValue; - if (!string.IsNullOrEmpty(missingSceneName)) - { - labelContent = new GUIContent(" (" + missingSceneName + ")"); - labelContent.tooltip = "The scene " + missingSceneName + " is missing. It will not be available to load."; - italicStyle.fontStyle = FontStyle.Italic; - tagDisabled = true; - iconContent = EditorGUIUtility.IconContent(missingIconContent); - } - else - { - labelContent = new GUIContent(" (Empty)"); - labelContent.tooltip = "This scene is empty. You should assign a scene object before building."; - buttonsDisabled = true; - tagDisabled = true; - iconContent = EditorGUIUtility.IconContent(missingIconContent); - } - } - else - { - if (includedProperty.boolValue) - { - if (buildIndexProperty.intValue >= 0) - { - labelContent = new GUIContent(" Build index: " + buildIndexProperty.intValue); - labelContent.tooltip = "This scene is in build settings at index " + buildIndexProperty.intValue; - iconContent = EditorGUIUtility.IconContent(enabledIconContent); - } - else - { - labelContent = new GUIContent(" (Disabled)"); - labelContent.tooltip = "This scene is in build settings at index " + buildIndexProperty.intValue + ", but it has been disabled and will not be available to load."; - iconContent = EditorGUIUtility.IconContent(disabledIconContent); - } - } - else - { - labelContent = new GUIContent(" (Not included in build)"); - labelContent.tooltip = "This scene is not included in build settings and will not be available to load."; - iconContent = EditorGUIUtility.IconContent(errorIconContent); - } - } - - // Draw our icon - EditorGUI.LabelField(iconRect, iconContent); - - // Draw our object field - EditorGUI.BeginDisabledGroup(Application.isPlaying); - EditorGUIUtility.labelWidth = assetLabelWidth; - asset = EditorGUI.ObjectField(assetRect, labelContent, assetProperty.objectReferenceValue, typeof(SceneAsset), false); - EditorGUI.EndDisabledGroup(); - - if (DrawTagProperty) - { - // Draw our tag field - EditorGUI.BeginDisabledGroup(tagDisabled || Application.isPlaying); - EditorGUIUtility.labelWidth = tagLabelWidth; - changed |= EditorGUI.PropertyField(tagRect, tagProperty); - EditorGUI.EndDisabledGroup(); - } - - // Draw our button - EditorGUI.BeginDisabledGroup(buttonsDisabled || Application.isPlaying); - if (!string.IsNullOrEmpty(pathProperty.stringValue) && asset == null) - { - // The scene is missing - // This may be due to a local file ID mismatch - // Try to find it based on guid first - asset = AssetDatabase.LoadAssetAtPath(pathProperty.stringValue); - } - - - if (!string.IsNullOrEmpty(nameProperty.stringValue) && asset == null) - { - // If we still can't find it, draw a button that lets people attempt to recover it - if (GUI.Button(buttonRect, "Search for missing scene", EditorStyles.toolbarButton)) - { - changed |= SceneInfoUtils.FindScene(nameProperty, pathProperty, ref asset); - } - } - else - { - // It's not included in build settings - if (!includedProperty.boolValue) - { - // The scene exists but it isn't in our build settings - // Show a button that lets us add it - if (GUI.Button(buttonRect, "Add to build settings", EditorStyles.toolbarButton) && asset != null) - { - List scenes = new List(EditorBuildSettings.scenes); - scenes.Add(new EditorBuildSettingsScene(pathProperty.stringValue, true)); - includedProperty.boolValue = true; - EditorBuildSettings.scenes = scenes.ToArray(); - SceneInfoUtils.RefreshCachedScenes(); - changed = true; - } - } - else - { - bool enabledInBuild = buildIndexProperty.intValue >= 0; - // The scene exists and is in build settings - // Show enable / disable toggle - if (GUI.Button(buttonRect, enabledInBuild ? "Disable in build settings" : "Enable in build settings", EditorStyles.toolbarButton)) - { - enabledInBuild = !enabledInBuild; - // Modify a local copy of our scenes instead of using the cached scenes - EditorBuildSettingsScene[] scenes = EditorBuildSettings.scenes; - // Find the scene in our build settings and enable / disable it - int sceneCount = 0; - int buildIndex = -1; - for (int i = 0; i < SceneInfoUtils.CachedScenes.Length; i++) - { - if (scenes[i].path == pathProperty.stringValue) - { - scenes[i].enabled = enabledInBuild; - if (scenes[i].enabled) - { // Only store the build index if it's enabled - buildIndex = sceneCount; - } - break; - } - - if (scenes[i].enabled) - { // Disabled scenes don't count toward scene count - sceneCount++; - } - } - EditorBuildSettings.scenes = scenes; - SceneInfoUtils.RefreshCachedScenes(); - buildIndexProperty.intValue = buildIndex; - changed = true; - } - } - } - EditorGUI.EndDisabledGroup(); - - if (asset != assetProperty.objectReferenceValue) - { - assetProperty.objectReferenceValue = asset; - changed = true; - } - - if (changed) - { - property.serializedObject.ApplyModifiedProperties(); - } - - EditorGUIUtility.wideMode = lastMode; - EditorGUI.indentLevel = lastIndentLevel; - EditorGUI.EndProperty(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs.meta deleted file mode 100644 index 8bda972af..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5af96cda3342f594c949c66db36333d1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs deleted file mode 100644 index 4518078c2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs +++ /dev/null @@ -1,408 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SceneSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using UnityEditor; -using UnityEditor.Build; -using UnityEditor.Build.Reporting; -using UnityEditor.Callbacks; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.SceneManagement; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Class responsible for updating scene info structs to reflect changes made to scene assets. - /// Extends AssetPostprocessor so it can respond to asset changes. - /// - public class SceneInfoUtils : AssetPostprocessor, IProcessSceneWithReport - { - /// - /// Cached scenes used by SceneInfoDrawer to keep property drawer performant. - /// - public static EditorBuildSettingsScene[] CachedScenes { get; private set; } = Array.Empty(); - - public int callbackOrder => 0; - - /// - /// The frame of the last update. Used to ensure we don't spam the system with updates. - /// - private static int frameScriptableObjectsLastUpdated; - private static int frameScenesLastUpdated; - private static List> cachedComponentTypes = new List>(); - private static HashSet fieldTypesToSearch = new HashSet - { - typeof(SceneInfo), - typeof(SceneInfo[]), - typeof(List) - }; - - /// - /// Call this when you make a change to the build settings and need those changes to be reflected immediately. - /// - public static void RefreshCachedScenes() - { - CachedScenes = EditorBuildSettings.scenes; - } - - /// - /// Finds all relative properties of a SceneInfo struct. - /// - public static void GetSceneInfoRelativeProperties( - SerializedProperty property, - out SerializedProperty assetProperty, - out SerializedProperty nameProperty, - out SerializedProperty pathProperty, - out SerializedProperty buildIndexProperty, - out SerializedProperty includedProperty, - out SerializedProperty tagProperty) - { - assetProperty = property.FindPropertyRelative("Asset"); - nameProperty = property.FindPropertyRelative("Name"); - pathProperty = property.FindPropertyRelative("Path"); - buildIndexProperty = property.FindPropertyRelative("BuildIndex"); - includedProperty = property.FindPropertyRelative("Included"); - tagProperty = property.FindPropertyRelative("Tag"); - } - - /// - /// Finds a missing scene asset reference for a SceneInfo struct. - /// - /// True if scene was found. - public static bool FindScene(SerializedProperty nameProperty, SerializedProperty pathProperty, ref UnityEngine.Object asset) - { - // Attempt to load via the scene path - SceneAsset newSceneAsset = AssetDatabase.LoadAssetAtPath(pathProperty.stringValue); - if (newSceneAsset != null) - { - Debug.Log("Found missing scene at path " + pathProperty.stringValue); - asset = newSceneAsset; - return true; - } - else - { - // If we didn't find it this way, search for all scenes in the project and try a name match - foreach (string sceneGUID in AssetDatabase.FindAssets("t:Scene")) - { - string scenePath = AssetDatabase.GUIDToAssetPath(sceneGUID); - string sceneName = System.IO.Path.GetFileNameWithoutExtension(scenePath); - - if (sceneName == nameProperty.stringValue) - { - pathProperty.stringValue = scenePath; - newSceneAsset = AssetDatabase.LoadAssetAtPath(scenePath); - if (newSceneAsset != null) - { - Debug.Log("Found missing scene at path " + scenePath); - asset = newSceneAsset; - return true; - } - } - } - } - - return false; - } - - /// - /// Implements IProcessSceneWithReport.OnProcessScene - /// - public void OnProcessScene(Scene scene, BuildReport report) - { - RefreshSceneInfoFieldsInScene(scene); - } - - /// - /// Updates all the serialized properties for a SceneInfo struct. - /// - /// True if a property has changed. - public static bool RefreshSceneInfo( - UnityEngine.Object asset, - SerializedProperty nameProperty, - SerializedProperty pathProperty, - SerializedProperty buildIndexProperty, - SerializedProperty includedProperty, - SerializedProperty tagProperty) - { - bool changed = false; - - if (asset == null) - { - // Leave the name and path alone, but reset the build index - if (buildIndexProperty.intValue >= 0) - { - buildIndexProperty.intValue = -1; - changed = true; - } - } - else - { - // Refreshing these values is very expensive - // Especially getting build scenes - // We may want to move this out of the property drawer - if (nameProperty.stringValue != asset.name) - { - nameProperty.stringValue = asset.name; - changed = true; - } - - string scenePath = AssetDatabase.GetAssetPath(asset); - if (pathProperty.stringValue != scenePath) - { - pathProperty.stringValue = scenePath; - changed = true; - } - - - // The method is using scenes by path is not reliable (code included - // commented out here for reference). - // Cached scenes are used instead (see CachedScenes). - // Scene scene = EditorSceneManager.GetSceneByPath(scenePath); - // int buildIndex = scene.buildIndex; - - int buildIndex = -1; - int sceneCount = 0; - bool included = false; - for (int i = 0; i < CachedScenes.Length; i++) - { - if (CachedScenes[i].path == scenePath) - { // If it's in here it's included, even if it's not enabled - included = true; - if (CachedScenes[i].enabled) - { // Only store the build index if it's enabled - buildIndex = sceneCount; - } - } - - if (CachedScenes[i].enabled) - { // Disabled scenes don't count toward scene count - sceneCount++; - } - } - - if (buildIndex != buildIndexProperty.intValue) - { - buildIndexProperty.intValue = buildIndex; - changed = true; - } - - if (included != includedProperty.boolValue) - { - includedProperty.boolValue = included; - changed = true; - } - } - - if (string.IsNullOrEmpty(tagProperty.stringValue)) - { - tagProperty.stringValue = "Untagged"; - changed = true; - } - - return changed; - } - - - /// - /// Searches for all components in a scene and refreshes any SceneInfo fields found. - /// - [PostProcessSceneAttribute] - public static void OnPostProcessScene() - { - RefreshSceneInfoFieldsInOpenScenes(); - } - - [InitializeOnLoadMethod] - private static void InitializeOnLoad() - { - EditorBuildSettings.sceneListChanged += SceneListChanged; - EditorSceneManager.sceneOpened += SceneOpened; - - frameScriptableObjectsLastUpdated = -1; - frameScenesLastUpdated = -1; - - RefreshCachedTypes(); - RefreshCachedScenes(); - RefreshSceneInfoFieldsInScriptableObjects(); - RefreshSceneInfoFieldsInOpenScenes(); - } - - /// - /// Updates the cached component types which use SceneInfo fields. - /// - private static void RefreshCachedTypes() - { - if (EditorApplication.isCompiling || BuildPipeline.isBuildingPlayer) - { // Don't refresh cached types if we're in the middle of something important - return; - } - - cachedComponentTypes.Clear(); - - foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) - { - foreach (Type t in assembly.GetLoadableTypes().Where(t => t.IsSubclassOf(typeof(Component)))) - { - foreach (FieldInfo f in t.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) - { - if (fieldTypesToSearch.Contains(f.FieldType)) - { - cachedComponentTypes.Add(new Tuple(t, f)); - } - } - } - } - } - - private static void SceneOpened(Scene scene, OpenSceneMode mode) - { - RefreshSceneInfoFieldsInOpenScenes(); - } - - /// - /// Updates the cached scene array when build settings change. - /// - private static void SceneListChanged() - { - RefreshCachedScenes(); - RefreshSceneInfoFieldsInScriptableObjects(); - RefreshSceneInfoFieldsInOpenScenes(); - } - - /// - /// Calls RefreshSceneInfoFieldsInScriptableObjects when an asset is modified. - /// - private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - { - RefreshSceneInfoFieldsInScriptableObjects(); - RefreshSceneInfoFieldsInOpenScenes(); - } - - /// - /// Searches through all ScriptableObject instances and refreshes any SceneInfo fields found. - /// - private static void RefreshSceneInfoFieldsInScriptableObjects() - { - if (Time.frameCount == frameScriptableObjectsLastUpdated && !BuildPipeline.isBuildingPlayer) - { // Don't update more than once per frame unless we're building - return; - } - - try - { - foreach (ScriptableObject source in ScriptableObjectExtensions.GetAllInstances()) - { - foreach (FieldInfo fieldInfo in source.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) - { - if (fieldTypesToSearch.Contains(fieldInfo.FieldType)) - { - CheckForChangesInField(source, fieldInfo); - } - } - } - - frameScriptableObjectsLastUpdated = Time.frameCount; - } - catch (Exception) - { - Debug.LogWarning("Error when attempting to update scene info fields. Scene info data may be stale."); - } - } - - private static void RefreshSceneInfoFieldsInOpenScenes() - { - if (Time.frameCount == frameScenesLastUpdated && !BuildPipeline.isBuildingPlayer) - { // Don't update more than once per frame unless we're building - return; - } - - try - { - foreach (Tuple typeFieldInfoPair in cachedComponentTypes) - { - FieldInfo fieldInfo = typeFieldInfoPair.Item2; - foreach (Component source in GameObject.FindObjectsOfType(typeFieldInfoPair.Item1)) - { - CheckForChangesInField(source, fieldInfo); - } - } - - frameScenesLastUpdated = Time.frameCount; - } - catch (Exception) - { - Debug.LogWarning("Error when attempting to update scene info fields. Scene info data may be stale."); - } - } - - private void RefreshSceneInfoFieldsInScene(Scene scene) - { - try - { - foreach (Tuple typeFieldInfoPair in cachedComponentTypes) - { - FieldInfo fieldInfo = typeFieldInfoPair.Item2; - foreach (GameObject rootGameObject in scene.GetRootGameObjects()) - { - foreach (Component source in rootGameObject.GetComponentsInChildren(typeFieldInfoPair.Item1)) - { - CheckForChangesInField(source, fieldInfo); - } - } - } - } - catch (Exception) - { - Debug.LogWarning("Error when attempting to update scene info fields. Scene info data may be stale."); - } - } - - private static void CheckForChangesInField(UnityEngine.Object source, FieldInfo fieldInfo) - { - if (fieldInfo.FieldType == typeof(SceneInfo)) - { - SerializedObject serializedObject = new SerializedObject(source); - SerializedProperty property = serializedObject.FindProperty(fieldInfo.Name); - SerializedProperty assetProperty, nameProperty, pathProperty, buildIndexProperty, includedProperty, tagProperty; - GetSceneInfoRelativeProperties(property, out assetProperty, out nameProperty, out pathProperty, out buildIndexProperty, out includedProperty, out tagProperty); - if (RefreshSceneInfo(assetProperty.objectReferenceValue, nameProperty, pathProperty, buildIndexProperty, includedProperty, tagProperty)) - { - if (BuildPipeline.isBuildingPlayer) - { - Debug.Log("Found out-of-date SceneInfo field '" + property.displayName + "' in asset '" + source.name + "' - The asset has been updated to: " + pathProperty.stringValue); - } - serializedObject.ApplyModifiedProperties(); - } - } - else if (fieldInfo.FieldType == typeof(SceneInfo[]) || fieldInfo.FieldType == typeof(List)) - { - SerializedObject serializedObject = new SerializedObject(source); - SerializedProperty arrayProperty = serializedObject.FindProperty(fieldInfo.Name); - for (int i = 0; i < arrayProperty.arraySize; i++) - { - SerializedProperty property = arrayProperty.GetArrayElementAtIndex(i); - SerializedProperty assetProperty, nameProperty, pathProperty, buildIndexProperty, includedProperty, tagProperty; - GetSceneInfoRelativeProperties(property, out assetProperty, out nameProperty, out pathProperty, out buildIndexProperty, out includedProperty, out tagProperty); - if (RefreshSceneInfo(assetProperty.objectReferenceValue, nameProperty, pathProperty, buildIndexProperty, includedProperty, tagProperty)) - { - serializedObject.ApplyModifiedProperties(); - // If we're building, log this change - if (BuildPipeline.isBuildingPlayer) - { - Debug.Log("Found out-of-date SceneInfo field '" + property.displayName + "' in asset '" + source.name + "' - The asset has been updated to: " + pathProperty.stringValue); - } - } - } - } - else - { - Debug.LogWarning("Attempted to refresh SceneInfo field for a type that isn't recognized: " + fieldInfo.FieldType); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs.meta deleted file mode 100644 index 3996215da..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aa77b15c9cb8f8d4797e0f299cd66e2b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs deleted file mode 100644 index e9f29a62b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Creates a custom picker based on the list of scene in the build settings. - /// - /// - /// - /// [ScenePick] - /// public int SceneId; - /// - /// - [CustomPropertyDrawer(typeof(ScenePickAttribute))] - public class ScenePickPropertyDrawer : PropertyDrawer - { - /// - /// List of Options extracted from the Editor - /// - private static GUIContent[] Options; - - /// - /// List of Scene GUIDS for the scenes - /// - private static string[] PropertyData; - - /// - /// Select this option to remove the event string - /// - private static readonly string UnselectedText = "-- None --"; - - /// - /// Text to display when an entry is missing - /// - private static readonly string MissingText = "-- Missing --"; - - /// - /// Function called by unity to draw the GUI for this property - /// We are replacing the int value of the backing field with a dropdown list of scene names - /// - /// See base class - /// See base class - /// See base class - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - BuildOptions(); - - var currentGuid = property.stringValue.Split(';')[0]; - - var currentId = System.Array.FindIndex(PropertyData, (x) => x.Contains(currentGuid)); - - if (currentId == -1) - { - // Not found, display the missing text - currentId = Options.Length - 1; - } - else if (currentId > 0 && property.stringValue != PropertyData[currentId]) - { - // If the string has changed, update the property. - // This will happen if the scene is renamed. - property.stringValue = PropertyData[currentId]; - EditorUtility.SetDirty(property.serializedObject.targetObject); - } - - EditorGUI.BeginProperty(position, new GUIContent(property.name), property); - var newId = EditorGUI.Popup(position, label, currentId, Options); - - if (newId != currentId) - { - property.stringValue = PropertyData[newId]; - EditorUtility.SetDirty(property.serializedObject.targetObject); - } - - EditorGUI.EndProperty(); - - } - - /// - /// Build the list of scene names - /// Note: Scene 0 is the no-scene option. - /// - private static void BuildOptions() - { - var scenes = EditorBuildSettings.scenes; - - if (scenes.Length > 0) - { - Options = new GUIContent[scenes.Length + 2]; - PropertyData = new string[scenes.Length + 2]; - - Options[0] = new GUIContent(UnselectedText); - PropertyData[0] = string.Empty; - - for (int i = 0; i < scenes.Length; i++) - { - // Right, replace '/' with '\' otherwise the list displays like a menu where '/' denotes a sub-menu. - Options[i + 1] = new GUIContent(scenes[i].path.Replace("/", "\\")); - PropertyData[i + 1] = scenes[i].guid.ToString() + ";" + scenes[i].path; - } - - Options[scenes.Length + 1] = new GUIContent(MissingText); - PropertyData[scenes.Length + 1] = MissingText; - } - else - { - Options = new GUIContent[2]; - PropertyData = new string[2]; - - Options[0] = new GUIContent(UnselectedText); - PropertyData[0] = string.Empty; - Options[1] = new GUIContent(MissingText); - PropertyData[1] = MissingText; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs.meta deleted file mode 100644 index edf2ac1db..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/ScenePickPropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 08b20c4ccb3791041b4e19089d3f7d08 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs deleted file mode 100644 index 894669387..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - public class SelectRepairedTypeWindow : EditorWindow - { - private static Type[] repairedTypeOptions; - private static SerializedProperty property; - private static SelectRepairedTypeWindow window; - - public static bool WindowOpen { get { return window != null; } } - - public static void Display(Type[] repairedTypeOptions, SerializedProperty property) - { - if (window != null) - { - window.Close(); - } - - SelectRepairedTypeWindow.repairedTypeOptions = repairedTypeOptions; - SelectRepairedTypeWindow.property = property; - - window = ScriptableObject.CreateInstance(typeof(SelectRepairedTypeWindow)) as SelectRepairedTypeWindow; - window.titleContent = new GUIContent("Select repaired type"); - window.ShowUtility(); - } - - private void OnGUI() - { - for (int i = 0; i < repairedTypeOptions.Length; i++) - { - if (GUILayout.Button(repairedTypeOptions[i].FullName, EditorStyles.miniButton)) - { - property.stringValue = SystemType.GetReference(repairedTypeOptions[i]); - property.serializedObject.ApplyModifiedProperties(); - Close(); - } - } - } - - private void OnDisable() - { - window = null; - } - - private void OnInspectorUpdate() - { - Repaint(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs.meta deleted file mode 100644 index b880cfb40..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SelectRepairedTypeWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1816cf73665b5c648a1545d130811675 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs deleted file mode 100644 index b223fa5ef..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomPropertyDrawer(typeof(SpeechCommands))] - public class SpeechCommandPropertyDrawer : PropertyDrawer - { - public override void OnGUI(Rect rect, SerializedProperty property, GUIContent content) - { - EditorGUI.BeginProperty(rect, content, property); - - // calculate field rectangle with half of total drawer length for each - var fieldWidth = rect.width * 0.5f; - var keywordRect = new Rect(rect.x, rect.y, fieldWidth, rect.height); - var keyCodeRect = new Rect(rect.x + fieldWidth, rect.y, fieldWidth, rect.height); - - // the Keyword field without label - EditorGUI.PropertyField(keywordRect, property.FindPropertyRelative("keyword"), GUIContent.none); - // the KeyCode field without label - EditorGUI.PropertyField(keyCodeRect, property.FindPropertyRelative("keyCode"), GUIContent.none); - - EditorGUI.EndProperty(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs.meta deleted file mode 100644 index 1398e8cd2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/SpeechCommandPropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 555d72ced34f4ca080a16d840f2da7f2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs deleted file mode 100644 index f6aa5fa95..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Draws a Unity Tag selector in the Inspector. - /// - /// - /// - /// [TagProperty] - /// public string FindTag; - /// - /// - [CustomPropertyDrawer(typeof(TagPropertyAttribute))] - public class TagPropertyDrawer : PropertyDrawer - { - /// - /// Override this method to make your own GUI for the property. - /// - /// Rectangle on the screen to use for the property GUI. - /// The SerializedProperty to make the custom GUI for. - /// The label of this property. - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - EditorGUI.BeginProperty(position, new GUIContent(property.name), property); - string tagValue = EditorGUI.TagField(position, label, property.stringValue); - if (tagValue != property.stringValue) - { - property.stringValue = tagValue; - EditorUtility.SetDirty(property.serializedObject.targetObject); - } - EditorGUI.EndProperty(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs.meta deleted file mode 100644 index e92f447f4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TagPropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1a02aaf60dc13f3459017ed924317006 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs deleted file mode 100644 index 8bd2dceb5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs +++ /dev/null @@ -1,361 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; -using Assembly = System.Reflection.Assembly; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Custom property drawer for properties. - /// - [CustomPropertyDrawer(typeof(SystemType))] - [CustomPropertyDrawer(typeof(SystemTypeAttribute), true)] - public class SystemTypeReferencePropertyDrawer : PropertyDrawer - { - private static int selectionControlId; - private static string selectedReference; - private static readonly Dictionary TypeMap = new Dictionary(); - private static readonly int ControlHint = typeof(SystemTypeReferencePropertyDrawer).GetHashCode(); - private static readonly GUIContent TempContent = new GUIContent(); - private static readonly Color enabledColor = Color.white; - private static readonly Color disabledColor = Color.Lerp(Color.white, Color.clear, 0.5f); - private static readonly Color errorColor = Color.Lerp(Color.white, Color.red, 0.5f); - - #region Type Filtering - - /// - /// Gets or sets a function that returns a collection of types that are - /// to be excluded from drop-down. A value of null specifies that - /// no types are to be excluded. - /// - /// - /// This property must be set immediately before presenting a class - /// type reference property field using EditorGUI.PropertyField - /// since the value of this property is reset to null each time the control is drawn. - /// Since filtering makes extensive use of - /// it is recommended to use a collection that is optimized for fast - /// look ups such as HashSet for better performance. - /// - /// - /// Exclude a specific type from being selected: - /// GetExcludedTypeCollection() { - /// var set = new HashSet(); - /// set.Add(typeof(SpecialClassToHideInDropdown)); - /// return set; - /// } - /// ]]> - /// - public static Func> ExcludedTypeCollectionGetter { get; set; } - - private static List GetFilteredTypes(SystemTypeAttribute filter) - { - var types = new List(); - var excludedTypes = ExcludedTypeCollectionGetter?.Invoke(); - - // We prefer using this over CompilationPipeline.GetAssemblies() because - // some types may come from plugins and other sources that have already - // been compiled. - var assemblies = AppDomain.CurrentDomain.GetAssemblies(); - foreach (var assembly in assemblies) - { - FilterTypes(assembly, filter, excludedTypes, types); - } - - types.Sort((a, b) => string.Compare(a.FullName, b.FullName, StringComparison.Ordinal)); - return types; - } - - private static void FilterTypes(Assembly assembly, SystemTypeAttribute filter, ICollection excludedTypes, List output) - { - foreach (var type in assembly.GetLoadableTypes()) - { - bool isValid = type.IsValueType && !type.IsEnum || type.IsClass; - if (!type.IsVisible || !isValid) - { - continue; - } - - if (filter != null && !filter.IsConstraintSatisfied(type)) - { - continue; - } - - if (excludedTypes != null && excludedTypes.Contains(type)) - { - continue; - } - - output.Add(type); - } - } - - #endregion Type Filtering - - #region Type Utility - - private static Type ResolveType(string classRef) - { - Type type; - if (!TypeMap.TryGetValue(classRef, out type)) - { - type = !string.IsNullOrEmpty(classRef) ? Type.GetType(classRef) : null; - TypeMap[classRef] = type; - } - - return type; - } - - #endregion Type Utility - - #region Control Drawing / Event Handling - - private static string DrawTypeSelectionControl(Rect position, GUIContent label, string classRef, SystemTypeAttribute filter, bool typeResolved) - { - if (label != null && label != GUIContent.none) - { - position = EditorGUI.PrefixLabel(position, label); - } - - int controlId = GUIUtility.GetControlID(ControlHint, FocusType.Keyboard, position); - - bool triggerDropDown = false; - - switch (Event.current.GetTypeForControl(controlId)) - { - case EventType.ExecuteCommand: - if (Event.current.commandName == "TypeReferenceUpdated") - { - if (selectionControlId == controlId) - { - if (classRef != selectedReference) - { - classRef = selectedReference; - GUI.changed = true; - } - - selectionControlId = 0; - selectedReference = null; - } - } - - break; - - case EventType.MouseDown: - if (GUI.enabled && position.Contains(Event.current.mousePosition)) - { - GUIUtility.keyboardControl = controlId; - triggerDropDown = true; - Event.current.Use(); - } - - break; - - case EventType.KeyDown: - if (GUI.enabled && GUIUtility.keyboardControl == controlId) - { - if (Event.current.keyCode == KeyCode.Return || Event.current.keyCode == KeyCode.Space) - { - triggerDropDown = true; - Event.current.Use(); - } - } - - break; - - case EventType.Repaint: - // Remove assembly name and namespace from content of pop-up control. - var classRefParts = classRef.Split(','); - var className = classRefParts[0].Trim(); - className = className.Substring(className.LastIndexOf(".", StringComparison.Ordinal) + 1); - TempContent.text = className; - - if (TempContent.text == string.Empty) - { - TempContent.text = "(None)"; - } - else if (!typeResolved) - { - TempContent.text += " {Missing}"; - } - - EditorStyles.popup.Draw(position, TempContent, controlId); - break; - } - - if (triggerDropDown) - { - selectionControlId = controlId; - selectedReference = classRef; - - DisplayDropDown(position, GetFilteredTypes(filter), ResolveType(classRef), filter?.Grouping ?? TypeGrouping.ByNamespaceFlat); - } - - return classRef; - } - - private static void DrawTypeSelectionControl(Rect position, SerializedProperty property, GUIContent label, SystemTypeAttribute filter) - { - try - { - Color restoreColor = GUI.color; - bool restoreShowMixedValue = EditorGUI.showMixedValue; - bool typeResolved = string.IsNullOrEmpty(property.stringValue) || ResolveType(property.stringValue) != null; - EditorGUI.showMixedValue = property.hasMultipleDifferentValues; - - GUI.color = enabledColor; - - if (typeResolved) - { - property.stringValue = DrawTypeSelectionControl(position, label, property.stringValue, filter, true); - } - else - { - if (SelectRepairedTypeWindow.WindowOpen) - { - GUI.color = disabledColor; - DrawTypeSelectionControl(position, label, property.stringValue, filter, false); - } - else - { - Rect dropdownPosition = new Rect(position.x, position.y, position.width - 90, position.height); - Rect buttonPosition = new Rect(position.x + position.width - 75, position.y, 75, position.height); - - Color defaultColor = GUI.color; - GUI.color = errorColor; - property.stringValue = DrawTypeSelectionControl(dropdownPosition, label, property.stringValue, filter, false); - GUI.color = defaultColor; - - if (GUI.Button(buttonPosition, "Try Repair", EditorStyles.miniButton)) - { - string typeNameWithoutAssembly = property.stringValue.Split(new string[] { "," }, StringSplitOptions.None)[0]; - string typeNameWithoutNamespace = System.Text.RegularExpressions.Regex.Replace(typeNameWithoutAssembly, @"[.\w]+\.(\w+)", "$1"); - - Type[] repairedTypeOptions = FindTypesByName(typeNameWithoutNamespace, filter); - if (repairedTypeOptions.Length > 1) - { - SelectRepairedTypeWindow.Display(repairedTypeOptions, property); - } - else if (repairedTypeOptions.Length > 0) - { - property.stringValue = SystemType.GetReference(repairedTypeOptions[0]); - } - else - { - EditorUtility.DisplayDialog("No types found", "No types with the name '" + typeNameWithoutNamespace + "' were found.", "OK"); - } - } - } - } - - GUI.color = restoreColor; - EditorGUI.showMixedValue = restoreShowMixedValue; - } - finally - { - ExcludedTypeCollectionGetter = null; - } - } - - private static Type[] FindTypesByName(string typeName, SystemTypeAttribute filter) - { - List types = new List(); - foreach (Type t in GetFilteredTypes(filter)) - { - if (t.Name.Equals(typeName)) - { - types.Add(t); - } - } - return types.ToArray(); - } - - private static void DisplayDropDown(Rect position, List types, Type selectedType, TypeGrouping grouping) - { - var menu = new GenericMenu(); - menu.AddItem(new GUIContent("(None)"), selectedType == null, OnSelectedTypeName, null); - menu.AddSeparator(string.Empty); - - for (int i = 0; i < types.Count; ++i) - { - string menuLabel = FormatGroupedTypeName(types[i], grouping); - - if (string.IsNullOrEmpty(menuLabel)) { continue; } - - var content = new GUIContent(menuLabel); - menu.AddItem(content, types[i] == selectedType, OnSelectedTypeName, types[i]); - } - - menu.DropDown(position); - } - - private static string FormatGroupedTypeName(Type type, TypeGrouping grouping) - { - string name = type.FullName; - - switch (grouping) - { - case TypeGrouping.None: - return name; - case TypeGrouping.ByNamespace: - return string.IsNullOrEmpty(name) ? string.Empty : name.Replace('.', '/'); - case TypeGrouping.ByNamespaceFlat: - int lastPeriodIndex = string.IsNullOrEmpty(name) ? -1 : name.LastIndexOf('.'); - if (lastPeriodIndex != -1) - { - name = string.IsNullOrEmpty(name) - ? string.Empty - : $"{name.Substring(0, lastPeriodIndex)}/{name.Substring(lastPeriodIndex + 1)}"; - } - - return name; - case TypeGrouping.ByAddComponentMenu: - var addComponentMenuAttributes = type.GetCustomAttributes(typeof(AddComponentMenu), false); - if (addComponentMenuAttributes.Length == 1) - { - return ((AddComponentMenu)addComponentMenuAttributes[0]).componentMenu; - } - - Debug.Assert(type.FullName != null); - return $"Scripts/{type.FullName.Replace('.', '/')}"; - default: - throw new ArgumentOutOfRangeException(nameof(grouping), grouping, null); - } - } - - private static void OnSelectedTypeName(object userData) - { - selectedReference = SystemType.GetReference(userData as Type); - var typeReferenceUpdatedEvent = EditorGUIUtility.CommandEvent("TypeReferenceUpdated"); - EditorWindow.focusedWindow.SendEvent(typeReferenceUpdatedEvent); - } - - #endregion Control Drawing / Event Handling - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return EditorStyles.popup.CalcHeight(GUIContent.none, 0); - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - DrawTypeSelectionControl(position, property.FindPropertyRelative("reference"), label, attribute as SystemTypeAttribute); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs.meta deleted file mode 100644 index 0b0181658..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/TypeReferencePropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d7f07b4538fb49dba31e82e20ca6c458 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs deleted file mode 100644 index c16353b0e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Custom property drawer for decorated Vector3 values rendered in the inspector. - /// - [CustomPropertyDrawer(typeof(Vector3RangeAttribute))] - public class Vector3RangePropertyDrawer : PropertyDrawer - { - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return EditorGUIUtility.wideMode ? EditorGUIUtility.singleLineHeight : EditorGUIUtility.singleLineHeight * 2; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - var range = (Vector3RangeAttribute)attribute; - - if (property.propertyType == SerializedPropertyType.Vector3) - { - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(position, property); - - if (EditorGUI.EndChangeCheck()) - { - var vectorData = property.vector3Value; - - vectorData.x = Mathf.Clamp(vectorData.x, range.Min, range.Max); - vectorData.y = Mathf.Clamp(vectorData.y, range.Min, range.Max); - vectorData.z = Mathf.Clamp(vectorData.z, range.Min, range.Max); - - property.vector3Value = vectorData; - property.serializedObject.ApplyModifiedProperties(); - } - } - else - { - EditorGUI.LabelField(position, label.text, "Use Vector3Range with Vector3 fields only."); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs.meta deleted file mode 100644 index 6eaf15374..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/PropertyDrawers/Vector3RangePropertyDrawer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 809764d8ccae48fab9dfb7b1a3dfd0fe -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs deleted file mode 100644 index 42fae8dab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(ProximityLight))] - public class ProximityLightInspector : UnityEditor.Editor - { - private bool HasFrameBounds() { return true; } - - private Bounds OnGetFrameBounds() - { - var light = target as ProximityLight; - Debug.Assert(light != null); - return new Bounds(light.transform.position, Vector3.one * light.Settings.FarRadius); - } - - [MenuItem("GameObject/Light/Proximity Light")] - private static void CreateProximityLight(MenuCommand menuCommand) - { - GameObject proximityLight = new GameObject("Proximity Light", typeof(ProximityLight)); - - // Ensure the light gets re-parented to the active context. - GameObjectUtility.SetParentAndAlign(proximityLight, menuCommand.context as GameObject); - - // Register the creation in the undo system. - Undo.RegisterCreatedObjectUndo(proximityLight, "Create " + proximityLight.name); - - Selection.activeObject = proximityLight; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs.meta deleted file mode 100644 index a7024b5b9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ProximityLightInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 02b7be6ee6d01bd4ea129e879a281d86 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors.meta deleted file mode 100644 index 93df0fd52..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c6ec8cae434e30f4d8e294ca4ac3a4cc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs.meta deleted file mode 100644 index 229971fca..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9f38a8624cb258e4e8133b4d6c3696df -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs deleted file mode 100644 index 4914aa593..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - public class BaseMixedRealityServiceInspector : IMixedRealityServiceInspector - { - public virtual bool DrawProfileField { get { return true; } } - - public virtual bool AlwaysDrawSceneGUI { get { return false; } } - - public virtual void DrawGizmos(object target) { } - - public virtual void DrawInspectorGUI(object target) { } - - public virtual void DrawSceneGUI(object target, SceneView sceneView) { } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs.meta deleted file mode 100644 index d1ad5c5aa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/BaseMixedRealityServiceInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ddbc3b6577e449c499596943dff66b08 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs deleted file mode 100644 index bc1aaff95..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [MixedRealityServiceInspector(typeof(IMixedRealityFocusProvider))] - public class FocusProviderInspector : BaseMixedRealityServiceInspector - { - private static readonly Color enabledColor = GUI.backgroundColor; - private static readonly Color disabledColor = Color.Lerp(enabledColor, Color.clear, 0.5f); - - public override void DrawInspectorGUI(object target) - { - IMixedRealityFocusProvider focusProvider = (IMixedRealityFocusProvider)target; - - EditorGUILayout.LabelField("Active Pointers", EditorStyles.boldLabel); - - if (!Application.isPlaying) - { - EditorGUILayout.HelpBox("Pointers will be populated once you enter play mode.", MessageType.Info); - return; - } - - bool pointerFound = false; - foreach (IMixedRealityPointer pointer in focusProvider.GetPointers()) - { - GUI.color = pointer.IsInteractionEnabled ? enabledColor : disabledColor; - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField(pointer.PointerName); - EditorGUILayout.Toggle("Interaction Enabled", pointer.IsInteractionEnabled); - EditorGUILayout.Toggle("Focus Locked", pointer.IsFocusLocked); - EditorGUILayout.ObjectField("Focus Result", pointer.Result?.CurrentPointerTarget, typeof(GameObject), true); - EditorGUILayout.EndVertical(); - - pointerFound = true; - } - - if (!pointerFound) - { - EditorGUILayout.LabelField("(None found)", EditorStyles.miniLabel); - } - - GUI.color = enabledColor; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs.meta deleted file mode 100644 index b86712bf0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/FocusProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15116e109ef8e7549a0947e571dd7eca -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs deleted file mode 100644 index ffacc008b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs +++ /dev/null @@ -1,271 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System; -using UnityEditor; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [MixedRealityServiceInspector(typeof(IMixedRealityHandJointService))] - public class HandJointServiceInspector : BaseMixedRealityServiceInspector - { - private const string ShowHandPreviewInSceneViewKey = "MRTK_HandJointServiceInspector_ShowHandPreviewInSceneViewKey"; - private const string ShowHandJointFoldoutKey = "MRTK_HandJointServiceInspector_ShowHandJointFoldoutKey"; - private const string ShowHandJointKeyPrefix = "MRTK_HandJointServiceInspector_ShowHandJointKeyPrefixKey_"; - private static bool ShowHandPreviewInSceneView = false; - private static bool ShowHandJointFoldout = false; - - private const float previewJointSize = 0.02f; - private static readonly Color previewJointColor = new Color(0.5f, 0.1f, 0.6f, 0.75f); - private static readonly Color enabledColor = GUI.backgroundColor; - private static readonly Color disabledColor = Color.Lerp(enabledColor, Color.clear, 0.5f); - private static Dictionary showHandJointSettings; - private static Dictionary showHandJointSettingKeys; - - // We want hand preview to always be visible - public override bool AlwaysDrawSceneGUI { get { return true; } } - - public override void DrawInspectorGUI(object target) - { - IMixedRealityHandJointService handJointService = (IMixedRealityHandJointService)target; - - EditorGUILayout.LabelField("Tracking State", EditorStyles.boldLabel); - - if (!Application.isPlaying) - { - GUI.color = disabledColor; - EditorGUILayout.Toggle("Left Hand Tracked", false); - EditorGUILayout.Toggle("Right Hand Tracked", false); - } - else - { - GUI.color = enabledColor; - EditorGUILayout.Toggle("Left Hand Tracked", handJointService.IsHandTracked(Handedness.Left)); - EditorGUILayout.Toggle("Right Hand Tracked", handJointService.IsHandTracked(Handedness.Right)); - } - - GenerateHandJointLookup(); - - GUI.color = enabledColor; - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Editor Settings", EditorStyles.boldLabel); - ShowHandPreviewInSceneView = SessionState.GetBool(ShowHandPreviewInSceneViewKey, false); - bool showHandPreviewInSceneView = EditorGUILayout.Toggle("Show Preview in Scene View", ShowHandPreviewInSceneView); - if (ShowHandPreviewInSceneView != showHandPreviewInSceneView) - { - SessionState.SetBool(ShowHandPreviewInSceneViewKey, showHandPreviewInSceneView); - } - - ShowHandJointFoldout = SessionState.GetBool(ShowHandJointFoldoutKey, false); - ShowHandJointFoldout = EditorGUILayout.Foldout(ShowHandJointFoldout, "Visible Hand Joints", true); - SessionState.SetBool(ShowHandJointFoldoutKey, ShowHandJointFoldout); - - if (ShowHandJointFoldout) - { - #region setting buttons - - EditorGUILayout.BeginHorizontal(); - - if (GUILayout.Button("All")) - { - foreach (TrackedHandJoint joint in Enum.GetValues(typeof(TrackedHandJoint))) - { - if (joint == TrackedHandJoint.None) - { - continue; - } - - SessionState.SetBool(showHandJointSettingKeys[joint], true); - showHandJointSettings[joint] = true; - } - } - - if (GUILayout.Button("Fingers")) - { - foreach (TrackedHandJoint joint in Enum.GetValues(typeof(TrackedHandJoint))) - { - bool setting = false; - switch (joint) - { - case TrackedHandJoint.IndexTip: - case TrackedHandJoint.IndexDistalJoint: - case TrackedHandJoint.IndexKnuckle: - case TrackedHandJoint.IndexMetacarpal: - case TrackedHandJoint.IndexMiddleJoint: - - case TrackedHandJoint.MiddleTip: - case TrackedHandJoint.MiddleDistalJoint: - case TrackedHandJoint.MiddleKnuckle: - case TrackedHandJoint.MiddleMetacarpal: - case TrackedHandJoint.MiddleMiddleJoint: - - case TrackedHandJoint.PinkyTip: - case TrackedHandJoint.PinkyDistalJoint: - case TrackedHandJoint.PinkyKnuckle: - case TrackedHandJoint.PinkyMetacarpal: - case TrackedHandJoint.PinkyMiddleJoint: - - case TrackedHandJoint.RingTip: - case TrackedHandJoint.RingDistalJoint: - case TrackedHandJoint.RingKnuckle: - case TrackedHandJoint.RingMetacarpal: - case TrackedHandJoint.RingMiddleJoint: - - case TrackedHandJoint.ThumbTip: - case TrackedHandJoint.ThumbDistalJoint: - case TrackedHandJoint.ThumbMetacarpalJoint: - case TrackedHandJoint.ThumbProximalJoint: - setting = true; - break; - - default: - break; - - case TrackedHandJoint.None: - continue; - } - - SessionState.SetBool(showHandJointSettingKeys[joint], setting); - showHandJointSettings[joint] = setting; - } - } - - if (GUILayout.Button("Fingertips")) - { - foreach (TrackedHandJoint joint in Enum.GetValues(typeof(TrackedHandJoint))) - { - bool setting = false; - switch (joint) - { - case TrackedHandJoint.IndexTip: - case TrackedHandJoint.MiddleTip: - case TrackedHandJoint.PinkyTip: - case TrackedHandJoint.RingTip: - case TrackedHandJoint.ThumbTip: - setting = true; - break; - - default: - break; - - case TrackedHandJoint.None: - continue; - } - - SessionState.SetBool(showHandJointSettingKeys[joint], setting); - showHandJointSettings[joint] = setting; - } - } - - if (GUILayout.Button("None")) - { - foreach (TrackedHandJoint joint in Enum.GetValues(typeof(TrackedHandJoint))) - { - if (joint == TrackedHandJoint.None) - { - continue; - } - - SessionState.SetBool(showHandJointSettingKeys[joint], false); - showHandJointSettings[joint] = false; - } - } - - EditorGUILayout.EndHorizontal(); - - #endregion - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - foreach (TrackedHandJoint joint in Enum.GetValues(typeof(TrackedHandJoint))) - { - if (joint == TrackedHandJoint.None) - { - continue; - } - - bool prevSetting = showHandJointSettings[joint]; - bool newSetting = EditorGUILayout.Toggle(joint.ToString(), prevSetting); - if (newSetting != prevSetting) - { - SessionState.SetBool(showHandJointSettingKeys[joint], newSetting); - showHandJointSettings[joint] = newSetting; - } - } - EditorGUILayout.EndVertical(); - } - } - - public override void DrawSceneGUI(object target, SceneView sceneView) - { - if (!Application.isPlaying || !ShowHandPreviewInSceneView) - { - return; - } - - IMixedRealityHandJointService handJointService = (IMixedRealityHandJointService)target; - - DrawHandPreview(handJointService, Handedness.Left); - DrawHandPreview(handJointService, Handedness.Right); - } - - public override void DrawGizmos(object target) { } - - public static void DrawHandPreview(IMixedRealityHandJointService handJointService, Handedness handedness) - { - if (!handJointService.IsHandTracked(handedness)) - { - return; - } - - GenerateHandJointLookup(); - - Handles.color = previewJointColor; - - foreach (KeyValuePair setting in showHandJointSettings) - { - if (!setting.Value) - { - continue; - } - - Transform jointTransform = handJointService.RequestJointTransform(setting.Key, handedness); - - if (jointTransform == null) - { - continue; - } - - Handles.SphereHandleCap(0, jointTransform.position, jointTransform.rotation, previewJointSize, EventType.Repaint); - } - } - - private static void GenerateHandJointLookup() - { - if (showHandJointSettings != null) - { - return; - } - - showHandJointSettingKeys = new Dictionary(); - showHandJointSettings = new Dictionary(); - - foreach (TrackedHandJoint joint in Enum.GetValues(typeof(TrackedHandJoint))) - { - if (joint == TrackedHandJoint.None) - { - continue; - } - - string key = ShowHandJointKeyPrefix + joint; - showHandJointSettingKeys.Add(joint, key); - - bool showHandJoint = SessionState.GetBool(key, true); - showHandJointSettings.Add(joint, showHandJoint); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs.meta deleted file mode 100644 index 81036b2ae..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8829b80f825412d4490d4fe8b27ad4ae -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs deleted file mode 100644 index c419ccc31..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Used to populate service facades with content. - /// To use, create a class that implements this interface - /// and mark it with the MixedRealityServiceInspector attribute. - /// - public interface IMixedRealityServiceInspector - { - /// - /// If true, inspector will include a field for the service's profile at the top (if applicable) - /// - bool DrawProfileField { get; } - - /// - /// If true, DrawSceneGUI will be called even when facade object is not selected. - /// - bool AlwaysDrawSceneGUI { get; } - - /// - /// Used to draw an inspector for a service facade. - /// - void DrawInspectorGUI(object target); - - /// - /// Used to draw handles and visualizations in scene view. - /// - void DrawSceneGUI(object target, SceneView sceneView); - - /// - /// Used to draw gizmos in the scene - /// - void DrawGizmos(object target); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs.meta deleted file mode 100644 index ab778399c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/IMixedRealityServiceInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 252db3cd84cc38447a2ec3b7e44e0928 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef deleted file mode 100644 index d64135edb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Editor.ServiceInspectors", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Async", - "Microsoft.MixedReality.Toolkit.Editor.ClassExtensions", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.Editor.Utilities" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef.meta deleted file mode 100644 index af3e4dd81..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/MRTK.ServiceInspectors.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8213dc10c274b714cb89afec31623845 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs deleted file mode 100644 index c72bdd352..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SceneSystem; -using System.Collections.Generic; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.SceneManagement; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [MixedRealityServiceInspector(typeof(IMixedRealitySceneSystem))] - public class SceneSystemInspector : BaseMixedRealityServiceInspector - { - private const float maxLoadButtonWidth = 50; - private const float tagLoadButtonSetWidth = 120; - - private static readonly Color enabledColor = GUI.backgroundColor; - private static readonly Color disabledColor = Color.Lerp(enabledColor, Color.clear, 0.5f); - private static readonly Color errorColor = Color.Lerp(GUI.backgroundColor, Color.red, 0.5f); - - private SceneActivationToken activationToken = new SceneActivationToken(); - private static bool requireActivationToken = false; - private LightingSceneTransitionType transitionType = LightingSceneTransitionType.None; - private LoadSceneMode loadSceneMode = LoadSceneMode.Additive; - private float transitionSpeed = 1f; - - public override bool DrawProfileField { get { return true; } } - - public override void DrawInspectorGUI(object target) - { - // Get the scene system itself - IMixedRealitySceneSystem sceneSystem = target as IMixedRealitySceneSystem; - // Get the scene system's editor interface - IMixedRealitySceneSystemEditor sceneSystemEditor = target as IMixedRealitySceneSystemEditor; - - if (sceneSystemEditor == null) - { - EditorGUILayout.HelpBox("This scene service implementation does not implement IMixedRealitySceneSystemEditor. Inspector will not be rendered.", MessageType.Info); - return; - } - - GUI.color = enabledColor; - - MixedRealitySceneSystemProfile profile = sceneSystem.ConfigurationProfile as MixedRealitySceneSystemProfile; - - if (profile.UseLightingScene) - { - EditorGUILayout.LabelField("Lighting Scene", EditorStyles.boldLabel); - List lightingScenes = new List(sceneSystemEditor.LightingScenes); - if (lightingScenes.Count == 0) - { - EditorGUILayout.LabelField("(No lighting scenes found)", EditorStyles.miniLabel); - } - else - { - RenderLightingScenes(sceneSystem, sceneSystemEditor, lightingScenes); - } - EditorGUILayout.Space(); - } - - GUI.color = enabledColor; - - EditorGUILayout.LabelField("Content Scenes", EditorStyles.boldLabel); - List contentScenes = new List(sceneSystemEditor.ContentScenes); - if (contentScenes.Count == 0) - { - EditorGUILayout.LabelField("(No content scenes found)", EditorStyles.miniLabel); - } - else - { - if (Application.isPlaying) - { - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField("Current Scene Operation", EditorStyles.boldLabel); - loadSceneMode = (LoadSceneMode)EditorGUILayout.EnumPopup("Load Mode", loadSceneMode); - EditorGUILayout.Toggle("Scene Operation In Progress", sceneSystem.SceneOperationInProgress); - EditorGUILayout.FloatField("Progress", sceneSystem.SceneOperationProgress); - - requireActivationToken = EditorGUILayout.Toggle("Require Manual Scene Activation", requireActivationToken); - - if (requireActivationToken && activationToken.ReadyToProceed) - { - if (GUILayout.Button("Allow Scene Activation")) - { - activationToken.AllowSceneActivation = true; - } - } - else - { - activationToken.AllowSceneActivation = true; - } - - EditorGUILayout.EndVertical(); - } - - EditorGUI.BeginDisabledGroup(sceneSystem.SceneOperationInProgress); - RenderContentScenes(sceneSystem, sceneSystemEditor, contentScenes); - EditorGUI.EndDisabledGroup(); - } - - EditorGUILayout.Space(); - } - - private void RenderLightingScenes(IMixedRealitySceneSystem sceneSystem, IMixedRealitySceneSystemEditor sceneSystemEditor, List lightingScenes) - { - EditorGUILayout.HelpBox("Select the active lighting scene by clicking its name.", MessageType.Info); - - if (Application.isPlaying) - { - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField("Current Scene Operation", EditorStyles.boldLabel); - EditorGUILayout.Toggle("Scene Operation In Progress", sceneSystem.LightingOperationInProgress); - EditorGUILayout.FloatField("Progress", sceneSystem.LightingOperationProgress); - transitionType = (LightingSceneTransitionType)EditorGUILayout.EnumPopup("Lighting transition type", transitionType); - if (transitionType != LightingSceneTransitionType.None) - { - transitionSpeed = EditorGUILayout.Slider("Lighting transition speed", transitionSpeed, 0f, 10f); - } - EditorGUILayout.EndVertical(); - } - - EditorGUILayout.Space(); - EditorGUILayout.Space(); - EditorGUILayout.BeginVertical(); - foreach (SceneInfo lightingScene in lightingScenes) - { - if (lightingScene.IsEmpty) - { - GUI.color = errorColor; - GUILayout.Button("(Scene Missing)", EditorStyles.toolbarButton); - continue; - } - - bool selected = lightingScene.Name == sceneSystem.ActiveLightingScene; - - GUI.color = selected ? enabledColor : disabledColor; - if (GUILayout.Button(lightingScene.Name, EditorStyles.toolbarButton) && !selected) - { - sceneSystem.SetLightingScene(lightingScene.Name, transitionType, transitionSpeed); - } - } - EditorGUILayout.EndVertical(); - } - - private void RenderContentScenes(IMixedRealitySceneSystem sceneSystem, IMixedRealitySceneSystemEditor sceneSystemEditor, List contentScenes) - { - EditorGUILayout.Space(); - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Load / Unload by tag", EditorStyles.miniBoldLabel); - List contentTags = new List(sceneSystemEditor.ContentTags); - - if (contentTags.Count == 0) - { - EditorGUILayout.LabelField("(No scenes with content tags found)", EditorStyles.miniLabel); - } - else - { - foreach (string tag in contentTags) - { - using (new EditorGUILayout.VerticalScope(GUILayout.MaxWidth(tagLoadButtonSetWidth))) - { - EditorGUILayout.LabelField(tag, EditorStyles.miniLabel); - using (new EditorGUILayout.HorizontalScope()) - { - if (GUILayout.Button("Load", EditorStyles.miniButton, GUILayout.MaxWidth(maxLoadButtonWidth))) - { - if (Application.isPlaying) - { - ServiceContentLoadByTag(sceneSystem, tag); - } - else - { - foreach (SceneInfo contentScene in sceneSystemEditor.ContentScenes) - { - if (contentScene.Tag == tag) - { - EditorSceneManager.OpenScene(contentScene.Path, OpenSceneMode.Additive); - } - } - } - } - - if (GUILayout.Button("Unload", EditorStyles.miniButton, GUILayout.MaxWidth(maxLoadButtonWidth))) - { - if (Application.isPlaying) - { - ServiceContentUnloadByTag(sceneSystem, tag); - } - else - { - foreach (SceneInfo contentScene in sceneSystemEditor.ContentScenes) - { - if (contentScene.Tag == tag) - { - Scene scene = EditorSceneManager.GetSceneByName(contentScene.Name); - EditorSceneManager.CloseScene(scene, false); - } - } - } - } - } - } - } - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Load / Unload by build index order", EditorStyles.miniBoldLabel); - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUI.BeginDisabledGroup(!sceneSystem.PrevContentExists); - if (GUILayout.Button("Load Prev Content", EditorStyles.miniButton)) - { - if (Application.isPlaying) - { - ServiceContentLoadPrev(sceneSystem); - } - else - { - sceneSystemEditor.EditorLoadPrevContent(); - } - } - EditorGUI.EndDisabledGroup(); - - EditorGUI.BeginDisabledGroup(!sceneSystem.NextContentExists); - if (GUILayout.Button("Load Next Content", EditorStyles.miniButton)) - { - if (Application.isPlaying) - { - ServiceContentLoadNext(sceneSystem); - } - else - { - sceneSystemEditor.EditorLoadNextContent(); - } - } - EditorGUI.EndDisabledGroup(); - - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Load / Unload individually", EditorStyles.miniBoldLabel); - foreach (SceneInfo contentScene in sceneSystemEditor.ContentScenes) - { - if (contentScene.IsEmpty) - { - GUI.color = errorColor; - GUILayout.Button("(Scene Missing)", EditorStyles.toolbarButton); - continue; - } - - Scene scene = EditorSceneManager.GetSceneByName(contentScene.Name); - bool loaded = scene.isLoaded; - - GUI.color = loaded ? enabledColor : disabledColor; - if (GUILayout.Button(contentScene.Name, EditorStyles.toolbarButton)) - { - if (Application.isPlaying) - { - if (loaded) - { - ServiceContentUnload(sceneSystem, contentScene.Name); - } - else - { - ServiceContentLoad(sceneSystem, contentScene.Name); - } - } - else - { - if (loaded) - { - EditorSceneManager.CloseScene(scene, false); - } - else - { - EditorSceneManager.OpenScene(contentScene.Path, OpenSceneMode.Additive); - } - } - } - } - } - - private async void ServiceContentLoadNext(IMixedRealitySceneSystem sceneSystem) - { - await sceneSystem.LoadNextContent(false, LoadSceneMode.Single, activationToken); - } - - private async void ServiceContentLoadPrev(IMixedRealitySceneSystem sceneSystem) - { - await sceneSystem.LoadPrevContent(false, LoadSceneMode.Single, activationToken); - } - - private async void ServiceContentLoadByTag(IMixedRealitySceneSystem sceneSystem, string tag) - { - if (requireActivationToken) - { - activationToken.AllowSceneActivation = false; - } - - await sceneSystem.LoadContentByTag(tag, loadSceneMode, activationToken); - } - - private async void ServiceContentUnloadByTag(IMixedRealitySceneSystem sceneSystem, string tag) - { - await sceneSystem.UnloadContentByTag(tag); - } - - private async void ServiceContentLoad(IMixedRealitySceneSystem sceneSystem, string sceneName) - { - if (requireActivationToken) - { - activationToken.AllowSceneActivation = false; - } - - await sceneSystem.LoadContent(sceneName, loadSceneMode, activationToken); - } - - private async void ServiceContentUnload(IMixedRealitySceneSystem sceneSystem, string sceneName) - { - await sceneSystem.UnloadContent(sceneName); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs.meta deleted file mode 100644 index d03e08ff9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SceneSystemInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5173057aefe4ad6458e7d371fae749cb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs deleted file mode 100644 index bb29927d6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs +++ /dev/null @@ -1,384 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Boundary; -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Diagnostics; -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.SceneSystem; -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Facades -{ - [CustomEditor(typeof(ServiceFacade))] - [InitializeOnLoad] - public class ServiceFacadeEditor : UnityEditor.Editor - { - static ServiceFacadeEditor() - { - // Register this on startup so we can update whether a facade inspector is updated or not -#if UNITY_2019_1_OR_NEWER - SceneView.duringSceneGui += DrawSceneGUI; -#else - SceneView.onSceneGUIDelegate += DrawSceneGUI; -#endif - } - - private static readonly List dataProviderList = new List(); - private static readonly Dictionary inspectorTypeLookup = new Dictionary(); - private static readonly Dictionary inspectorInstanceLookup = new Dictionary(); - private static bool initializedServiceInspectorLookup = false; - - private Color proHeaderColor = new Color32(56, 56, 56, 255); - private Color defaultHeaderColor = new Color32(194, 194, 194, 255); - -#if UNITY_2019_1_OR_NEWER - private const int headerYOffet = -6; - private const int headerXOffset = 44; -#else - private const int headerYOffet = 0; - private const int headerXOffset = 48; -#endif - - protected override void OnHeaderGUI() - { - ServiceFacade facade = (ServiceFacade)target; - - // Draw a rect over the top of the existing header label - var labelRect = EditorGUILayout.GetControlRect(false, 0f); - labelRect.height = EditorGUIUtility.singleLineHeight; - labelRect.y -= labelRect.height - headerYOffet; - labelRect.x = headerXOffset; - labelRect.xMax -= labelRect.x * 2f; - - EditorGUI.DrawRect(labelRect, EditorGUIUtility.isProSkin ? proHeaderColor : defaultHeaderColor); - - // Draw a new label - string header = facade.name; - if (string.IsNullOrEmpty(header)) - header = target.ToString(); - - EditorGUI.LabelField(labelRect, header, EditorStyles.boldLabel); - } - - public override void OnInspectorGUI() - { - OnHeaderGUI(); - - ServiceFacade facade = (ServiceFacade)target; - - if (facade.Service == null) - { // Facade has likely been destroyed - return; - } - - if (!MixedRealityToolkit.IsInitialized || !MixedRealityToolkit.Instance.HasActiveProfile) - { - return; - } - - InitializeServiceInspectorLookup(); - - bool drawDataProviders = DrawDataProviders(facade.ServiceType); - bool drawProfile = DrawProfile(facade.ServiceType); - bool drawInspector = DrawInspector(facade); - - // Only draw the doc link if we didn't draw a profile - // Profiles include doc links by default now - if (!drawProfile) - { - InspectorUIUtility.RenderHelpURL(facade.ServiceType); - } - - bool drewSomething = drawProfile | drawInspector | drawDataProviders; - - if (!drewSomething) - { - // If we haven't drawn anything at all, draw a label so people aren't confused. - EditorGUILayout.HelpBox("No inspector has been defined for this service type.", MessageType.Info); - } - - } - - public override bool RequiresConstantRepaint() - { - return true; - } - - /// - /// Draws a list of services that use this as a data provider - /// - private bool DrawDataProviders(Type serviceType) - { - // If this is a data provider being used by other services, mention that now - dataProviderList.Clear(); - foreach (MixedRealityDataProviderAttribute dataProviderAttribute in serviceType.GetCustomAttributes(typeof(MixedRealityDataProviderAttribute), true)) - { - dataProviderList.Add(" • " + dataProviderAttribute.ServiceInterfaceType.Name); - } - - if (dataProviderList.Count > 0) - { - EditorGUILayout.HelpBox("This data provider is used by the following services:\n " + String.Join("\n", dataProviderList.ToArray()), MessageType.Info); - EditorGUILayout.Space(); - return true; - } - return false; - } - - /// - /// Draws the custom inspector GUI for all of the service's interfaces that have custom inspectors. - /// - private bool DrawInspector(ServiceFacade facade) - { - bool drewInspector = false; - foreach (Type interfaceType in facade.ServiceType.GetInterfaces()) - { - IMixedRealityServiceInspector inspectorInstance; - if (GetServiceInspectorInstance(interfaceType, out inspectorInstance)) - { - inspectorInstance.DrawInspectorGUI(facade.Service); - drewInspector = true; - } - } - return drewInspector; - } - - /// - /// Draws the profile for all of the service's interfaces that have custom inspectors, if wanted by inspector and found. - /// - private bool DrawProfile(Type serviceType) - { - bool drawProfileField = true; - foreach (Type interfaceType in serviceType.GetInterfaces()) - { - IMixedRealityServiceInspector inspectorInstance; - if (GetServiceInspectorInstance(interfaceType, out inspectorInstance)) - { - drawProfileField &= inspectorInstance.DrawProfileField; - } - } - - if (!drawProfileField) - { // We've been instructed to skip drawing a profile by the inspector - return false; - } - - bool foundAndDrewProfile = false; - - // Draw the base profile stuff - if (typeof(BaseCoreSystem).IsAssignableFrom(serviceType)) - { - SerializedObject activeProfileObject = new SerializedObject(MixedRealityToolkit.Instance.ActiveProfile); - // Would be nice to handle this using some other method - // Would be nice to handle this with a lookup instead - if (typeof(IMixedRealityInputSystem).IsAssignableFrom(serviceType)) - { - SerializedProperty serviceProfileProp = activeProfileObject.FindProperty("inputSystemProfile"); - BaseMixedRealityProfileInspector.RenderReadOnlyProfile(serviceProfileProp); - EditorGUILayout.Space(); - foundAndDrewProfile = true; - } - else if (typeof(IMixedRealityBoundarySystem).IsAssignableFrom(serviceType)) - { - SerializedProperty serviceProfileProp = activeProfileObject.FindProperty("boundaryVisualizationProfile"); - BaseMixedRealityProfileInspector.RenderReadOnlyProfile(serviceProfileProp); - EditorGUILayout.Space(); - foundAndDrewProfile = true; - } - else if (typeof(IMixedRealityDiagnosticsSystem).IsAssignableFrom(serviceType)) - { - SerializedProperty serviceProfileProp = activeProfileObject.FindProperty("diagnosticsSystemProfile"); - BaseMixedRealityProfileInspector.RenderReadOnlyProfile(serviceProfileProp); - EditorGUILayout.Space(); - foundAndDrewProfile = true; - } - else if (typeof(IMixedRealitySpatialAwarenessSystem).IsAssignableFrom(serviceType)) - { - SerializedProperty serviceProfileProp = activeProfileObject.FindProperty("spatialAwarenessSystemProfile"); - BaseMixedRealityProfileInspector.RenderReadOnlyProfile(serviceProfileProp); - EditorGUILayout.Space(); - foundAndDrewProfile = true; - } - else if (typeof(IMixedRealityCameraSystem).IsAssignableFrom(serviceType)) - { - SerializedProperty serviceProfileProp = activeProfileObject.FindProperty("cameraProfile"); - BaseMixedRealityProfileInspector.RenderReadOnlyProfile(serviceProfileProp); - EditorGUILayout.Space(); - foundAndDrewProfile = true; - } - else if (typeof(IMixedRealitySceneSystem).IsAssignableFrom(serviceType)) - { - SerializedProperty serviceProfileProp = activeProfileObject.FindProperty("sceneSystemProfile"); - BaseMixedRealityProfileInspector.RenderReadOnlyProfile(serviceProfileProp); - EditorGUILayout.Space(); - foundAndDrewProfile = true; - } - } - else if (typeof(BaseExtensionService).IsAssignableFrom(serviceType)) - { - // Make sure the extension service profile isn't null - if (MixedRealityToolkit.Instance.ActiveProfile.RegisteredServiceProvidersProfile != null) - { - // If this is an extension service, see if it uses a profile - MixedRealityServiceConfiguration[] serviceConfigs = MixedRealityToolkit.Instance.ActiveProfile.RegisteredServiceProvidersProfile.Configurations; - for (int serviceIndex = 0; serviceIndex < serviceConfigs.Length; serviceIndex++) - { - MixedRealityServiceConfiguration serviceConfig = serviceConfigs[serviceIndex]; - if (serviceConfig.ComponentType.Type.IsAssignableFrom(serviceType) && serviceConfig.Profile != null) - { - // We found the service that this type uses - draw the profile - SerializedObject serviceConfigObject = new SerializedObject(MixedRealityToolkit.Instance.ActiveProfile.RegisteredServiceProvidersProfile); - SerializedProperty serviceConfigArray = serviceConfigObject.FindProperty("configurations"); - SerializedProperty serviceConfigProp = serviceConfigArray.GetArrayElementAtIndex(serviceIndex); - SerializedProperty serviceProfileProp = serviceConfigProp.FindPropertyRelative("configurationProfile"); - BaseMixedRealityProfileInspector.RenderReadOnlyProfile(serviceProfileProp); - EditorGUILayout.Space(); - foundAndDrewProfile = true; - break; - } - } - } - } - - return foundAndDrewProfile; - } - - /// - /// Gathers service types from all assemblies. - /// - private static void InitializeServiceInspectorLookup() - { - if (initializedServiceInspectorLookup) - { - return; - } - - inspectorTypeLookup.Clear(); - - var typesWithMyAttribute = - from assembly in AppDomain.CurrentDomain.GetAssemblies().AsParallel() - from classType in assembly.GetLoadableTypes() - let attribute = classType.GetCustomAttribute(true) - where attribute != null - select new { ClassType = classType, Attribute = attribute }; - - foreach (var result in typesWithMyAttribute) - { - inspectorTypeLookup.Add(result.Attribute.ServiceType, result.ClassType); - } - - initializedServiceInspectorLookup = true; - } - - /// - /// Draws gizmos for facade. - /// - [DrawGizmo(GizmoType.NonSelected | GizmoType.Selected | GizmoType.Active)] - private static void DrawGizmos(ServiceFacade facade, GizmoType type) - { - if (facade.Service == null) - { - return; - } - - if (!MixedRealityToolkit.IsInitialized || !MixedRealityToolkit.Instance.HasActiveProfile) - { - return; - } - - InitializeServiceInspectorLookup(); - - // Find and draw the custom inspector - foreach (Type interfaceType in facade.ServiceType.GetInterfaces()) - { - IMixedRealityServiceInspector inspectorInstance; - if (GetServiceInspectorInstance(interfaceType, out inspectorInstance)) - { - // If we've implemented a facade inspector, draw gizmos now - inspectorInstance.DrawGizmos(facade.Service); - } - } - } - - /// - /// Draws scene GUI for facade. - /// - private static void DrawSceneGUI(SceneView sceneView) - { - if (!MixedRealityToolkit.IsInitialized || !MixedRealityToolkit.Instance.HasActiveProfile) - { - return; - } - - InitializeServiceInspectorLookup(); - - foreach (KeyValuePair inspectorTypePair in inspectorTypeLookup) - { - // Find the facade associated with this service - ServiceFacade facade; - // If no facade exists for this service type, move on - if (!ServiceFacade.FacadeServiceLookup.TryGetValue(inspectorTypePair.Key, out facade) || facade.Destroyed || facade == null) - { - continue; - } - - foreach (Type interfaceType in inspectorTypePair.Key.GetInterfaces()) - { - IMixedRealityServiceInspector inspectorInstance; - if (!GetServiceInspectorInstance(interfaceType, out inspectorInstance)) - { - continue; - } - - if (Selection.Contains(facade) || inspectorInstance.AlwaysDrawSceneGUI) - { - inspectorInstance.DrawSceneGUI(facade.Service, sceneView); - } - } - } - } - - /// - /// Gets an instance of the service type. Returns false if no instance is found. - /// - private static bool GetServiceInspectorInstance(Type interfaceType, out IMixedRealityServiceInspector inspectorInstance) - { - inspectorInstance = null; - - Type inspectorType; - if (inspectorTypeLookup.TryGetValue(interfaceType, out inspectorType)) - { - if (!inspectorInstanceLookup.TryGetValue(inspectorType, out inspectorInstance)) - { - // If an instance of the class doesn't exist yet, create it now - try - { - inspectorInstance = (IMixedRealityServiceInspector)Activator.CreateInstance(inspectorType); - inspectorInstanceLookup.Add(inspectorType, inspectorInstance); - return true; - } - catch (Exception e) - { - Debug.LogError("Couldn't create instance of inspector type " + inspectorType); - Debug.LogException(e); - } - } - else - { - return true; - } - } - - return inspectorInstance != null; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs.meta deleted file mode 100644 index cc0741913..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/ServiceFacadeInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 75c7137de81a14e4ba0645725e79e844 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs deleted file mode 100644 index f00f96ffc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [MixedRealityServiceInspector(typeof(IMixedRealitySpatialAwarenessSystem))] - public class SpatialAwarenessSystemInspector : BaseMixedRealityServiceInspector - { - private const string ShowObserverBoundaryKey = "MRTK_SpatialAwarenessSystemInspector_ShowObserverBoundaryKey"; - private const string ShowObserverOriginKey = "MRTK_SpatialAwarenessSystemInspector_ShowObserverOriginKey"; - - private static bool ShowObserverBoundary = false; - private static bool ShowObserverOrigin = false; - - private static readonly Color[] observerColors = new Color[] { Color.blue, Color.cyan, Color.green, Color.magenta, Color.red, Color.yellow }; - private static readonly Color originColor = new Color(0.75f, 0.1f, 0.75f, 0.75f); - private static readonly Color enabledColor = GUI.backgroundColor; - private static readonly Color disabledColor = Color.Lerp(enabledColor, Color.clear, 0.5f); - - public override bool AlwaysDrawSceneGUI { get { return false; } } - - public override void DrawInspectorGUI(object target) - { - IMixedRealitySpatialAwarenessSystem spatial = (IMixedRealitySpatialAwarenessSystem)target; - IMixedRealityDataProviderAccess dataProviderAccess = (IMixedRealityDataProviderAccess)spatial; - - EditorGUILayout.LabelField("Observers", EditorStyles.boldLabel); - int observerIndex = 0; - - var dataProviders = dataProviderAccess?.GetDataProviders(); - if (dataProviders != null) - { - foreach (IMixedRealitySpatialAwarenessObserver observer in dataProviders) - { - GUI.color = observer.IsRunning ? enabledColor : disabledColor; - - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - GUI.color = GetObserverColor(observerIndex); - GUILayout.Button(observer.Name); - GUI.color = observer.IsRunning ? enabledColor : disabledColor; - - EditorGUILayout.Toggle("Running", observer.IsRunning); - EditorGUILayout.LabelField("Source", observer.SourceName); - EditorGUILayout.Toggle("Is Stationary", observer.IsStationaryObserver); - EditorGUILayout.FloatField("Update Interval", observer.UpdateInterval); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Volume Properties", EditorStyles.boldLabel); - EditorGUILayout.EnumPopup("Volume Type", observer.ObserverVolumeType); - EditorGUILayout.Vector3Field("Origin", observer.ObserverOrigin); - EditorGUILayout.Vector3Field("Rotation", observer.ObserverRotation.eulerAngles); - EditorGUILayout.Vector3Field("Extents", observer.ObservationExtents); - } - observerIndex++; - } - } - - GUI.color = enabledColor; - - if (!Application.isPlaying) - { - EditorGUILayout.HelpBox("Observers will be populated once you enter play mode.", MessageType.Info); - } - else if (observerIndex == 0) - { - EditorGUILayout.LabelField("(None found)", EditorStyles.miniLabel); - } - - EditorGUILayout.Space(); - - EditorGUILayout.LabelField("Editor Options", EditorStyles.boldLabel); - ShowObserverBoundary = SessionState.GetBool(ShowObserverBoundaryKey, false); - ShowObserverBoundary = EditorGUILayout.Toggle("Show Observer Boundaries", ShowObserverBoundary); - SessionState.SetBool(ShowObserverBoundaryKey, ShowObserverBoundary); - - ShowObserverOrigin = SessionState.GetBool(ShowObserverOriginKey, false); - ShowObserverOrigin = EditorGUILayout.Toggle("Show Observer Origins", ShowObserverOrigin); - SessionState.SetBool(ShowObserverOriginKey, ShowObserverOrigin); - } - - public override void DrawSceneGUI(object target, SceneView sceneView) { } - - public override void DrawGizmos(object target) - { - if (!(ShowObserverBoundary || ShowObserverOrigin)) - { - return; - } - - IMixedRealitySpatialAwarenessSystem spatial = (IMixedRealitySpatialAwarenessSystem)target; - IMixedRealityDataProviderAccess dataProviderAccess = (IMixedRealityDataProviderAccess)spatial; - - var dataProviders = dataProviderAccess?.GetDataProviders(); - if (dataProviders != null) - { - int observerIndex = 0; - - foreach (IMixedRealitySpatialAwarenessObserver observer in dataProviders) - { - Gizmos.color = GetObserverColor(observerIndex); - - if (ShowObserverBoundary) - { - switch (observer.ObserverVolumeType) - { - case VolumeType.None: - break; - - case VolumeType.AxisAlignedCube: - Gizmos.DrawWireCube(observer.ObserverOrigin, observer.ObservationExtents); - break; - - case VolumeType.Sphere: - Gizmos.DrawWireSphere(observer.ObserverOrigin, observer.ObservationExtents.x); - break; - - case VolumeType.UserAlignedCube: - Gizmos.DrawWireCube(observer.ObserverOrigin, observer.ObservationExtents); - break; - } - } - - Gizmos.matrix = Matrix4x4.identity; - - if (ShowObserverOrigin) - { - Gizmos.DrawSphere(observer.ObserverOrigin, 0.1f); - } - - observerIndex++; - } - } - } - - private Color GetObserverColor(int observerIndex) - { - if (observerIndex >= observerColors.Length) - { - observerIndex = 0; - } - - return Color.Lerp(Color.white, observerColors[observerIndex], 0.35f); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs.meta deleted file mode 100644 index a7e9d5309..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/SpatialAwarenessSystemInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 87aa6458300a2d94786a933bbc424427 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs deleted file mode 100644 index 092327bb7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Teleport; -using UnityEngine; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [MixedRealityServiceInspector(typeof(IMixedRealityTeleportSystem))] - public class TeleportSystemInspector : BaseMixedRealityServiceInspector - { - private static readonly Color enabledColor = GUI.backgroundColor; - private static readonly Color disabledColor = Color.Lerp(enabledColor, Color.clear, 0.5f); - - public override void DrawInspectorGUI(object target) - { - IMixedRealityTeleportSystem teleport = (IMixedRealityTeleportSystem)target; - - EditorGUILayout.LabelField("Event Listeners", EditorStyles.boldLabel); - - if (!Application.isPlaying) - { - EditorGUILayout.HelpBox("Event listeners will be populated once you enter play mode.", MessageType.Info); - return; - } - - if (teleport.EventListeners.Count == 0) - { - EditorGUILayout.LabelField("(None found)", EditorStyles.miniLabel); - } - else - { - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - foreach (GameObject listener in teleport.EventListeners) - { - EditorGUILayout.ObjectField(listener.name, listener, typeof(GameObject), true); - } - EditorGUILayout.EndVertical(); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs.meta deleted file mode 100644 index 978064b20..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/ServiceInspectors/TeleportSystemInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8f34a2ab5ac91c448a0d02a4b0992f06 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Setup.meta deleted file mode 100644 index 2304419c6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 250a1eaf5e348764c9f2ee5c4b2df8d2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs deleted file mode 100644 index 82c73887e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using System.Linq; -using System.Text; -using UnityEditor; -using UnityEditor.Build; -using UnityEditor.Build.Reporting; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Editor runtime controller for showing Project Configuration window and performance checks logging in current Unity project - /// - [InitializeOnLoad] - public class MixedRealityEditorSettings : IActiveBuildTargetChanged, IPreprocessBuildWithReport - { - private const string SessionKey = "_MixedRealityToolkit_Editor_ShownSettingsPrompts"; - private static readonly string[] UwpRecommendedAudioSpatializers = { "MS HRTF Spatializer", "Microsoft Spatializer" }; - -#if UNITY_ANDROID - const string RenderingMode = "Single Pass Stereo"; -#else - const string RenderingMode = "Single Pass Instanced"; -#endif - - public MixedRealityEditorSettings() - { - callbackOrder = 0; - } - - static MixedRealityEditorSettings() - { - // Detect when we enter player mode so we can try checking for optimal configuration - EditorApplication.playModeStateChanged += OnPlayStateModeChanged; - - // Subscribe to editor application update which will call us once the editor is initialized and running - EditorApplication.update += OnInit; - } - - private static void OnInit() - { - // We only want to execute once to initialize, unsubscribe from update event - EditorApplication.update -= OnInit; - - ShowProjectConfigurationDialog(); - } - - /// - public int callbackOrder { get; private set; } - - /// - public void OnActiveBuildTargetChanged(BuildTarget previousTarget, BuildTarget newTarget) - { - IgnoreProjectConfigForSession = false; - } - - /// - /// Session state wrapper that tracks whether to ignore checking Project Configuration for the current Unity session - /// - public static bool IgnoreProjectConfigForSession - { - get => SessionState.GetBool(SessionKey, false); - set => SessionState.SetBool(SessionKey, value); - } - - /// - public void OnPreprocessBuild(BuildReport report) - { - if (MixedRealityProjectPreferences.RunOptimalConfiguration) - { - LogBuildConfigurationWarnings(); - } - } - - private static void OnPlayStateModeChanged(PlayModeStateChange state) - { - if (state == PlayModeStateChange.EnteredPlayMode && MixedRealityProjectPreferences.RunOptimalConfiguration) - { - LogConfigurationWarnings(); - } - } - - private static void ShowProjectConfigurationDialog() - { - if (!EditorApplication.isPlayingOrWillChangePlaymode - && !IgnoreProjectConfigForSession - && !MixedRealityProjectPreferences.IgnoreSettingsPrompt - && !MixedRealityProjectConfigurator.IsProjectConfigured()) - { - MixedRealityProjectConfiguratorWindow.ShowWindow(); - } - } - - /// - /// Checks critical project settings and suggests changes to optimize performance via logged warnings - /// - private static void LogConfigurationWarnings() - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. - if (!XRSettingsUtilities.LegacyXREnabled) - { - Debug.LogWarning("Virtual reality supported not enabled. Check XR Settings under Player Settings"); - } - - if (!MixedRealityOptimizeUtils.IsOptimalRenderingPath()) - { - Debug.LogWarning($"XR stereo rendering mode not set to {RenderingMode}. See Mixed Reality Toolkit > Utilities > Optimize Window tool for more information to improve performance"); - } - - // If targeting Windows Mixed Reality platform - if (MixedRealityOptimizeUtils.IsBuildTargetUWP()) - { - if (!MixedRealityOptimizeUtils.IsDepthBufferSharingEnabled()) - { - // If depth buffer sharing not enabled, advise to enable setting - Debug.LogWarning("Depth Buffer Sharing is not enabled to improve hologram stabilization. See Mixed Reality Toolkit > Utilities > Optimize Window tool for more information to improve performance"); - } - - if (!MixedRealityOptimizeUtils.IsWMRDepthBufferFormat16bit()) - { - // If depth format is 24-bit, advise to consider 16-bit for performance. - Debug.LogWarning("Depth Buffer Sharing has 24-bit depth format selected. Consider using 16-bit for performance. See Mixed Reality Toolkit > Utilities > Optimize Window tool for more information to improve performance"); - } - - if (!UwpRecommendedAudioSpatializers.Contains(SpatializerUtilities.CurrentSpatializer)) - { - Debug.LogWarning($"This application is not using the recommended Audio Spatializer Plugin. Go to Project Settings > Audio > Spatializer Plugin and select one of the following: {string.Join(", ", UwpRecommendedAudioSpatializers)}."); - } - } - else if (SpatializerUtilities.CurrentSpatializer == null) - { - Debug.LogWarning($"This application is not using an Audio Spatializer Plugin. Go to Project Settings > Audio > Spatializer Plugin and select one of the available options."); - } - } - - /// - /// Checks critical project settings and suggests changes to optimize build performance via logged warnings - /// - private static void LogBuildConfigurationWarnings() - { - if (PlayerSettings.stripUnusedMeshComponents) - { - /// For more information please see Optimize Mesh Data - Debug.LogWarning("Optimize Mesh Data is enabled. This setting can drastically increase build times. It is recommended to disable this setting during development and re-enable during \"Master\" build creation. See Player Settings > Other Settings > Optimize Mesh Data"); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs.meta deleted file mode 100644 index a7491b0fd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityEditorSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8dd4614f1e3a4075bbd4f4d8c3d96f5c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs deleted file mode 100644 index 4f7b55336..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs +++ /dev/null @@ -1,308 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using System.Collections.Generic; -using UnityEditor; -using UnityEditor.Compilation; -using UnityEngine; -using MRConfig = Microsoft.MixedReality.Toolkit.Utilities.Editor.MixedRealityProjectConfigurator.Configurations; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - public class MixedRealityProjectConfiguratorWindow : EditorWindow - { - private readonly Dictionary trackToggles = new Dictionary() - { - { MRConfig.ForceTextSerialization, true }, - { MRConfig.VisibleMetaFiles, true }, - { MRConfig.VirtualRealitySupported, true }, - { MRConfig.OptimalRenderingPath, true }, - { MRConfig.SpatialAwarenessLayer, true }, - { MRConfig.AudioSpatializer, true }, - - // UWP Capabilities - { MRConfig.MicrophoneCapability, true }, - { MRConfig.InternetClientCapability, true }, - { MRConfig.SpatialPerceptionCapability, true }, -#if UNITY_2019_3_OR_NEWER - { MRConfig.EyeTrackingCapability, true }, -#endif // UNITY_2019_3_OR_NEWER - - // Android Settings - { MRConfig.AndroidMultiThreadedRendering, true }, - { MRConfig.AndroidMinSdkVersion, true }, - - // iOS Settings - { MRConfig.IOSMinOSVersion, true }, - { MRConfig.IOSArchitecture, true }, - { MRConfig.IOSCameraUsageDescription, true }, - -#if UNITY_2019_3_OR_NEWER - // A workaround for the Unity bug described in https://github.com/microsoft/MixedRealityToolkit-Unity/issues/8326. - { MRConfig.GraphicsJobWorkaround, true }, -#endif // UNITY_2019_3_OR_NEWER - }; - - private const float Default_Window_Height = 640.0f; - private const float Default_Window_Width = 400.0f; - private const string None = "None"; - - private readonly GUIContent ApplyButtonContent = new GUIContent("Apply", "Apply configurations to this Unity Project"); - private readonly GUIContent LaterButtonContent = new GUIContent("Later", "Do not show this pop-up notification until next session"); - private readonly GUIContent IgnoreButtonContent = new GUIContent("Ignore", "Modify this preference under Edit > Project Settings > Mixed Reality Toolkit"); - - private bool showConfigurations = true; - - /// - /// Show the MRTK Project Configurator utility window or focus if already opened - /// - [MenuItem("Mixed Reality Toolkit/Utilities/Configure Unity Project", false, 499)] - public static void ShowWindow() - { - // There should be only one configurator window open as a "pop-up". If already open, then just force focus on our instance - if (IsOpen) - { - Instance.Focus(); - } - else - { - var window = CreateInstance(); - window.titleContent = new GUIContent("MRTK Project Configurator", EditorGUIUtility.IconContent("_Popup").image); - window.position = new Rect(Screen.width / 2.0f, Screen.height / 2.0f, Default_Window_Height, Default_Window_Width); - window.ShowUtility(); - } - } - - public static MixedRealityProjectConfiguratorWindow Instance { get; private set; } - - public static bool IsOpen => Instance != null; - - private void OnEnable() - { - Instance = this; - - CompilationPipeline.assemblyCompilationStarted += CompilationPipeline_assemblyCompilationStarted; - MixedRealityProjectConfigurator.SelectedSpatializer = SpatializerUtilities.CurrentSpatializer; - } - - private void CompilationPipeline_assemblyCompilationStarted(string obj) - { - // There should be only one pop-up window which is generally tracked by IsOpen - // However, when recompiling, Unity will call OnDestroy for this window but not actually destroy the editor window - // This ensure we have a clean close on recompiles when this EditorWindow was open beforehand - Close(); - } - - private void OnGUI() - { - MixedRealityInspectorUtility.RenderMixedRealityToolkitLogo(); - - string foldoutHeader; - - if (!MixedRealityProjectConfigurator.IsProjectConfigured()) - { - foldoutHeader = "Modify Configurations"; - RenderChoiceDialog(); - } - else - { - foldoutHeader = "Configurations"; - RenderConfiguredConfirmation(); - } - - EditorGUILayout.Space(); - - showConfigurations = EditorGUILayout.Foldout(showConfigurations, foldoutHeader, true); - if (showConfigurations) - { - RenderConfigurations(); - } - } - - private void RenderConfiguredConfirmation() - { - const string dialogTitle = "Project Configuration Complete"; - const string dialogContent = "This Unity project is properly configured for the Mixed Reality Toolkit."; - EditorGUILayout.LabelField(dialogTitle, EditorStyles.boldLabel); - EditorGUILayout.LabelField(dialogContent); - } - - private void RenderChoiceDialog() - { - const string dialogTitle = "Apply Default Settings?"; - const string dialogContent = "The Mixed Reality Toolkit would like to auto-apply useful settings to this Unity project"; - EditorGUILayout.LabelField(dialogTitle, EditorStyles.boldLabel); - EditorGUILayout.LabelField(dialogContent); - - using (new EditorGUILayout.HorizontalScope()) - { - if (GUILayout.Button(ApplyButtonContent)) - { - ApplyConfigurations(); - Close(); - } - - if (GUILayout.Button(LaterButtonContent)) - { - MixedRealityEditorSettings.IgnoreProjectConfigForSession = true; - Close(); - } - - if (GUILayout.Button(IgnoreButtonContent)) - { - MixedRealityProjectPreferences.IgnoreSettingsPrompt = true; - Close(); - } - } - } - - private Vector2 scrollPosition = Vector2.zero; - - private void RenderConfigurations() - { - EditorGUILayout.LabelField("Enabled options will be applied to the project. Disabled items are already properly configured."); - EditorGUILayout.Space(); - - using (var scrollView = new EditorGUILayout.ScrollViewScope(scrollPosition)) - { - scrollPosition = scrollView.scrollPosition; - EditorGUILayout.LabelField("Project Settings", EditorStyles.boldLabel); - RenderToggle(MRConfig.ForceTextSerialization, "Force text asset serialization"); - RenderToggle(MRConfig.VisibleMetaFiles, "Enable visible meta files"); - if (!MixedRealityOptimizeUtils.IsBuildTargetAndroid() && !MixedRealityOptimizeUtils.IsBuildTargetIOS() && XRSettingsUtilities.IsLegacyXRActive) - { -#if !UNITY_2019_3_OR_NEWER - RenderToggle(MRConfig.VirtualRealitySupported, "Enable VR supported"); -#endif // !UNITY_2019_3_OR_NEWER - } -#if UNITY_2019_3_OR_NEWER - RenderToggle(MRConfig.OptimalRenderingPath, "Set Single Pass Instanced rendering path (legacy XR API)"); -#else -#if UNITY_ANDROID - RenderToggle(MRConfig.OptimalRenderingPath, "Set Single Pass Stereo rendering path"); -#else - RenderToggle(MRConfig.OptimalRenderingPath, "Set Single Pass Instanced rendering path"); -#endif -#endif // UNITY_2019_3_OR_NEWER - RenderToggle(MRConfig.SpatialAwarenessLayer, "Set default Spatial Awareness layer"); - PromptForAudioSpatializer(); - EditorGUILayout.Space(); - - if (MixedRealityOptimizeUtils.IsBuildTargetUWP()) - { - EditorGUILayout.LabelField("UWP Capabilities", EditorStyles.boldLabel); - RenderToggle(MRConfig.MicrophoneCapability, "Enable Microphone Capability"); - RenderToggle(MRConfig.InternetClientCapability, "Enable Internet Client Capability"); - RenderToggle(MRConfig.SpatialPerceptionCapability, "Enable Spatial Perception Capability"); -#if UNITY_2019_3_OR_NEWER - RenderToggle(MRConfig.EyeTrackingCapability, "Enable Eye Gaze Input Capability"); - RenderToggle(MRConfig.GraphicsJobWorkaround, "Avoid Unity 'PlayerSettings.graphicsJob' crash"); -#endif // UNITY_2019_3_OR_NEWER - } - else - { - trackToggles[MRConfig.MicrophoneCapability] = false; - trackToggles[MRConfig.InternetClientCapability] = false; - trackToggles[MRConfig.SpatialPerceptionCapability] = false; -#if UNITY_2019_3_OR_NEWER - trackToggles[MRConfig.EyeTrackingCapability] = false; - trackToggles[MRConfig.GraphicsJobWorkaround] = false; -#endif // UNITY_2019_3_OR_NEWER - } - - if (MixedRealityOptimizeUtils.IsBuildTargetAndroid()) - { - EditorGUILayout.LabelField("Android Settings", EditorStyles.boldLabel); - RenderToggle(MRConfig.AndroidMultiThreadedRendering, "Disable Multi-Threaded Rendering"); - RenderToggle(MRConfig.AndroidMinSdkVersion, "Set Minimum API Level"); - } - - if (MixedRealityOptimizeUtils.IsBuildTargetIOS()) - { - EditorGUILayout.LabelField("iOS Settings", EditorStyles.boldLabel); - RenderToggle(MRConfig.IOSMinOSVersion, "Set Required OS Version"); - RenderToggle(MRConfig.IOSArchitecture, "Set Required Architecture"); - RenderToggle(MRConfig.IOSCameraUsageDescription, "Set Camera Usage Descriptions"); - } - } - } - - private void ApplyConfigurations() - { - var configurationFilter = new HashSet(); - foreach (var item in trackToggles) - { - if (item.Value) - { - configurationFilter.Add(item.Key); - } - } - - MixedRealityProjectConfigurator.ConfigureProject(configurationFilter); - } - - /// - /// Provide the user with the list of spatializers that can be selected. - /// - private void PromptForAudioSpatializer() - { - string selectedSpatializer = MixedRealityProjectConfigurator.SelectedSpatializer; - List spatializers = new List - { - None - }; - spatializers.AddRange(SpatializerUtilities.InstalledSpatializers); - RenderDropDown(MRConfig.AudioSpatializer, "Audio spatializer:", spatializers.ToArray(), ref selectedSpatializer); - MixedRealityProjectConfigurator.SelectedSpatializer = selectedSpatializer; - } - - private void RenderDropDown(MRConfig configKey, string title, string[] collection, ref string selection) - { - bool configured = MixedRealityProjectConfigurator.IsConfigured(configKey); - using (new EditorGUI.DisabledGroupScope(configured)) - { - if (configured) - { - EditorGUILayout.LabelField(new GUIContent($"{title} {selection}", InspectorUIUtility.SuccessIcon)); - } - else - { - int index = 0; - for (int i = 0; i < collection.Length; i++) - { - if (collection[i] != selection) { continue; } - - index = i; - } - index = EditorGUILayout.Popup(title, index, collection, EditorStyles.popup); - - selection = collection[index]; - if (selection == None) - { - // The user selected "None", return null. Unity uses this string where null - // is the underlying value. - selection = null; - } - } - } - } - - private void RenderToggle(MRConfig configKey, string title) - { - bool configured = MixedRealityProjectConfigurator.IsConfigured(configKey); - using (new EditorGUI.DisabledGroupScope(configured)) - { - if (configured) - { - EditorGUILayout.LabelField(new GUIContent(title, InspectorUIUtility.SuccessIcon)); - trackToggles[configKey] = false; - } - else - { - trackToggles[configKey] = EditorGUILayout.ToggleLeft(title, trackToggles[configKey]); - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs.meta deleted file mode 100644 index 047cb45a3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4239734a3da4dc54082f95e4bdb48b25 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs deleted file mode 100644 index 0cfc277b3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(ProjectPreferences))] - internal class ProjectPreferencesInspector : UnityEditor.Editor - { - public override void OnInspectorGUI() - { - EditorGUILayout.HelpBox("Use Project Settings > MRTK to edit project preferences or interact in code via ProjectPreferences.cs", MessageType.Warning); - - DrawDefaultInspector(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs.meta deleted file mode 100644 index 3a32016bb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Setup/ProjectPreferencesInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a9c8f063b771410479fb725f04c665dc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities.meta deleted file mode 100644 index 8bbb6306f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a5564eca9271475f89a74715b6a277e2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs deleted file mode 100644 index 80d8e78dd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs +++ /dev/null @@ -1,351 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A collection of helper functions for adding InspectorFields to a custom Inspector - /// - public static class InspectorFieldsUtility - { - public static bool AreFieldsSame(SerializedProperty settings, List fieldList) - { - // If number of fields don't match, automatically not the same - if (settings.arraySize != fieldList.Count) - { - return false; - } - - // If same number of fields, ensure union of two lists is a perfect match - for (int idx = 0; idx < settings.arraySize - 1; idx++) - { - SerializedProperty name = settings.GetArrayElementAtIndex(idx).FindPropertyRelative("Name"); - - if (fieldList.FindIndex(s => s.Name == name.stringValue) == -1) - { - return false; - } - } - - return true; - } - /// - /// Update list of serialized PropertySettings from new or removed InspectorFields - /// - public static void UpdateSettingsList(SerializedProperty settings, List fieldList) - { - // Delete existing settings that now have missing field - // Remove data entries for existing setting matches - for (int idx = settings.arraySize - 1; idx >= 0; idx--) - { - SerializedProperty settingItem = settings.GetArrayElementAtIndex(idx); - SerializedProperty name = settingItem.FindPropertyRelative("Name"); - - int index = fieldList.FindIndex(s => s.Name == name.stringValue); - if (index != -1) - { - fieldList.RemoveAt(index); - } - else - { - settings.DeleteArrayElementAtIndex(idx); - } - } - - AddFieldsToSettingsList(settings, fieldList); - } - - /// - /// Create a new list of serialized PropertySettings from InspectorFields - /// - public static void ClearSettingsList(SerializedProperty settings, List data) - { - settings.ClearArray(); - - AddFieldsToSettingsList(settings, data); - } - - /// - /// Adds InspectorFields to list of serialized PropertySettings - /// - public static void AddFieldsToSettingsList(SerializedProperty settings, List data) - { - for (int i = 0; i < data.Count; i++) - { - settings.InsertArrayElementAtIndex(settings.arraySize); - SerializedProperty settingItem = settings.GetArrayElementAtIndex(settings.arraySize - 1); - - UpdatePropertySettings(settingItem, (int)data[i].Attributes.Type, data[i].Value); - - SerializedProperty type = settingItem.FindPropertyRelative("Type"); - SerializedProperty tooltip = settingItem.FindPropertyRelative("Tooltip"); - SerializedProperty label = settingItem.FindPropertyRelative("Label"); - SerializedProperty options = settingItem.FindPropertyRelative("Options"); - SerializedProperty name = settingItem.FindPropertyRelative("Name"); - - type.enumValueIndex = (int)data[i].Attributes.Type; - tooltip.stringValue = data[i].Attributes.Tooltip; - label.stringValue = data[i].Attributes.Label; - name.stringValue = data[i].Name; - - options.ClearArray(); - - if (data[i].Attributes.Options != null) - { - for (int j = 0; j < data[i].Attributes.Options.Length; j++) - { - options.InsertArrayElementAtIndex(j); - SerializedProperty item = options.GetArrayElementAtIndex(j); - item.stringValue = data[i].Attributes.Options[j]; - } - } - } - } - - /// - /// Update a property value in a serialized PropertySettings - /// - public static void UpdatePropertySettings(SerializedProperty prop, int type, object update) - { - SerializedProperty intValue = prop.FindPropertyRelative("IntValue"); - SerializedProperty stringValue = prop.FindPropertyRelative("StringValue"); - - switch ((InspectorField.FieldTypes)type) - { - case InspectorField.FieldTypes.Float: - SerializedProperty floatValue = prop.FindPropertyRelative("FloatValue"); - floatValue.floatValue = (float)update; - break; - case InspectorField.FieldTypes.Int: - intValue.intValue = (int)update; - break; - case InspectorField.FieldTypes.String: - - stringValue.stringValue = (string)update; - break; - case InspectorField.FieldTypes.Bool: - SerializedProperty boolValue = prop.FindPropertyRelative("BoolValue"); - boolValue.boolValue = (bool)update; - break; - case InspectorField.FieldTypes.Color: - SerializedProperty colorValue = prop.FindPropertyRelative("ColorValue"); - colorValue.colorValue = (Color)update; - break; - case InspectorField.FieldTypes.DropdownInt: - intValue.intValue = (int)update; - break; - case InspectorField.FieldTypes.DropdownString: - stringValue.stringValue = (string)update; - break; - case InspectorField.FieldTypes.GameObject: - SerializedProperty gameObjectValue = prop.FindPropertyRelative("GameObjectValue"); - gameObjectValue.objectReferenceValue = (GameObject)update; - break; - case InspectorField.FieldTypes.ScriptableObject: - SerializedProperty scriptableObjectValue = prop.FindPropertyRelative("ScriptableObjectValue"); - scriptableObjectValue.objectReferenceValue = (ScriptableObject)update; - break; - case InspectorField.FieldTypes.Object: - SerializedProperty objectValue = prop.FindPropertyRelative("ObjectValue"); - objectValue.objectReferenceValue = (UnityEngine.Object)update; - break; - case InspectorField.FieldTypes.Material: - SerializedProperty materialValue = prop.FindPropertyRelative("MaterialValue"); - materialValue.objectReferenceValue = (Material)update; - break; - case InspectorField.FieldTypes.Texture: - SerializedProperty textureValue = prop.FindPropertyRelative("TextureValue"); - textureValue.objectReferenceValue = (Texture)update; - break; - case InspectorField.FieldTypes.Vector2: - SerializedProperty vector2Value = prop.FindPropertyRelative("Vector2Value"); - vector2Value.vector2Value = (Vector2)update; - break; - case InspectorField.FieldTypes.Vector3: - SerializedProperty vector3Value = prop.FindPropertyRelative("Vector3Value"); - vector3Value.vector3Value = (Vector3)update; - break; - case InspectorField.FieldTypes.Vector4: - SerializedProperty vector4Value = prop.FindPropertyRelative("Vector4Value"); - vector4Value.vector4Value = (Vector4)update; - break; - case InspectorField.FieldTypes.Curve: - SerializedProperty curveValue = prop.FindPropertyRelative("CurveValue"); - curveValue.animationCurveValue = (AnimationCurve)update; - break; - case InspectorField.FieldTypes.Quaternion: - SerializedProperty quaternionValue = prop.FindPropertyRelative("QuaternionValue"); - quaternionValue.quaternionValue = (Quaternion)update; - break; - case InspectorField.FieldTypes.AudioClip: - SerializedProperty audioClip = prop.FindPropertyRelative("AudioClipValue"); - audioClip.objectReferenceValue = (AudioClip)update; - break; - case InspectorField.FieldTypes.Event: - // read only, do not update here or a new instance of the event will be created - break; - default: - break; - } - } - - public static List GetInspectorFields(System.Object target) - { - List fields = new List(); - Type myType = target.GetType(); - - foreach (PropertyInfo prop in myType.GetProperties()) - { - var attrs = (InspectorField[])prop.GetCustomAttributes(typeof(InspectorField), false); - foreach (var attr in attrs) - { - fields.Add(new InspectorFieldData() { Name = prop.Name, Attributes = attr, Value = prop.GetValue(target, null) }); - } - } - - foreach (FieldInfo field in myType.GetFields()) - { - var attrs = (InspectorField[])field.GetCustomAttributes(typeof(InspectorField), false); - foreach (var attr in attrs) - { - fields.Add(new InspectorFieldData() { Name = field.Name, Attributes = attr, Value = field.GetValue(target) }); - } - } - - return fields; - } - - /// - /// Checks the type a property field and returns if it matches the passed in type - /// - public static bool IsPropertyType(SerializedProperty prop, InspectorField.FieldTypes type) - { - SerializedProperty propType = prop.FindPropertyRelative("Type"); - return (InspectorField.FieldTypes)propType.intValue == type; - } - - /// - /// Render a PropertySettings UI field based on the InspectorField Settings - /// - public static void DisplayPropertyField(SerializedProperty prop) - { - SerializedProperty type = prop.FindPropertyRelative("Type"); - SerializedProperty label = prop.FindPropertyRelative("Label"); - SerializedProperty tooltip = prop.FindPropertyRelative("Tooltip"); - SerializedProperty options = prop.FindPropertyRelative("Options"); - - SerializedProperty intValue = prop.FindPropertyRelative("IntValue"); - SerializedProperty stringValue = prop.FindPropertyRelative("StringValue"); - - Rect position; - GUIContent propLabel = new GUIContent(label.stringValue, tooltip.stringValue); - switch ((InspectorField.FieldTypes)type.intValue) - { - case InspectorField.FieldTypes.Float: - SerializedProperty floatValue = prop.FindPropertyRelative("FloatValue"); - EditorGUILayout.PropertyField(floatValue, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.Int: - EditorGUILayout.PropertyField(intValue, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.String: - EditorGUILayout.PropertyField(stringValue, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.Bool: - SerializedProperty boolValue = prop.FindPropertyRelative("BoolValue"); - EditorGUILayout.PropertyField(boolValue, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.Color: - SerializedProperty colorValue = prop.FindPropertyRelative("ColorValue"); - EditorGUILayout.PropertyField(colorValue, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.DropdownInt: - position = EditorGUILayout.GetControlRect(); - EditorGUI.BeginProperty(position, propLabel, intValue); - { - intValue.intValue = EditorGUI.Popup(position, label.stringValue, intValue.intValue, InspectorUIUtility.GetOptions(options)); - } - EditorGUI.EndProperty(); - break; - case InspectorField.FieldTypes.DropdownString: - string[] stringOptions = InspectorUIUtility.GetOptions(options); - int selection = InspectorUIUtility.GetOptionsIndex(options, stringValue.stringValue); - position = EditorGUILayout.GetControlRect(); - EditorGUI.BeginProperty(position, propLabel, intValue); - { - int newIndex = EditorGUI.Popup(position, label.stringValue, selection, stringOptions); - if (selection != newIndex) - { - stringValue.stringValue = stringOptions[newIndex]; - intValue.intValue = newIndex; - } - } - EditorGUI.EndProperty(); - break; - case InspectorField.FieldTypes.GameObject: - SerializedProperty gameObjectValue = prop.FindPropertyRelative("GameObjectValue"); - EditorGUILayout.PropertyField(gameObjectValue, new GUIContent(label.stringValue, tooltip.stringValue), false); - break; - case InspectorField.FieldTypes.ScriptableObject: - SerializedProperty scriptableObjectValue = prop.FindPropertyRelative("ScriptableObjectValue"); - EditorGUILayout.PropertyField(scriptableObjectValue, new GUIContent(label.stringValue, tooltip.stringValue), false); - break; - case InspectorField.FieldTypes.Object: - SerializedProperty objectValue = prop.FindPropertyRelative("ObjectValue"); - EditorGUILayout.PropertyField(objectValue, new GUIContent(label.stringValue, tooltip.stringValue), true); - break; - case InspectorField.FieldTypes.Material: - SerializedProperty materialValue = prop.FindPropertyRelative("MaterialValue"); - EditorGUILayout.PropertyField(materialValue, new GUIContent(label.stringValue, tooltip.stringValue), false); - break; - case InspectorField.FieldTypes.Texture: - SerializedProperty textureValue = prop.FindPropertyRelative("TextureValue"); - EditorGUILayout.PropertyField(textureValue, new GUIContent(label.stringValue, tooltip.stringValue), false); - break; - case InspectorField.FieldTypes.Vector2: - SerializedProperty vector2Value = prop.FindPropertyRelative("Vector2Value"); - EditorGUILayout.PropertyField(vector2Value, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.Vector3: - SerializedProperty vector3Value = prop.FindPropertyRelative("Vector3Value"); - EditorGUILayout.PropertyField(vector3Value, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.Vector4: - SerializedProperty vector4Value = prop.FindPropertyRelative("Vector4Value"); - EditorGUILayout.PropertyField(vector4Value, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.Curve: - SerializedProperty curveValue = prop.FindPropertyRelative("CurveValue"); - EditorGUILayout.PropertyField(curveValue, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - case InspectorField.FieldTypes.Quaternion: - SerializedProperty quaternionValue = prop.FindPropertyRelative("QuaternionValue"); - Vector4 vect4 = new Vector4(quaternionValue.quaternionValue.x, quaternionValue.quaternionValue.y, quaternionValue.quaternionValue.z, quaternionValue.quaternionValue.w); - position = EditorGUILayout.GetControlRect(); - EditorGUI.BeginProperty(position, propLabel, quaternionValue); - { - vect4 = EditorGUI.Vector4Field(position, propLabel, vect4); - quaternionValue.quaternionValue = new Quaternion(vect4.x, vect4.y, vect4.z, vect4.w); - } - EditorGUI.EndProperty(); - break; - case InspectorField.FieldTypes.AudioClip: - SerializedProperty audioClip = prop.FindPropertyRelative("AudioClipValue"); - EditorGUILayout.PropertyField(audioClip, new GUIContent(label.stringValue, tooltip.stringValue), false); - break; - case InspectorField.FieldTypes.Event: - SerializedProperty uEvent = prop.FindPropertyRelative("EventValue"); - EditorGUILayout.PropertyField(uEvent, new GUIContent(label.stringValue, tooltip.stringValue)); - break; - default: - break; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs.meta deleted file mode 100644 index bcb8e2ba8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorFieldsUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3185493363fa80347a2ec0f9fa8907db -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs deleted file mode 100644 index 7c1716191..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs +++ /dev/null @@ -1,766 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using UnityEditor; -using UnityEditor.Experimental.SceneManagement; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// This class has handy inspector UI utilities and functions. - /// - public static class InspectorUIUtility - { - // Colors - private static readonly Color PersonalThemeColorTint100 = new Color(1f, 1f, 1f); - private static readonly Color PersonalThemeColorTint75 = new Color(0.75f, 0.75f, 0.75f); - private static readonly Color PersonalThemeColorTint50 = new Color(0.5f, 0.5f, 0.5f); - private static readonly Color PersonalThemeColorTint25 = new Color(0.25f, 0.25f, 0.25f); - private static readonly Color PersonalThemeColorTint10 = new Color(0.10f, 0.10f, 0.10f); - - private static readonly Color ProfessionalThemeColorTint100 = new Color(0f, 0f, 0f); - private static readonly Color ProfessionalThemeColorTint75 = new Color(0.25f, 0.25f, 0.25f); - private static readonly Color ProfessionalThemeColorTint50 = new Color(0.5f, 0.5f, 0.5f); - private static readonly Color ProfessionalThemeColorTint25 = new Color(0.75f, 0.75f, 0.75f); - private static readonly Color ProfessionalThemeColorTint10 = new Color(0.9f, 0.9f, 0.9f); - - public static Color ColorTint100 => EditorGUIUtility.isProSkin ? ProfessionalThemeColorTint100 : PersonalThemeColorTint100; - public static Color ColorTint75 => EditorGUIUtility.isProSkin ? ProfessionalThemeColorTint75 : PersonalThemeColorTint75; - public static Color ColorTint50 => EditorGUIUtility.isProSkin ? ProfessionalThemeColorTint50 : PersonalThemeColorTint50; - public static Color ColorTint25 => EditorGUIUtility.isProSkin ? ProfessionalThemeColorTint25 : PersonalThemeColorTint25; - public static Color ColorTint10 => EditorGUIUtility.isProSkin ? ProfessionalThemeColorTint10 : PersonalThemeColorTint10; - - // default UI sizes - public const int TitleFontSize = 14; - public const int HeaderFontSize = 11; - public const int DefaultFontSize = 10; - public const float DocLinkWidth = 175f; - - // special characters - public static readonly string Minus = "\u2212"; - public static readonly string Plus = "\u002B"; - public static readonly string Astrisk = "\u2217"; - public static readonly string Left = "\u02C2"; - public static readonly string Right = "\u02C3"; - public static readonly string Up = "\u02C4"; - public static readonly string Down = "\u02C5"; - public static readonly string Close = "\u2715"; - public static readonly string Heart = "\u2661"; - public static readonly string Star = "\u2606"; - public static readonly string Emoji = "\u263A"; - - public static readonly Texture HelpIcon = EditorGUIUtility.IconContent("_Help").image; - public static readonly Texture SuccessIcon = EditorGUIUtility.IconContent("Collab").image; - public static readonly Texture WarningIcon = EditorGUIUtility.IconContent("console.warnicon").image; - public static readonly Texture InfoIcon = EditorGUIUtility.IconContent("console.infoicon").image; - - /// - /// A data container for managing scrolling lists or nested drawers in custom inspectors. - /// - public struct ListSettings - { - public bool Show; - public Vector2 Scroll; - } - - /// - /// Delegate for button callbacks, single index - /// - /// location of item in a serialized array - /// A serialize property containing information needed if the button was clicked - public delegate void ListButtonEvent(int index, SerializedProperty prop = null); - - /// - /// Delegate for button callbacks, multi-index for nested arrays - /// - /// location of item in a serialized array - /// A serialize property containing information needed if the button was clicked - public delegate void MultiListButtonEvent(int[] indexArray, SerializedProperty prop = null); - - /// - /// Box style with left margin - /// - public static GUIStyle Box(int margin) - { - GUIStyle box = new GUIStyle(GUI.skin.box); - box.margin.left = margin; - return box; - } - - /// - /// Help box style with left margin - /// - /// amount of left margin - /// Configured helpbox GUIStyle - public static GUIStyle HelpBox(int margin) - { - GUIStyle box = new GUIStyle(EditorStyles.helpBox); - box.margin.left = margin; - return box; - } - - /// - /// Create a custom label style based on color and size - /// - public static GUIStyle LableStyle(int size, Color color) - { - GUIStyle labelStyle = new GUIStyle(EditorStyles.boldLabel); - labelStyle.fontStyle = FontStyle.Bold; - labelStyle.fontSize = size; - labelStyle.fixedHeight = size * 2; - labelStyle.normal.textColor = color; - return labelStyle; - } - - /// - /// Helper function to render buttons correctly indented according to EditorGUI.indentLevel since GUILayout component don't respond naturally - /// - /// text to place in button - /// layout options - /// true if button clicked, false if otherwise - public static bool RenderIndentedButton(string buttonText, params GUILayoutOption[] options) - { - return RenderIndentedButton(() => { return GUILayout.Button(buttonText, options); }); - } - - /// - /// Helper function to render buttons correctly indented according to EditorGUI.indentLevel since GUILayout component don't respond naturally - /// - /// What to draw in button - /// Style configuration for button - /// layout options - /// true if button clicked, false if otherwise - public static bool RenderIndentedButton(GUIContent content, GUIStyle style, params GUILayoutOption[] options) - { - return RenderIndentedButton(() => { return GUILayout.Button(content, style, options); }); - } - - /// - /// Helper function to support primary overloaded version of this functionality - /// - /// The code to render button correctly based on parameter types passed - /// true if button clicked, false if otherwise - public static bool RenderIndentedButton(Func renderButton) - { - bool result = false; - GUILayout.BeginHorizontal(); - GUILayout.Space(EditorGUI.indentLevel * 15); - result = renderButton(); - GUILayout.EndHorizontal(); - return result; - } - - /// - /// Render documentation button routing to relevant URI - /// - /// documentation URL to open on button click - /// true if button clicked, false otherwise - public static bool RenderDocumentationButton(string docURL, float width = DocLinkWidth) - { - if (!string.IsNullOrEmpty(docURL)) - { - var buttonContent = new GUIContent() - { - image = HelpIcon, - text = " Documentation", - tooltip = docURL, - }; - - // The documentation button should always be enabled. - using (new GUIEnabledWrapper()) - { - if (GUILayout.Button(buttonContent, EditorStyles.miniButton, GUILayout.MaxWidth(width))) - { - Application.OpenURL(docURL); - return true; - } - } - } - - return false; - } - - /// - /// Render a documentation header with button if Object contains HelpURLAttribute - /// - /// Type to test for HelpURLAttribute - /// true if object drawn and button clicked, false otherwise - public static bool RenderHelpURL(Type targetType) - { - bool result = false; - - if (targetType != null) - { - HelpURLAttribute helpURL = targetType.GetCustomAttribute(); - if (helpURL != null) - { - result = RenderDocumentationSection(helpURL.URL); - } - } - - return result; - } - - /// - /// Render a documentation header with button for given url value - /// - /// Url to open if button is clicked - /// true if object drawn and button clicked, false otherwise - public static bool RenderDocumentationSection(string url) - { - bool result = false; - if (!string.IsNullOrEmpty(url)) - { - using (new EditorGUILayout.HorizontalScope()) - { - GUILayout.FlexibleSpace(); - result = RenderDocumentationButton(url); - } - } - - return result; - } - - /// - /// A button that is as wide as the label - /// - public static bool FlexButton(GUIContent label, int index, ListButtonEvent callback, SerializedProperty prop = null) - { - if (FlexButton(label)) - { - callback(index, prop); - return true; - } - - return false; - } - - /// - /// A button that is as wide as the label - /// - /// true if button clicked, false otherwise - public static bool FlexButton(GUIContent label, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null) - { - if (FlexButton(label)) - { - callback(indexArr, prop); - return true; - } - - return false; - } - - /// - /// A button that is as wide as the label - /// - /// content for button - /// true if button clicked, false otherwise - public static bool FlexButton(GUIContent label) - { - GUIStyle buttonStyle = new GUIStyle(GUI.skin.button); - float buttonWidth = GUI.skin.button.CalcSize(label).x; - - using (new EditorGUILayout.HorizontalScope()) - { - GUILayout.FlexibleSpace(); - - if (GUILayout.Button(label, buttonStyle, GUILayout.Width(buttonWidth))) - { - return true; - } - } - - return false; - } - - /// - /// A button that is as wide as the available space - /// - public static bool FullWidthButton(GUIContent label, float padding, int index, ListButtonEvent callback, SerializedProperty prop = null) - { - GUIStyle addStyle = new GUIStyle(GUI.skin.button); - addStyle.fixedHeight = 25; - float addButtonWidth = GUI.skin.button.CalcSize(label).x * padding; - bool triggered = false; - - using (new EditorGUILayout.HorizontalScope()) - { - GUILayout.FlexibleSpace(); - - if (GUILayout.Button(label, addStyle, GUILayout.Width(addButtonWidth))) - { - callback(index, prop); - triggered = true; - } - - GUILayout.FlexibleSpace(); - } - - return triggered; - } - - /// - /// A button that is as wide as the available space - /// - public static bool FullWidthButton(GUIContent label, float padding, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null) - { - GUIStyle addStyle = new GUIStyle(GUI.skin.button); - addStyle.fixedHeight = 25; - float addButtonWidth = GUI.skin.button.CalcSize(label).x * padding; - bool triggered = false; - - using (new EditorGUILayout.HorizontalScope()) - { - GUILayout.FlexibleSpace(); - - if (GUILayout.Button(label, addStyle, GUILayout.Width(addButtonWidth))) - { - callback(indexArr, prop); - triggered = true; - } - - GUILayout.FlexibleSpace(); - } - - return triggered; - } - - /// - /// A small button, good for a single icon like + or - with single index callback events - /// - /// content to place in the button - /// true if button selected, false otherwise - public static bool SmallButton(GUIContent label, int index, ListButtonEvent callback, SerializedProperty prop = null) - { - if (SmallButton(label)) - { - callback(index, prop); - return true; - } - - return false; - } - - /// - /// A small button, good for a single icon like + or - with multi-index callback events - /// - /// content to place in the button - /// true if button selected, false otherwise - public static bool SmallButton(GUIContent label, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null) - { - if (SmallButton(label)) - { - callback(indexArr, prop); - return true; - } - - return false; - } - - /// - /// A small button, good for a single icon like + or - - /// - /// content to place in the button - /// true if button selected, false otherwise - public static bool SmallButton(GUIContent label) - { - GUIStyle smallButton = new GUIStyle(EditorStyles.miniButton); - float smallButtonWidth = GUI.skin.button.CalcSize(label).x; - - if (GUILayout.Button(label, smallButton, GUILayout.Width(smallButtonWidth))) - { - return true; - } - - return false; - } - - /// - /// Large title format - /// - public static void DrawTitle(string title) - { - GUIStyle labelStyle = LableStyle(TitleFontSize, ColorTint50); - EditorGUILayout.LabelField(new GUIContent(title), labelStyle); - GUILayout.Space(TitleFontSize * 0.5f); - } - - /// - /// Medium title format - /// - /// string content to render - public static void DrawHeader(string header) - { - GUIStyle labelStyle = LableStyle(HeaderFontSize, ColorTint10); - EditorGUILayout.LabelField(new GUIContent(header), labelStyle); - } - - /// - /// Draw a basic label - /// - public static void DrawLabel(string title, int size, Color color) - { - GUIStyle labelStyle = LableStyle(size, color); - EditorGUILayout.LabelField(new GUIContent(title), labelStyle); - } - - /// - /// draw a label with a yellow coloring - /// - public static void DrawWarning(string warning) - { - Color prevColor = GUI.color; - - GUI.color = MixedRealityInspectorUtility.WarningColor; - EditorGUILayout.BeginVertical(EditorStyles.textArea); - EditorGUILayout.LabelField(warning, EditorStyles.wordWrappedMiniLabel); - EditorGUILayout.EndVertical(); - - GUI.color = prevColor; - } - - /// - /// draw a notice area, normal coloring - /// - public static void DrawNotice(string notice) - { - Color prevColor = GUI.color; - - GUI.color = ColorTint100; - using (new EditorGUILayout.VerticalScope(EditorStyles.textArea)) - { - EditorGUILayout.LabelField(notice, EditorStyles.wordWrappedMiniLabel); - } - - GUI.color = prevColor; - } - - /// - /// draw a notice with green coloring - /// - public static void DrawSuccess(string notice) - { - Color prevColor = GUI.color; - - GUI.color = MixedRealityInspectorUtility.SuccessColor; - EditorGUILayout.BeginVertical(EditorStyles.textArea); - EditorGUILayout.LabelField(notice, EditorStyles.wordWrappedMiniLabel); - EditorGUILayout.EndVertical(); - - GUI.color = prevColor; - } - - /// - /// draw a notice with red coloring - /// - public static void DrawError(string error) - { - Color prevColor = GUI.color; - - GUI.color = MixedRealityInspectorUtility.ErrorColor; - EditorGUILayout.BeginVertical(EditorStyles.textArea); - EditorGUILayout.LabelField(error, EditorStyles.wordWrappedMiniLabel); - EditorGUILayout.EndVertical(); - - GUI.color = prevColor; - } - - /// - /// Create a line across the negative space - /// - public static void DrawDivider() - { - EditorGUILayout.LabelField(string.Empty, GUI.skin.horizontalSlider); - } - - /// - /// Draws a section start (initiated by the Header attribute) - /// - public static bool DrawSectionFoldout(string headerName, bool open = true, GUIStyle style = null) - { - if (style == null) - { - style = EditorStyles.foldout; - } - - using (new EditorGUI.IndentLevelScope()) - { - return EditorGUILayout.Foldout(open, headerName, true, style); - } - } - /// - /// Draws a section start with header name and save open/close state to given preference key in SessionState - /// - public static bool DrawSectionFoldoutWithKey(string headerName, string preferenceKey = null, GUIStyle style = null, bool defaultOpen = true) - { - bool showPref = SessionState.GetBool(preferenceKey, defaultOpen); - bool show = DrawSectionFoldout(headerName, showPref, style); - if (show != showPref) - { - SessionState.SetBool(preferenceKey, show); - } - - return show; - } - - /// - /// Draws a popup UI with PropertyField type features. - /// Displays prefab pending updates - /// - /// serialized property corresponding to Enum - /// label for property - /// Current enum value for property - /// New enum value after draw - public static Enum DrawEnumSerializedProperty(SerializedProperty prop, GUIContent label, Enum propValue) - { - return DrawEnumSerializedProperty(EditorGUILayout.GetControlRect(), prop, label, propValue); - } - - /// - /// Draws a popup UI with PropertyField type features. - /// Displays prefab pending updates - /// - /// position to render the serialized property - /// serialized property corresponding to Enum - /// label for property - /// Current enum value for property - /// New enum value after draw - public static Enum DrawEnumSerializedProperty(Rect position, SerializedProperty prop, GUIContent label, Enum propValue) - { - Enum result = propValue; - EditorGUI.BeginProperty(position, label, prop); - { - result = EditorGUI.EnumPopup(position, label, propValue); - prop.enumValueIndex = Convert.ToInt32(result); - } - EditorGUI.EndProperty(); - - return result; - } - - /// - /// adjust list settings as things change - /// - public static List AdjustListSettings(List listSettings, int count) - { - if (listSettings == null) - { - listSettings = new List(); - } - - int diff = count - listSettings.Count; - if (diff > 0) - { - for (int i = 0; i < diff; i++) - { - listSettings.Add(new ListSettings() { Show = false, Scroll = new Vector2() }); - } - } - else if (diff < 0) - { - int removeCnt = 0; - for (int i = listSettings.Count - 1; i > -1; i--) - { - if (removeCnt > diff) - { - listSettings.RemoveAt(i); - removeCnt--; - } - } - } - - return listSettings; - } - - /// - /// Get an array of strings from a serialized list of strings, pop-up field helper - /// - public static string[] GetOptions(SerializedProperty options) - { - List list = new List(); - for (int i = 0; i < options.arraySize; i++) - { - list.Add(options.GetArrayElementAtIndex(i).stringValue); - } - - return list.ToArray(); - } - - /// - /// Get the index of a serialized array item based on its name, pop-up field helper - /// - public static int GetOptionsIndex(SerializedProperty options, string selection) - { - for (int i = 0; i < options.arraySize; i++) - { - if (options.GetArrayElementAtIndex(i).stringValue == selection) - { - return i; - } - } - - return 0; - } - - /// - /// Draws the contents of a scriptable inline inside a foldout. Depending on if there's an actual scriptable - /// linked, the values will be greyed out or editable in case the scriptable is created inside the serialized object. - /// - static public bool DrawScriptableFoldout(SerializedProperty scriptable, string description, bool isExpanded) where T : ScriptableObject - { - isExpanded = EditorGUILayout.Foldout(isExpanded, description, true, MixedRealityStylesUtility.BoldFoldoutStyle); - if (isExpanded) - { - using (new EditorGUI.IndentLevelScope()) - { - if (scriptable.objectReferenceValue == null) - { - // If there's no scriptable linked we're creating a local instance that allows to store a - // local version of the scriptable in the serialized object owning the scriptable property. - scriptable.objectReferenceValue = ScriptableObject.CreateInstance(); - } - - // We have currently 5 different states to display to the user: - // 1. the scriptable is local to the object instance - // 2. the scriptable is a linked nested scriptable inside of the currently displayed prefab - // 3. the scriptable is a linked nested scriptable inside of another prefab - // 4. the scriptable is a shared standalone asset - // 5. the scriptable slot is empty but inside of a prefab asset which needs special handling as - // prefabs can only display linked or nested scriptables. - - // Depending on the type of link we show the user the scriptable configuration either: - // case 1 &2: editable inlined - // case 3 & 4: greyed out readonly - // case 5: only show the link - - // case 5 -> can't create and/or store the local scriptable above - show link - bool isStoredAsset = (scriptable.objectReferenceValue == null) ? false : AssetDatabase.Contains(scriptable.objectReferenceValue); - bool isEmptyInStagedPrefab = !isStoredAsset && ((Component)scriptable.serializedObject.targetObject).gameObject.scene.path == ""; - if (scriptable.objectReferenceValue == null || isEmptyInStagedPrefab) - { - EditorGUILayout.HelpBox("No scriptable " + scriptable.displayName + " linked to this prefab. Prefabs can't store " + - "local versions of scriptables and need to be linked to a scriptable asset.", MessageType.Warning); - EditorGUILayout.PropertyField(scriptable, new GUIContent(scriptable.displayName + " (Empty): ")); - } - else - { - bool isNestedInCurrentPrefab = false; - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null) - { - var instancePath = AssetDatabase.GetAssetPath(scriptable.objectReferenceValue); - isNestedInCurrentPrefab = (instancePath != "" && instancePath == prefabStage.prefabAssetPath); - } - - - if (isStoredAsset && !isNestedInCurrentPrefab) - { - // case 3 & 4 - greyed out drawer - bool isMainAsset = AssetDatabase.IsMainAsset(scriptable.objectReferenceValue); - var sharedAssetPath = AssetDatabase.GetAssetPath(scriptable.objectReferenceValue); - if (isMainAsset) - { - EditorGUILayout.HelpBox("Editing a shared " + scriptable.displayName + ", located at " + sharedAssetPath, MessageType.Warning); - } - else - { - EditorGUILayout.HelpBox("Editing a nested " + scriptable.displayName + ", located inside of " + sharedAssetPath, MessageType.Warning); - } - EditorGUILayout.PropertyField(scriptable, new GUIContent(scriptable.displayName + " (Shared asset): ")); - - // In case there's a shared scriptable linked we're disabling the inlined scriptable properties - // (this will render them grayed out) so users won't accidentally modify the shared scriptable. - GUI.enabled = false; - DrawScriptableSubEditor(scriptable); - GUI.enabled = true; - } - else - { - // case 1 & 2 - inline editable drawer - if (isNestedInCurrentPrefab) - { - EditorGUILayout.HelpBox("Editing a nested version of " + scriptable.displayName + ".", MessageType.Info); - } - else - { - EditorGUILayout.HelpBox("Editing a local version of " + scriptable.displayName + ".", MessageType.Info); - } - EditorGUILayout.PropertyField(scriptable, new GUIContent(scriptable.displayName + " (local): ")); - DrawScriptableSubEditor(scriptable); - } - - - } - } - } - - return isExpanded; - } - - /// - /// Draws a foldout enlisting all components (or derived types) of the given type attached to the passed gameobject. - /// Adds a button for adding any of the component (or dervied types) and a follow button to highlight existing attached components. - /// - static public bool DrawComponentTypeFoldout(GameObject gameObject, bool isExpanded, string typeDescription) where T : MonoBehaviour - { - isExpanded = EditorGUILayout.Foldout(isExpanded, typeDescription + "s", true); - - if (isExpanded) - { - if (EditorGUILayout.DropdownButton(new GUIContent("Add " + typeDescription), FocusType.Keyboard)) - { - // create the menu and add items to it - GenericMenu menu = new GenericMenu(); - - var type = typeof(T); - var types = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(s => s.GetLoadableTypes()) - .Where(p => type.IsAssignableFrom(p) && !p.IsAbstract); - - foreach (var derivedType in types) - { - menu.AddItem(new GUIContent(derivedType.Name), false, t => gameObject.AddComponent((Type)t), derivedType); - } - - menu.ShowAsContext(); - } - - var constraints = gameObject.GetComponents(); - - foreach (var constraint in constraints) - { - EditorGUILayout.BeginHorizontal(); - string constraintName = constraint.GetType().Name; - EditorGUILayout.LabelField(constraintName); - if (GUILayout.Button("Go to component")) - { - Highlighter.Highlight("Inspector", $"{ObjectNames.NicifyVariableName(constraintName)} (Script)"); - EditorGUIUtility.ExitGUI(); - } - EditorGUILayout.EndHorizontal(); - } - } - - return isExpanded; - } - - - static private void DrawScriptableSubEditor(SerializedProperty scriptable) - { - if (scriptable.objectReferenceValue != null) - { - UnityEditor.Editor configEditor = UnityEditor.Editor.CreateEditor(scriptable.objectReferenceValue); - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.Space(); - configEditor.OnInspectorGUI(); - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs.meta deleted file mode 100644 index 0f5184f77..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/InspectorUIUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8ef3c8df76e6d8b44ad3a0fb3c3a7cc3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines.meta deleted file mode 100644 index 11f4b402e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7a6f47d18e7f4c8b94e9c7ead01b7776 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders.meta deleted file mode 100644 index 85920babd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3d4dde48e1e6465099586c332deca111 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs deleted file mode 100644 index 00441ded7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs +++ /dev/null @@ -1,364 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using UnityEditor; -using UnityEditorInternal; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(BaseMixedRealityLineDataProvider))] - public class BaseLineDataProviderInspector : UnityEditor.Editor - { - private const string DrawLinePointsKey = "MRTK_Line_Inspector_DrawLinePoints"; - private const string BasicSettingsFoldoutKey = "MRTK_Line_Inspector_BasicSettings"; - private const string DrawLineRotationsKey = "MRTK_Line_Inspector_DrawLineRotations"; - private const string EditorSettingsFoldoutKey = "MRTK_Line_Inspector_EditorSettings"; - private const string RotationArrowLengthKey = "MRTK_Line_Inspector_RotationArrowLength"; - private const string RotationSettingsFoldoutKey = "MRTK_Line_Inspector_RotationSettings"; - private const string ManualUpVectorLengthKey = "MRTK_Line_Inspector_ManualUpVectorLength"; - private const string LinePreviewResolutionKey = "MRTK_Line_Inspector_LinePreviewResolution"; - private const string DistortionSettingsFoldoutKey = "MRTK_Line_Inspector_DistortionSettings"; - private const string DrawLineManualUpVectorsKey = "MRTK_Line_Inspector_DrawLineManualUpVectors"; - - private const float ManualUpVectorHandleSizeModifier = 0.1f; - - private static readonly GUIContent BasicSettingsContent = new GUIContent("Basic Settings"); - private static readonly GUIContent EditorSettingsContent = new GUIContent("Editor Settings"); - private static readonly GUIContent ManualUpVectorContent = new GUIContent("Manual Up Vectors"); - private static readonly GUIContent RotationSettingsContent = new GUIContent("Rotation Settings"); - private static readonly GUIContent DistortionSettingsContent = new GUIContent("Distortion Settings"); - - private static bool basicSettingsFoldout = true; - private static bool editorSettingsFoldout = false; - private static bool rotationSettingsFoldout = true; - private static bool distortionSettingsFoldout = true; - - protected static int LinePreviewResolution = 16; - - protected static bool DrawLinePoints = false; - protected static bool DrawLineRotations = false; - protected static bool DrawLineManualUpVectors = false; - - protected static float ManualUpVectorLength = 1f; - protected static float RotationArrowLength = 0.5f; - - private SerializedProperty transformMode; - private SerializedProperty customLineTransform; - private SerializedProperty lineStartClamp; - private SerializedProperty lineEndClamp; - private SerializedProperty loops; - private SerializedProperty rotationType; - private SerializedProperty flipUpVector; - private SerializedProperty originOffset; - private SerializedProperty manualUpVectorBlend; - private SerializedProperty manualUpVectors; - private SerializedProperty velocitySearchRange; - private SerializedProperty distorters; - private SerializedProperty distortionMode; - private SerializedProperty distortionStrength; - private SerializedProperty distortionEnabled; - private SerializedProperty uniformDistortionStrength; - - private ReorderableList manualUpVectorList; - - protected BaseMixedRealityLineDataProvider LineData; - protected bool RenderLinePreview = true; - - protected virtual void OnEnable() - { - basicSettingsFoldout = SessionState.GetBool(BasicSettingsFoldoutKey, basicSettingsFoldout); - editorSettingsFoldout = SessionState.GetBool(EditorSettingsFoldoutKey, editorSettingsFoldout); - rotationSettingsFoldout = SessionState.GetBool(RotationSettingsFoldoutKey, rotationSettingsFoldout); - distortionSettingsFoldout = SessionState.GetBool(DistortionSettingsFoldoutKey, distortionSettingsFoldout); - - LinePreviewResolution = SessionState.GetInt(LinePreviewResolutionKey, LinePreviewResolution); - DrawLinePoints = SessionState.GetBool(DrawLinePointsKey, DrawLinePoints); - DrawLineRotations = SessionState.GetBool(DrawLineRotationsKey, DrawLineRotations); - RotationArrowLength = SessionState.GetFloat(RotationArrowLengthKey, RotationArrowLength); - DrawLineManualUpVectors = SessionState.GetBool(DrawLineManualUpVectorsKey, DrawLineManualUpVectors); - ManualUpVectorLength = SessionState.GetFloat(ManualUpVectorLengthKey, ManualUpVectorLength); - - LineData = (BaseMixedRealityLineDataProvider)target; - transformMode = serializedObject.FindProperty("transformMode"); - customLineTransform = serializedObject.FindProperty("customLineTransform"); - lineStartClamp = serializedObject.FindProperty("lineStartClamp"); - lineEndClamp = serializedObject.FindProperty("lineEndClamp"); - loops = serializedObject.FindProperty("loops"); - rotationType = serializedObject.FindProperty("rotationMode"); - flipUpVector = serializedObject.FindProperty("flipUpVector"); - originOffset = serializedObject.FindProperty("originOffset"); - manualUpVectorBlend = serializedObject.FindProperty("manualUpVectorBlend"); - manualUpVectors = serializedObject.FindProperty("manualUpVectors"); - velocitySearchRange = serializedObject.FindProperty("velocitySearchRange"); - distorters = serializedObject.FindProperty("distorters"); - distortionMode = serializedObject.FindProperty("distortionMode"); - distortionStrength = serializedObject.FindProperty("distortionStrength"); - distortionEnabled = serializedObject.FindProperty("distortionEnabled"); - uniformDistortionStrength = serializedObject.FindProperty("uniformDistortionStrength"); - - manualUpVectorList = new ReorderableList(serializedObject, manualUpVectors, false, true, true, true); - manualUpVectorList.drawElementCallback += DrawManualUpVectorListElement; - manualUpVectorList.drawHeaderCallback += DrawManualUpVectorHeader; - - RenderLinePreview = LineData.gameObject.GetComponent() == null; - - var newDistorters = LineData.gameObject.GetComponents(); - distorters.arraySize = newDistorters.Length; - - for (int i = 0; i < newDistorters.Length; i++) - { - var distorterProperty = distorters.GetArrayElementAtIndex(i); - distorterProperty.objectReferenceValue = newDistorters[i]; - } - - serializedObject.ApplyModifiedProperties(); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - editorSettingsFoldout = EditorGUILayout.Foldout(editorSettingsFoldout, EditorSettingsContent, true); - SessionState.SetBool(EditorSettingsFoldoutKey, editorSettingsFoldout); - - if (editorSettingsFoldout) - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUI.BeginChangeCheck(); - - using (new EditorGUI.DisabledGroupScope(!RenderLinePreview)) - { - EditorGUI.BeginChangeCheck(); - - LinePreviewResolution = EditorGUILayout.IntSlider("Preview Resolution", LinePreviewResolution, 2, 128); - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetInt(LinePreviewResolutionKey, LinePreviewResolution); - } - - EditorGUI.BeginChangeCheck(); - DrawLinePoints = EditorGUILayout.Toggle("Draw Line Points", DrawLinePoints); - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetBool(DrawLinePointsKey, DrawLinePoints); - } - - } - - EditorGUI.BeginChangeCheck(); - DrawLineRotations = EditorGUILayout.Toggle("Draw Line Rotations", DrawLineRotations); - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetBool(DrawLineRotationsKey, DrawLineRotations); - } - - if (DrawLineRotations) - { - EditorGUI.BeginChangeCheck(); - RotationArrowLength = EditorGUILayout.Slider("Rotation Arrow Length", RotationArrowLength, 0.01f, 5f); - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetFloat(RotationArrowLengthKey, RotationArrowLength); - } - } - - EditorGUI.BeginChangeCheck(); - DrawLineManualUpVectors = EditorGUILayout.Toggle("Draw Manual Up Vectors", DrawLineManualUpVectors); - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetBool(DrawLineManualUpVectorsKey, DrawLineManualUpVectors); - } - - if (DrawLineManualUpVectors) - { - EditorGUI.BeginChangeCheck(); - ManualUpVectorLength = EditorGUILayout.Slider("Manual Up Vector Length", ManualUpVectorLength, 1f, 10f); - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetFloat(ManualUpVectorLengthKey, ManualUpVectorLength); - } - } - - if (EditorGUI.EndChangeCheck()) - { - SceneView.RepaintAll(); - } - } - } - - basicSettingsFoldout = EditorGUILayout.Foldout(basicSettingsFoldout, BasicSettingsContent, true); - SessionState.SetBool(BasicSettingsFoldoutKey, basicSettingsFoldout); - - if (basicSettingsFoldout) - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(transformMode); - EditorGUILayout.PropertyField(customLineTransform); - EditorGUILayout.PropertyField(lineStartClamp); - EditorGUILayout.PropertyField(lineEndClamp); - EditorGUILayout.PropertyField(loops); - } - } - - rotationSettingsFoldout = EditorGUILayout.Foldout(rotationSettingsFoldout, RotationSettingsContent, true); - SessionState.SetBool(RotationSettingsFoldoutKey, rotationSettingsFoldout); - - if (rotationSettingsFoldout) - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(rotationType); - EditorGUILayout.PropertyField(flipUpVector); - EditorGUILayout.PropertyField(originOffset); - EditorGUILayout.PropertyField(velocitySearchRange); - - if (DrawLineManualUpVectors) - { - manualUpVectorList.DoLayoutList(); - - if (GUILayout.Button("Normalize Up Vectors")) - { - - for (int i = 0; i < manualUpVectors.arraySize; i++) - { - var manualUpVectorProperty = manualUpVectors.GetArrayElementAtIndex(i); - - Vector3 upVector = manualUpVectorProperty.vector3Value; - - if (upVector == Vector3.zero) - { - upVector = Vector3.up; - } - - manualUpVectorProperty.vector3Value = upVector.normalized; - } - } - - EditorGUILayout.PropertyField(manualUpVectorBlend); - } - } - } - - distortionSettingsFoldout = EditorGUILayout.Foldout(distortionSettingsFoldout, DistortionSettingsContent, true); - SessionState.SetBool(DistortionSettingsFoldoutKey, distortionSettingsFoldout); - - if (distortionSettingsFoldout) - { - if (distorters.arraySize <= 0) - { - EditorGUILayout.HelpBox("No distorters attached to this line.\nTry adding a distortion component.", MessageType.Info); - } - - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(distortionEnabled); - EditorGUILayout.PropertyField(distortionMode); - EditorGUILayout.PropertyField(distortionStrength); - EditorGUILayout.PropertyField(uniformDistortionStrength); - } - } - - serializedObject.ApplyModifiedProperties(); - } - - protected virtual void OnSceneGUI() - { - if (DrawLineManualUpVectors) - { - if (LineData.ManualUpVectors == null || LineData.ManualUpVectors.Length < 2) - { - LineData.ManualUpVectors = new[] { Vector3.up, Vector3.up }; - } - - for (int i = 0; i < LineData.ManualUpVectors.Length; i++) - { - float normalizedLength = (1f / (LineData.ManualUpVectors.Length - 1)) * i; - var position = LineData.GetPoint(normalizedLength); - float handleSize = HandleUtility.GetHandleSize(position); - LineData.ManualUpVectors[i] = MixedRealityInspectorUtility.VectorHandle(LineData, position, LineData.ManualUpVectors[i], false, true, ManualUpVectorLength * handleSize, handleSize * ManualUpVectorHandleSizeModifier); - } - } - - if (Application.isPlaying) - { - Handles.EndGUI(); - return; - } - - Vector3 firstPosition = LineData.FirstPoint; - Vector3 lastPosition = firstPosition; - - for (int i = 1; i < LinePreviewResolution; i++) - { - Vector3 currentPosition; - Quaternion rotation; - - if (i == LinePreviewResolution - 1) - { - currentPosition = LineData.LastPoint; - rotation = LineData.GetRotation(LineData.PointCount - 1); - } - else - { - float normalizedLength = (1f / (LinePreviewResolution - 1)) * i; - currentPosition = LineData.GetPoint(normalizedLength); - rotation = LineData.GetRotation(normalizedLength); - } - - if (RenderLinePreview) - { - Handles.color = Color.magenta; - Handles.DrawLine(lastPosition, currentPosition); - } - - if (DrawLineRotations) - { - float arrowSize = HandleUtility.GetHandleSize(currentPosition) * RotationArrowLength; - Handles.color = MixedRealityInspectorUtility.LineVelocityColor; - Handles.color = Color.Lerp(MixedRealityInspectorUtility.LineVelocityColor, Handles.zAxisColor, 0.75f); - Handles.ArrowHandleCap(0, currentPosition, Quaternion.LookRotation(rotation * Vector3.forward), arrowSize, EventType.Repaint); - Handles.color = Color.Lerp(MixedRealityInspectorUtility.LineVelocityColor, Handles.xAxisColor, 0.75f); - Handles.ArrowHandleCap(0, currentPosition, Quaternion.LookRotation(rotation * Vector3.right), arrowSize, EventType.Repaint); - Handles.color = Color.Lerp(MixedRealityInspectorUtility.LineVelocityColor, Handles.yAxisColor, 0.75f); - Handles.ArrowHandleCap(0, currentPosition, Quaternion.LookRotation(rotation * Vector3.up), arrowSize, EventType.Repaint); - } - - lastPosition = currentPosition; - } - - if (LineData.Loops && RenderLinePreview) - { - Handles.color = Color.magenta; - Handles.DrawLine(lastPosition, firstPosition); - } - } - - private static void DrawManualUpVectorHeader(Rect rect) - { - EditorGUI.LabelField(rect, ManualUpVectorContent); - } - - private void DrawManualUpVectorListElement(Rect rect, int index, bool isActive, bool isFocused) - { - EditorGUI.BeginChangeCheck(); - - var property = manualUpVectors.GetArrayElementAtIndex(index); - property.vector3Value = EditorGUI.Vector3Field(rect, GUIContent.none, property.vector3Value); - - if (EditorGUI.EndChangeCheck()) - { - EditorUtility.SetDirty(target); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs.meta deleted file mode 100644 index 6bf74e6d6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BaseLineDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5c85f43ce5b64aefaf6e4ed4d711b7e2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs deleted file mode 100644 index c35ab07ee..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(BezierDataProvider))] - public class BezierDataProviderInspector : BaseLineDataProviderInspector - { - private const float HandleSizeModifier = 0.04f; - private const float PickSizeModifier = 0.06f; - - private SerializedProperty controlPoints; - private SerializedProperty useLocalTangentPoints; - - private BezierDataProvider bezierData; - - private int selectedHandleIndex = -1; - - protected override void OnEnable() - { - base.OnEnable(); - - controlPoints = serializedObject.FindProperty("controlPoints"); - useLocalTangentPoints = serializedObject.FindProperty("useLocalTangentPoints"); - - bezierData = (BezierDataProvider)target; - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - // We always draw line points for bezier. - DrawLinePoints = true; - - EditorGUILayout.PropertyField(controlPoints, true); - EditorGUILayout.PropertyField(useLocalTangentPoints); - - serializedObject.ApplyModifiedProperties(); - } - - protected override void OnSceneGUI() - { - base.OnSceneGUI(); - - for (int i = 0; i < 4; i++) - { - serializedObject.Update(); - - bool isTangentHandle = i % 3 != 0; - bool isLastPoint = i == 3; - - var controlPointPosition = LineData.GetPoint(i); - var controlPointProperty = controlPoints.FindPropertyRelative("point" + (i + 1)); - - // Draw our tangent lines - Handles.color = Color.gray; - if (i == 0) - { - Handles.DrawLine(LineData.GetPoint(0), LineData.GetPoint(1)); - } - else if (!isTangentHandle) - { - Handles.DrawLine(LineData.GetPoint(i), LineData.GetPoint(i - 1)); - - if (!isLastPoint) - { - Handles.DrawLine(LineData.GetPoint(i), LineData.GetPoint(i + 1)); - } - } - - Handles.color = isTangentHandle ? Color.white : Color.green; - float handleSize = HandleUtility.GetHandleSize(controlPointPosition); - - if (Handles.Button(controlPointPosition, Quaternion.identity, handleSize * HandleSizeModifier, handleSize * PickSizeModifier, Handles.DotHandleCap)) - { - selectedHandleIndex = i; - } - - // Draw our handles - if (Tools.current == Tool.Move && selectedHandleIndex == i) - { - EditorGUI.BeginChangeCheck(); - - var newTargetPosition = Handles.PositionHandle(controlPointPosition, Quaternion.identity); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(LineData, "Change Bezier Point Position"); - LineData.SetPoint(i, newTargetPosition); - } - } - - serializedObject.ApplyModifiedProperties(); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs.meta deleted file mode 100644 index a3096ee52..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/BezierDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1ab3f0a2e7de5d0479870c0ff7ebaed8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs deleted file mode 100644 index 964fa7d08..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(EllipseLineDataProvider))] - public class EllipseLineDataProviderInspector : BaseLineDataProviderInspector - { - private SerializedProperty resolution; - private SerializedProperty radius; - private Vector2 tempRadius; - - protected override void OnEnable() - { - base.OnEnable(); - - // Bump up the resolution, in case it's too low - if (LinePreviewResolution < 32) - { - LinePreviewResolution = 32; - } - - resolution = serializedObject.FindProperty("resolution"); - radius = serializedObject.FindProperty("radius"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - serializedObject.Update(); - - EditorGUILayout.LabelField("Ellipse Settings"); - - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(resolution); - - var prevRadius = radius.vector2Value; - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(radius); - - if (EditorGUI.EndChangeCheck()) - { - bool update = false; - tempRadius = radius.vector2Value; - - if (radius.vector2Value.x <= 0) - { - tempRadius.x = prevRadius.x; - update = true; - } - - if (radius.vector2Value.y <= 0) - { - tempRadius.y = prevRadius.x; - update = true; - } - - if (update) - { - radius.vector2Value = tempRadius; - } - } - - EditorGUI.indentLevel--; - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs.meta deleted file mode 100644 index 3c06c54d1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/EllipseLineDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 31e6c56f097e48f98b1d37e80a316664 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs deleted file mode 100644 index ea35a1440..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(ParabolaPhysicalLineDataProvider))] - public class ParabolaPhysicalLineDataProviderInspector : BaseLineDataProviderInspector - { - private SerializedProperty gravity; - private SerializedProperty velocity; - private SerializedProperty direction; - private SerializedProperty distanceMultiplier; - private SerializedProperty useCustomGravity; - - protected override void OnEnable() - { - base.OnEnable(); - - gravity = serializedObject.FindProperty("gravity"); - velocity = serializedObject.FindProperty("velocity"); - direction = serializedObject.FindProperty("direction"); - distanceMultiplier = serializedObject.FindProperty("distanceMultiplier"); - useCustomGravity = serializedObject.FindProperty("useCustomGravity"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - EditorGUILayout.LabelField("Physical Parabola Line Settings"); - EditorGUI.indentLevel++; - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(velocity); - EditorGUILayout.PropertyField(direction); - EditorGUILayout.PropertyField(distanceMultiplier); - EditorGUILayout.PropertyField(useCustomGravity); - - if (useCustomGravity.boolValue) - { - EditorGUILayout.PropertyField(gravity); - } - - EditorGUI.indentLevel--; - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs.meta deleted file mode 100644 index 630a8a01f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 56a4d3eb8fda41ad95c44edcd6b86c40 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs deleted file mode 100644 index b3697d4ea..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(ParabolaConstrainedLineDataProvider))] - public class ParabolicConstrainedLineDataProviderInspector : BaseLineDataProviderInspector - { - private SerializedProperty height; - private SerializedProperty endPoint; - private SerializedProperty upDirection; - - protected override void OnEnable() - { - base.OnEnable(); - - height = serializedObject.FindProperty("height"); - endPoint = serializedObject.FindProperty("endPoint"); - upDirection = serializedObject.FindProperty("upDirection"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - EditorGUILayout.LabelField("Constrained Parabola Line Settings"); - EditorGUI.indentLevel++; - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(height); - EditorGUILayout.PropertyField(upDirection); - EditorGUILayout.PropertyField(endPoint); - - EditorGUI.indentLevel--; - serializedObject.ApplyModifiedProperties(); - } - - protected override void OnSceneGUI() - { - base.OnSceneGUI(); - - serializedObject.Update(); - - var rotation = endPoint.FindPropertyRelative("rotation"); - - if (Tools.current == Tool.Move) - { - EditorGUI.BeginChangeCheck(); - Vector3 newTargetPosition = Handles.PositionHandle(LineData.GetPoint(1), Quaternion.identity); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(LineData, "Change Parabola Point Position"); - LineData.SetPoint(1, newTargetPosition); - } - } - else if (Tools.current == Tool.Rotate) - { - EditorGUI.BeginChangeCheck(); - Quaternion newTargetRotation = Handles.RotationHandle(rotation.quaternionValue, LineData.GetPoint(1)); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(LineData, "Change Parabola Point Rotation"); - rotation.quaternionValue = newTargetRotation; - } - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs.meta deleted file mode 100644 index d1cf8f321..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/ParabolicConstrainedLineDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 10bffd5c5cd349058eb345fe7a128676 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs deleted file mode 100644 index 15c16c518..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(RectangleLineDataProvider))] - public class RectangleLineDataProviderInspector : BaseLineDataProviderInspector - { - private SerializedProperty height; - private SerializedProperty width; - private SerializedProperty zOffset; - - protected override void OnEnable() - { - base.OnEnable(); - - height = serializedObject.FindProperty("height"); - width = serializedObject.FindProperty("width"); - zOffset = serializedObject.FindProperty("zOffset"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - // Rectangles only support 4 points, so our preview will reflect that. - LinePreviewResolution = 4; - - // Rectangle doesn't support line rotations - DrawLineRotations = false; - - serializedObject.Update(); - - EditorGUILayout.LabelField("Rectangle Settings"); - - EditorGUI.indentLevel++; - - var prevHeight = height.floatValue; - var prevWidth = width.floatValue; - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(height); - EditorGUILayout.PropertyField(width); - EditorGUILayout.PropertyField(zOffset); - - if (EditorGUI.EndChangeCheck()) - { - if (height.floatValue <= 0) - { - height.floatValue = prevHeight; - } - - if (width.floatValue <= 0) - { - width.floatValue = prevWidth; - } - } - - EditorGUI.indentLevel--; - - serializedObject.ApplyModifiedProperties(); - } - - protected override void OnSceneGUI() - { - if (Application.isPlaying || !RenderLinePreview) - { - return; - } - - Vector3 firstPos = LineData.GetPoint(0); - Vector3 lastPos = firstPos; - Handles.color = Color.magenta; - - for (int i = 1; i < LineData.PointCount; i++) - { - Vector3 currentPos = LineData.GetPoint(i); - Handles.DrawLine(lastPos, currentPos); - lastPos = currentPos; - } - - Handles.DrawLine(lastPos, firstPos); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs.meta deleted file mode 100644 index 4df525954..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/RectangleLineDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5b86ecfed91c4d689558d95719942f5d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs deleted file mode 100644 index bfee7bfeb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(SimpleLineDataProvider))] - public class SimpleLineDataProviderInspector : BaseLineDataProviderInspector - { - private SerializedProperty endPoint; - - protected override void OnEnable() - { - base.OnEnable(); - - endPoint = serializedObject.FindProperty("endPoint"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - // We only have two points. - LinePreviewResolution = 2; - - EditorGUILayout.LabelField("Simple Line Settings"); - EditorGUI.indentLevel++; - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(endPoint); - - EditorGUI.indentLevel--; - serializedObject.ApplyModifiedProperties(); - } - - protected override void OnSceneGUI() - { - base.OnSceneGUI(); - - serializedObject.Update(); - - var rotation = endPoint.FindPropertyRelative("rotation"); - - if (Tools.current == Tool.Move) - { - EditorGUI.BeginChangeCheck(); - Vector3 newTargetPosition = Handles.PositionHandle(LineData.GetPoint(1), Quaternion.identity); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(LineData, "Change Simple Point Position"); - LineData.SetPoint(1, newTargetPosition); - } - } - else if (Tools.current == Tool.Rotate) - { - EditorGUI.BeginChangeCheck(); - Quaternion newTargetRotation = Handles.RotationHandle(rotation.quaternionValue, LineData.GetPoint(1)); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(LineData, "Change Simple Point Rotation"); - rotation.quaternionValue = newTargetRotation; - } - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs.meta deleted file mode 100644 index c9b526e59..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SimpleLineDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e4d19e811bb946ba93188adef3183b8c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs deleted file mode 100644 index 4977c7275..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs +++ /dev/null @@ -1,333 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEditor; -using UnityEditorInternal; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(SplineDataProvider))] - public class SplineDataProviderInspector : BaseLineDataProviderInspector - { - private const float OverlappingPointThreshold = 0.015f; - private const float HandleSizeModifier = 0.04f; - private const float PickSizeModifier = 0.06f; - - private static readonly HashSet OverlappingPointIndexes = new HashSet(); - - private static readonly Vector2 ControlPointButtonSize = new Vector2(16, 16); - private static readonly Vector2 LeftControlPointPositionOffset = Vector2.left * 12; - private static readonly Vector2 RightControlPointPositionOffset = Vector2.right * 24; - - private static readonly Vector2 ControlPointButtonHandleOffset = Vector3.up * 24; - - private static readonly GUIContent PositionContent = new GUIContent("Position"); - private static readonly GUIContent RotationContent = new GUIContent("Rotation"); - private static readonly GUIContent AddControlPointContent = new GUIContent("+", "Add a control point"); - private static readonly GUIContent RemoveControlPointContent = new GUIContent("-", "Remove a control point"); - private static readonly GUIContent ControlPointHeaderContent = new GUIContent("Spline Control Points", "The current control points for the spline."); - - private static bool controlPointFoldout = true; - - private SerializedProperty controlPoints; - private SerializedProperty alignAllControlPoints; - - private SplineDataProvider splineData; - private ReorderableList controlPointList; - - private int selectedHandleIndex = -1; - - protected override void OnEnable() - { - base.OnEnable(); - - splineData = (SplineDataProvider)target; - controlPoints = serializedObject.FindProperty("controlPoints"); - alignAllControlPoints = serializedObject.FindProperty("alignAllControlPoints"); - - controlPointList = new ReorderableList(serializedObject, controlPoints, false, false, false, false) - { - elementHeight = EditorGUIUtility.singleLineHeight * 3 - }; - - controlPointList.drawElementCallback += DrawControlPointElement; - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - // We always draw line points for splines. - DrawLinePoints = true; - - EditorGUILayout.LabelField("Spline Settings"); - - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(alignAllControlPoints); - GUILayout.BeginHorizontal(); - - if (GUILayout.Button("Add New Point", GUILayout.Width(48f), GUILayout.ExpandWidth(true))) - { - AddControlPoint(); - } - - GUI.enabled = controlPoints.arraySize > 4; - - if (GUILayout.Button("Remove Last Point", GUILayout.Width(48f), GUILayout.ExpandWidth(true))) - { - RemoveControlPoint(); - } - - GUI.enabled = true; - GUILayout.EndHorizontal(); - - controlPointFoldout = EditorGUILayout.Foldout(controlPointFoldout, ControlPointHeaderContent, true); - - if (controlPointFoldout) - { - // If we found overlapping points, provide an option to auto-separate them - if (OverlappingPointIndexes.Count > 0) - { - EditorGUILayout.HelpBox("We noticed some of your control points have the same position.", MessageType.Warning); - - if (GUILayout.Button("Fix overlapping points")) - { - // Move them slightly out of the way - foreach (int pointIndex in OverlappingPointIndexes) - { - var controlPointProperty = controlPoints.GetArrayElementAtIndex(pointIndex); - var position = controlPointProperty.FindPropertyRelative("position"); - position.vector3Value += Random.onUnitSphere * OverlappingPointThreshold * 2; - } - OverlappingPointIndexes.Clear(); - } - } - - controlPointList.DoLayoutList(); - } - - EditorGUI.indentLevel--; - - serializedObject.ApplyModifiedProperties(); - } - - protected override void OnSceneGUI() - { - base.OnSceneGUI(); - - // We skip the first point as it should always remain at the GameObject's local origin (Pose.ZeroIdentity) - for (int i = 1; i < controlPoints?.arraySize; i++) - { - bool isTangentHandle = i % 3 != 0; - - serializedObject.Update(); - - bool isLastPoint = i == controlPoints.arraySize - 1; - - var controlPointPosition = LineData.GetPoint(i); - var controlPointProperty = controlPoints.GetArrayElementAtIndex(i); - var controlPointRotation = controlPointProperty.FindPropertyRelative("rotation"); - - // Draw our tangent lines - Handles.color = Color.gray; - if (i == 1) - { - Handles.DrawLine(LineData.GetPoint(0), LineData.GetPoint(1)); - } - else if (!isTangentHandle) - { - Handles.DrawLine(LineData.GetPoint(i), LineData.GetPoint(i - 1)); - - if (!isLastPoint) - { - Handles.DrawLine(LineData.GetPoint(i), LineData.GetPoint(i + 1)); - } - } - - Handles.color = isTangentHandle ? Color.white : Color.green; - float handleSize = HandleUtility.GetHandleSize(controlPointPosition); - - if (Handles.Button(controlPointPosition, controlPointRotation.quaternionValue, handleSize * HandleSizeModifier, handleSize * PickSizeModifier, Handles.DotHandleCap)) - { - selectedHandleIndex = i; - } - - // Draw our handles - if (Tools.current == Tool.Move && selectedHandleIndex == i) - { - EditorGUI.BeginChangeCheck(); - - var newTargetPosition = Handles.PositionHandle(controlPointPosition, controlPointRotation.quaternionValue); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(LineData, "Change Spline Point Position"); - LineData.SetPoint(i, newTargetPosition); - } - - if (isLastPoint) - { - DrawSceneControlOptionButtons(controlPointPosition); - } - } - else if (Tools.current == Tool.Rotate && selectedHandleIndex == i) - { - EditorGUI.BeginChangeCheck(); - Quaternion newTargetRotation = Handles.RotationHandle(controlPointRotation.quaternionValue, controlPointPosition); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(LineData, "Change Spline Point Rotation"); - controlPointRotation.quaternionValue = newTargetRotation; - } - } - - serializedObject.ApplyModifiedProperties(); - } - - // Check for overlapping points - OverlappingPointIndexes.Clear(); - - for (int i = 0; i < splineData.ControlPoints.Length; i++) - { - for (int j = 0; j < splineData.ControlPoints.Length; j++) - { - if (i == j) - { - continue; - } - - if (Vector3.Distance(splineData.ControlPoints[i].Position, splineData.ControlPoints[j].Position) < OverlappingPointThreshold) - { - if (i != 0) - { - OverlappingPointIndexes.Add(i); - } - - if (j != 0) - { - OverlappingPointIndexes.Add(j); - } - - break; - } - } - } - } - - private void AddControlPoint() - { - serializedObject.Update(); - - Undo.RecordObject(LineData, "Add Spline Control Point"); - - var newControlPoints = new MixedRealityPose[3]; - Vector3 direction = LineData.GetVelocity(0.99f); - float distance = Mathf.Max(LineData.UnClampedWorldLength * 0.05f, OverlappingPointThreshold * 5); - newControlPoints[0].Position = LineData.LastPoint + (direction * distance); - newControlPoints[1].Position = newControlPoints[0].Position + (direction * distance); - newControlPoints[2].Position = newControlPoints[1].Position + (direction * distance); - - for (int i = 0; i < 3; i++) - { - controlPoints.arraySize = controlPoints.arraySize + 1; - var newControlPointProperty = controlPoints.GetArrayElementAtIndex(controlPoints.arraySize - 1); - newControlPointProperty.FindPropertyRelative("position").vector3Value = newControlPoints[i].Position; - newControlPointProperty.FindPropertyRelative("rotation").quaternionValue = Quaternion.identity; - } - - serializedObject.ApplyModifiedProperties(); - } - - private void RemoveControlPoint() - { - if (controlPoints.arraySize <= 4) { return; } - - serializedObject.Update(); - Undo.RecordObject(LineData, "Remove Spline Control Point"); - controlPoints.DeleteArrayElementAtIndex(controlPoints.arraySize - 1); - controlPoints.DeleteArrayElementAtIndex(controlPoints.arraySize - 1); - controlPoints.DeleteArrayElementAtIndex(controlPoints.arraySize - 1); - serializedObject.ApplyModifiedProperties(); - } - - private void DrawSceneControlOptionButtons(Vector3 position) - { - Handles.BeginGUI(); - - var buttonPosition = HandleUtility.WorldToGUIPoint(position); - var buttonRect = new Rect(buttonPosition + ControlPointButtonHandleOffset, ControlPointButtonSize); - - // Move the button slightly to the left - buttonRect.position += LeftControlPointPositionOffset; - - if (GUI.Button(buttonRect, AddControlPointContent)) - { - AddControlPoint(); - } - - if (controlPoints.arraySize > 4) - { - // Move the button slightly to the right - buttonRect.position += RightControlPointPositionOffset; - - if (GUI.Button(buttonRect, RemoveControlPointContent)) - { - RemoveControlPoint(); - } - } - - Handles.EndGUI(); - } - - private void DrawControlPointElement(Rect rect, int index, bool isActive, bool isFocused) - { - bool lastMode = EditorGUIUtility.wideMode; - EditorGUIUtility.wideMode = true; - - var lastLabelWidth = EditorGUIUtility.labelWidth; - EditorGUIUtility.labelWidth = 88f; - - var property = controlPoints.GetArrayElementAtIndex(index); - var fieldHeight = EditorGUIUtility.singleLineHeight * 0.5f; - var labelRect = new Rect(rect.x - 8f, rect.y + fieldHeight * 2, rect.width, EditorGUIUtility.singleLineHeight); - var positionRect = new Rect(rect.x, rect.y + fieldHeight, rect.width, EditorGUIUtility.singleLineHeight); - var rotationRect = new Rect(rect.x, rect.y + fieldHeight * 3, rect.width, EditorGUIUtility.singleLineHeight); - - EditorGUI.LabelField(labelRect, $"{index + 1}"); - - EditorGUI.indentLevel++; - - GUI.enabled = index != 0; - - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(positionRect, property.FindPropertyRelative("position"), PositionContent); - bool hasPositionChanged = EditorGUI.EndChangeCheck(); - - var rotationProperty = property.FindPropertyRelative("rotation"); - - EditorGUI.BeginChangeCheck(); - var newEulerRotation = EditorGUI.Vector3Field(rotationRect, RotationContent, rotationProperty.quaternionValue.eulerAngles); - bool hasRotationChanged = EditorGUI.EndChangeCheck(); - - if (hasRotationChanged) - { - rotationProperty.quaternionValue = Quaternion.Euler(newEulerRotation); - } - - if (hasPositionChanged || hasRotationChanged) - { - EditorUtility.SetDirty(target); - } - - GUI.enabled = true; - EditorGUI.indentLevel--; - EditorGUIUtility.wideMode = lastMode; - EditorGUIUtility.labelWidth = lastLabelWidth; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs.meta deleted file mode 100644 index 94a4ee156..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Lines/DataProviders/SplineDataProviderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b19325795d4e4137abac5dcc90c72f33 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs deleted file mode 100644 index d4d1cbb0f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs +++ /dev/null @@ -1,610 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using UnityEditor; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// This class has handy inspector utilities and functions. - /// - public static class MixedRealityInspectorUtility - { - #region Colors - - public static Color DefaultBackgroundColor - { - get - { - return EditorGUIUtility.isProSkin - ? new Color32(56, 56, 56, 255) - : new Color32(194, 194, 194, 255); - } - } - - public static readonly Color DisabledColor = new Color(0.6f, 0.6f, 0.6f); - public static readonly Color WarningColor = new Color(1f, 0.85f, 0.6f); - public static readonly Color ErrorColor = new Color(1f, 0.55f, 0.5f); - public static readonly Color SuccessColor = new Color(0.8f, 1f, 0.75f); - public static readonly Color SectionColor = new Color(0.85f, 0.9f, 1f); - public static readonly Color DarkColor = new Color(0.1f, 0.1f, 0.1f); - public static readonly Color HandleColorSquare = new Color(0.0f, 0.9f, 1f); - public static readonly Color HandleColorCircle = new Color(1f, 0.5f, 1f); - public static readonly Color HandleColorSphere = new Color(1f, 0.5f, 1f); - public static readonly Color HandleColorAxis = new Color(0.0f, 1f, 0.2f); - public static readonly Color HandleColorRotation = new Color(0.0f, 1f, 0.2f); - public static readonly Color HandleColorTangent = new Color(0.1f, 0.8f, 0.5f, 0.7f); - public static readonly Color LineVelocityColor = new Color(0.9f, 1f, 0f, 0.8f); - - #endregion Colors - - public const float DottedLineScreenSpace = 4.65f; - public const string DefaultConfigProfileName = "DefaultMixedRealityToolkitConfigurationProfile"; - - // StandardAssets/Textures/MRTK_Logo_Black.png - private const string LogoLightThemeGuid = "c2c00ef21cc44bcfa09695879e0ebecd"; - // StandardAssets/Textures/MRTK_Logo_White.png - private const string LogoDarkThemeGuid = "84643a20fa6b4fa7969ef84ad2e40992"; - - public static readonly Texture2D LogoLightTheme = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(LogoLightThemeGuid)); - - public static readonly Texture2D LogoDarkTheme = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(LogoDarkThemeGuid)); - - private const string CloneProfileHelpLabel = "Currently viewing a MRTK default profile. It is recommended to clone defaults and modify a custom profile."; - private const string CloneProfileHelpLockedLabel = "Clone this default profile to edit properties below"; - - /// - /// Check and make sure we have a Mixed Reality Toolkit and an active profile. - /// - /// True if the Mixed Reality Toolkit is properly initialized. - public static bool CheckMixedRealityConfigured(bool renderEditorElements = false) - { - if (!MixedRealityToolkit.IsInitialized) - { // Don't proceed - return false; - } - - if (!MixedRealityToolkit.Instance.HasActiveProfile) - { - if (renderEditorElements) - { - EditorGUILayout.HelpBox("No Active Profile set on the Mixed Reality Toolkit.", MessageType.Error); - } - return false; - } - - return true; - } - - /// - /// If MRTK is not initialized in scene, adds and initializes instance to current scene - /// - public static void AddMixedRealityToolkitToScene(MixedRealityToolkitConfigurationProfile configProfile = null) - { - if (!MixedRealityToolkit.IsInitialized) - { - MixedRealityToolkit newInstance = new GameObject("MixedRealityToolkit").AddComponent(); - MixedRealityToolkit.SetActiveInstance(newInstance); - Selection.activeObject = newInstance; - - if (configProfile == null) - { - // if we don't have a profile set we get the default profile - newInstance.ActiveProfile = GetDefaultConfigProfile(); - } - else - { - newInstance.ActiveProfile = configProfile; - } - } - } - - /// - /// Render the Mixed Reality Toolkit Logo. - /// - public static void RenderMixedRealityToolkitLogo() - { - GUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - GUILayout.Label(EditorGUIUtility.isProSkin ? LogoDarkTheme : LogoLightTheme, GUILayout.MaxHeight(96f)); - GUILayout.FlexibleSpace(); - GUILayout.EndHorizontal(); - GUILayout.Space(3f); - } - - /// - /// Found at https://answers.unity.com/questions/960413/editor-window-how-to-center-a-window.html - /// - public static Rect GetEditorMainWindowPos() - { - var containerWinType = AppDomain.CurrentDomain.GetAllDerivedTypes(typeof(ScriptableObject)).FirstOrDefault(t => t.Name == "ContainerWindow"); - - if (containerWinType == null) - { - throw new MissingMemberException("Can't find internal type ContainerWindow. Maybe something has changed inside Unity"); - } - - var showModeField = containerWinType.GetField("m_ShowMode", BindingFlags.NonPublic | BindingFlags.Instance); - var positionProperty = containerWinType.GetProperty("position", BindingFlags.Public | BindingFlags.Instance); - - if (showModeField == null || positionProperty == null) - { - throw new MissingFieldException("Can't find internal fields 'm_ShowMode' or 'position'. Maybe something has changed inside Unity"); - } - - var windows = Resources.FindObjectsOfTypeAll(containerWinType); - - foreach (var win in windows) - { - - var showMode = (int)showModeField.GetValue(win); - if (showMode == 4) // main window - { - var pos = (Rect)positionProperty.GetValue(win, null); - return pos; - } - } - - throw new NotSupportedException("Can't find internal main window. Maybe something has changed inside Unity"); - } - - private static Type[] GetAllDerivedTypes(this AppDomain appDomain, Type aType) - { - var result = new List(); - var assemblies = appDomain.GetAssemblies(); - - foreach (var assembly in assemblies) - { - var types = assembly.GetLoadableTypes(); - result.AddRange(types.Where(type => type.IsSubclassOf(aType))); - } - - return result.ToArray(); - } - - /// - /// Centers an editor window on the main display. - /// - public static void CenterOnMainWin(this EditorWindow window) - { - var main = GetEditorMainWindowPos(); - var pos = window.position; - float w = (main.width - pos.width) * 0.5f; - float h = (main.height - pos.height) * 0.5f; - pos.x = main.x + w; - pos.y = main.y + h; - window.position = pos; - } - - #region Handles - - /// - /// Draw an axis move handle. - /// - /// Object that is undergoing the transformation. Also used for recording undo. - /// The initial position of the axis. - /// The direction the axis is facing. - /// Distance from the axis. - /// Optional handle size. - /// Optional, auto sizes the handles based on position and handle size. - /// Optional, records undo state. - /// The new value. - public static float AxisMoveHandle(Object target, Vector3 origin, Vector3 direction, float distance, float handleSize = 0.2f, bool autoSize = true, bool recordUndo = true) - { - Vector3 position = origin + (direction.normalized * distance); - - Handles.color = HandleColorAxis; - - if (autoSize) - { - handleSize = Mathf.Lerp(handleSize, HandleUtility.GetHandleSize(position) * handleSize, 0.75f); - } - - Handles.DrawDottedLine(origin, position, DottedLineScreenSpace); - Handles.ArrowHandleCap(0, position, Quaternion.LookRotation(direction), handleSize * 2, EventType.Repaint); - Vector3 newPosition = Handles.FreeMoveHandle(position, Quaternion.identity, handleSize, Vector3.zero, Handles.CircleHandleCap); - - if (recordUndo) - { - float newDistance = Vector3.Distance(origin, newPosition); - - if (!distance.Equals(newDistance)) - { - Undo.RegisterCompleteObjectUndo(target, target.name); - distance = newDistance; - } - } - - return distance; - } - - /// - /// Returns the default config profile, if it exists. - /// - public static MixedRealityToolkitConfigurationProfile GetDefaultConfigProfile() - { - var allConfigProfiles = ScriptableObjectExtensions.GetAllInstances(); - return GetDefaultConfigProfile(allConfigProfiles); - } - - /// - /// Given a list of MixedRealityToolkitConfigurationProfile objects, returns - /// the one that matches the default profile name. - /// - public static MixedRealityToolkitConfigurationProfile GetDefaultConfigProfile(MixedRealityToolkitConfigurationProfile[] allProfiles) - { - for (int i = 0; i < allProfiles.Length; i++) - { - if (allProfiles[i].name == DefaultConfigProfileName) - { - return allProfiles[i]; - } - } - return null; - } - - /// - /// Draw a Circle Move Handle. - /// - /// Object that is undergoing the transformation. Also used for recording undo. - /// The position to draw the handle. - /// Scale the new value on the x axis by this amount. - /// Scale the new value on the x axis by this amount. - /// Scale the new value on the x axis by this amount. - /// Optional handle size. - /// Optional, auto sizes the handles based on position and handle size. - /// Optional, records undo state. - /// The new Vector3 value. - public static Vector3 CircleMoveHandle(Object target, Vector3 position, float xScale = 1f, float yScale = 1f, float zScale = 1f, float handleSize = 0.2f, bool autoSize = true, bool recordUndo = true) - { - Handles.color = HandleColorCircle; - - if (autoSize) - { - handleSize = Mathf.Lerp(handleSize, HandleUtility.GetHandleSize(position) * handleSize, 0.75f); - } - - Vector3 newPosition = Handles.FreeMoveHandle(position, Quaternion.identity, handleSize, Vector3.zero, Handles.CircleHandleCap); - - if (recordUndo && position != newPosition) - { - Undo.RegisterCompleteObjectUndo(target, target.name); - - position.x = Mathf.Lerp(position.x, newPosition.x, Mathf.Clamp01(xScale)); - position.y = Mathf.Lerp(position.z, newPosition.y, Mathf.Clamp01(yScale)); - position.z = Mathf.Lerp(position.y, newPosition.z, Mathf.Clamp01(zScale)); - } - - return position; - } - - /// - /// Draw a square move handle. - /// - /// Object that is undergoing the transformation. Also used for recording undo. - /// The position to draw the handle. - /// Scale the new value on the x axis by this amount. - /// Scale the new value on the x axis by this amount. - /// Scale the new value on the x axis by this amount. - /// Optional handle size. - /// Optional, auto sizes the handles based on position and handle size. - /// Optional, records undo state. - /// The new Vector3 value. - public static Vector3 SquareMoveHandle(Object target, Vector3 position, float xScale = 1f, float yScale = 1f, float zScale = 1f, float handleSize = 0.2f, bool autoSize = true, bool recordUndo = true) - { - Handles.color = HandleColorSquare; - - if (autoSize) - { - handleSize = Mathf.Lerp(handleSize, HandleUtility.GetHandleSize(position) * handleSize, 0.75f); - } - - // Multiply square handle to match other types - Vector3 newPosition = Handles.FreeMoveHandle(position, Quaternion.identity, handleSize * 0.8f, Vector3.zero, Handles.RectangleHandleCap); - - if (recordUndo && position != newPosition) - { - Undo.RegisterCompleteObjectUndo(target, target.name); - - position.x = Mathf.Lerp(position.x, newPosition.x, Mathf.Clamp01(xScale)); - position.y = Mathf.Lerp(position.z, newPosition.y, Mathf.Clamp01(yScale)); - position.z = Mathf.Lerp(position.y, newPosition.z, Mathf.Clamp01(zScale)); - } - - return position; - } - - /// - /// Draw a sphere move handle. - /// - /// Object that is undergoing the transformation. Also used for recording undo. - /// The position to draw the handle. - /// Scale the new value on the x axis by this amount. - /// Scale the new value on the x axis by this amount. - /// Scale the new value on the x axis by this amount. - /// Optional handle size. - /// Optional, auto sizes the handles based on position and handle size. - /// Optional, records undo state. - /// The new Vector3 value. - public static Vector3 SphereMoveHandle(Object target, Vector3 position, float xScale = 1f, float yScale = 1f, float zScale = 1f, float handleSize = 0.2f, bool autoSize = true, bool recordUndo = true) - { - Handles.color = HandleColorSphere; - - if (autoSize) - { - handleSize = Mathf.Lerp(handleSize, HandleUtility.GetHandleSize(position) * handleSize, 0.75f); - } - - // Multiply sphere handle size to match other types - Vector3 newPosition = Handles.FreeMoveHandle(position, Quaternion.identity, handleSize * 2, Vector3.zero, Handles.SphereHandleCap); - - if (recordUndo && position != newPosition) - { - Undo.RegisterCompleteObjectUndo(target, target.name); - - position.x = Mathf.Lerp(position.x, newPosition.x, Mathf.Clamp01(xScale)); - position.y = Mathf.Lerp(position.z, newPosition.y, Mathf.Clamp01(yScale)); - position.z = Mathf.Lerp(position.y, newPosition.z, Mathf.Clamp01(zScale)); - } - - return position; - } - - /// - /// Draw a vector handle. - /// - /// Object that is undergoing the transformation. Also used for recording undo. - /// Optional, Normalize the new vector value. - /// Optional, Clamp new vector's value based on the distance to the origin. - /// Optional, handle length. - /// Optional, handle size. - /// Optional, auto sizes the handles based on position and handle size. - /// Optional, records undo state. - /// The new Vector3 value. - public static Vector3 VectorHandle(Object target, Vector3 origin, Vector3 vector, bool normalize = true, bool clamp = true, float handleLength = 1f, float handleSize = 0.1f, bool recordUndo = true, bool autoSize = true) - { - Handles.color = HandleColorTangent; - - if (autoSize) - { - handleSize = Mathf.Lerp(handleSize, HandleUtility.GetHandleSize(origin) * handleSize, 0.75f); - } - - Vector3 handlePosition = origin + (vector * handleLength); - float distanceToOrigin = Vector3.Distance(origin, handlePosition) / handleLength; - - if (normalize) - { - vector.Normalize(); - } - else - { - // If the handle isn't normalized, brighten based on distance to origin - Handles.color = Color.Lerp(Color.gray, HandleColorTangent, distanceToOrigin * 0.85f); - - if (clamp) - { - // To indicate that we're at the clamped limit, make the handle 'pop' slightly larger - if (distanceToOrigin >= 0.98f) - { - Handles.color = Color.Lerp(HandleColorTangent, Color.white, 0.5f); - handleSize *= 1.5f; - } - } - } - - // Draw a line from origin to origin + direction - Handles.DrawLine(origin, handlePosition); - - Quaternion rotation = Quaternion.identity; - if (vector != Vector3.zero) - { - rotation = Quaternion.LookRotation(vector); - } - - Vector3 newPosition = Handles.FreeMoveHandle(handlePosition, rotation, handleSize, Vector3.zero, Handles.DotHandleCap); - - if (recordUndo && handlePosition != newPosition) - { - Undo.RegisterCompleteObjectUndo(target, target.name); - vector = (newPosition - origin).normalized; - - // If we normalize, we're done - // Otherwise, multiply the vector by the distance between origin and target - if (!normalize) - { - distanceToOrigin = Vector3.Distance(origin, newPosition) / handleLength; - - if (clamp) - { - distanceToOrigin = Mathf.Clamp01(distanceToOrigin); - } - - vector *= distanceToOrigin; - } - } - - return vector; - } - - /// - /// Draw a rotation handle. - /// - /// Object that is undergoing the transformation. Also used for recording undo. - /// The position to draw the handle. - /// The rotation to draw the handle. - /// Optional, handle size. - /// Optional, auto sizes the handles based on position and handle size. - /// Optional, records undo state. - /// The new Quaternion value. - public static Quaternion RotationHandle(Object target, Vector3 position, Quaternion rotation, float handleSize = 0.2f, bool autoSize = true, bool recordUndo = true) - { - Handles.color = HandleColorRotation; - - if (autoSize) - { - handleSize = Mathf.Lerp(handleSize, HandleUtility.GetHandleSize(position) * handleSize, 0.75f); - } - - // Make rotation handles larger so they can overlay movement handles - Quaternion newRotation = Handles.FreeRotateHandle(rotation, position, handleSize * 2); - - if (recordUndo) - { - Handles.color = Handles.zAxisColor; - Handles.ArrowHandleCap(0, position, Quaternion.LookRotation(newRotation * Vector3.forward), handleSize * 2, EventType.Repaint); - Handles.color = Handles.xAxisColor; - Handles.ArrowHandleCap(0, position, Quaternion.LookRotation(newRotation * Vector3.right), handleSize * 2, EventType.Repaint); - Handles.color = Handles.yAxisColor; - Handles.ArrowHandleCap(0, position, Quaternion.LookRotation(newRotation * Vector3.up), handleSize * 2, EventType.Repaint); - - if (rotation != newRotation) - { - Undo.RegisterCompleteObjectUndo(target, target.name); - rotation = newRotation; - } - } - - return rotation; - } - - #endregion Handles - - #region Profiles - - private static readonly GUIContent NewProfileContent = new GUIContent("+", "Create New Profile"); - private static Dictionary profileEditorCache = new Dictionary(); - - /// - /// Draws an editor for a profile object. - /// - public static void DrawSubProfileEditor(Object profileObject, bool renderProfileInBox) - { - if (profileObject == null) - { - return; - } - - UnityEditor.Editor subProfileEditor = null; - if (!profileEditorCache.TryGetValue(profileObject, out subProfileEditor)) - { - subProfileEditor = UnityEditor.Editor.CreateEditor(profileObject); - profileEditorCache.Add(profileObject, subProfileEditor); - } - - // If this is a default MRTK configuration profile, ask it to render as a sub-profile - if (typeof(BaseMixedRealityToolkitConfigurationProfileInspector).IsAssignableFrom(subProfileEditor.GetType())) - { - BaseMixedRealityToolkitConfigurationProfileInspector configProfile = (BaseMixedRealityToolkitConfigurationProfileInspector)subProfileEditor; - configProfile.RenderAsSubProfile = true; - } - - var subProfile = profileObject as BaseMixedRealityProfile; - if (subProfile != null && !subProfile.IsCustomProfile) - { - string msg = MixedRealityProjectPreferences.LockProfiles ? CloneProfileHelpLockedLabel : CloneProfileHelpLabel; - EditorGUILayout.HelpBox(msg, MessageType.Warning); - } - - if (renderProfileInBox) - { - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - } - else - { - EditorGUILayout.BeginVertical(); - } - - EditorGUILayout.Space(); - subProfileEditor.OnInspectorGUI(); - EditorGUILayout.Space(); - - EditorGUILayout.EndVertical(); - } - - /// - /// Draws a dropdown with all available profiles of profilyType. - /// - /// True if property was changed. - public static bool DrawProfileDropDownList(SerializedProperty property, BaseMixedRealityProfile profile, Object oldProfileObject, Type profileType, bool showAddButton) - { - bool changed = false; - - using (new EditorGUILayout.HorizontalScope()) - { - // Pull profile instances and profile content from cache - ScriptableObject[] profileInstances = MixedRealityProfileUtility.GetProfilesOfType(profileType); - GUIContent[] profileContent = MixedRealityProfileUtility.GetProfilePopupOptionsByType(profileType); - // Set our selected index to our '(None)' option by default - int selectedIndex = 0; - // Find our selected index - for (int i = 0; i < profileInstances.Length; i++) - { - if (profileInstances[i] == oldProfileObject) - { // Our profile content has a '(None)' option at the start - selectedIndex = i + 1; - break; - } - } - - int newIndex = EditorGUILayout.Popup( - new GUIContent(oldProfileObject != null ? "" : property.displayName), - selectedIndex, - profileContent, - GUILayout.ExpandWidth(true)); - - property.objectReferenceValue = (newIndex > 0) ? profileInstances[newIndex - 1] : null; - changed = property.objectReferenceValue != oldProfileObject; - - // Draw a button that finds the profile in the project window - if (property.objectReferenceValue != null) - { - // The view asset button should always be enabled. - using (new GUIEnabledWrapper()) - { - if (GUILayout.Button("View Asset", EditorStyles.miniButton, GUILayout.Width(80))) - { - EditorGUIUtility.PingObject(property.objectReferenceValue); - } - } - } - - // Draw the clone button - if (property.objectReferenceValue == null) - { - if (showAddButton && MixedRealityProfileUtility.IsConcreteProfileType(profileType)) - { - if (GUILayout.Button(NewProfileContent, EditorStyles.miniButton, GUILayout.Width(20f))) - { - ScriptableObject instance = ScriptableObject.CreateInstance(profileType); - var newProfile = instance.CreateAsset(AssetDatabase.GetAssetPath(Selection.activeObject)) as BaseMixedRealityProfile; - property.objectReferenceValue = newProfile; - property.serializedObject.ApplyModifiedProperties(); - changed = true; - } - } - } - else - { - var renderedProfile = property.objectReferenceValue as BaseMixedRealityProfile; - Debug.Assert(renderedProfile != null); - if (GUILayout.Button(new GUIContent("Clone", "Replace with a copy of the default profile."), EditorStyles.miniButton, GUILayout.Width(45f))) - { - MixedRealityProfileCloneWindow.OpenWindow(profile, renderedProfile, property); - } - } - } - - return changed; - } - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs.meta deleted file mode 100644 index 52bf36cb0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityInspectorUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 70f6465ce04a453f87d0c385cdcd38e1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs deleted file mode 100644 index 6d469f30b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// This class has utilities and functions for working with profiles in the Unity editor. - /// - public static class MixedRealityProfileUtility - { - /// - /// Private class that listens for asset modifications and updates caches. - /// - private class AssetImportListener : UnityEditor.AssetPostprocessor - { - public static Action OnAssetsChanged { get; set; } - - public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - { - if (Application.isPlaying) - { - return; - } - - OnAssetsChanged?.Invoke(); - } - } - - private static Dictionary profileCaches = new Dictionary(); - private static Dictionary profileContentCaches = new Dictionary(); - private static Dictionary profileTypesForServiceCaches = new Dictionary(); - - /// - /// Returns an array of profiles that match profile type. - /// - public static ScriptableObject[] GetProfilesOfType(Type profileType) - { - ScriptableObject[] profilesOfType = null; - if (!profileCaches.TryGetValue(profileType, out profilesOfType)) - { - profilesOfType = ScriptableObjectExtensions.GetAllInstances(profileType); - profileCaches.Add(profileType, profilesOfType); - } - return profilesOfType; - } - - /// - /// Returns an array of GUIContent for use in a dropdown for a type of profile. - /// Includes a (None) option at the start. This means that the array length will always be 1 greater than the available profiles. - /// - public static GUIContent[] GetProfilePopupOptionsByType(Type profileType) - { - GUIContent[] profileContent = null; - if (!profileContentCaches.TryGetValue(profileType, out profileContent)) - { - ScriptableObject[] profilesOfType = GetProfilesOfType(profileType); - profileContent = new GUIContent[profilesOfType.Length + 1]; - profileContent[0] = new GUIContent("(None)"); - for (int i = 0; i < profilesOfType.Length; i++) - { - profileContent[i + 1] = new GUIContent(profilesOfType[i].name); - } - profileContentCaches.Add(profileType, profileContent); - } - return profileContent; - } - - /// - /// Returns true if the given profile type is designed to configure the given service. - /// - public static bool IsProfileForService(Type profileType, Type serviceType) - { - foreach (MixedRealityServiceProfileAttribute serviceProfileAttribute in profileType.GetCustomAttributes(typeof(MixedRealityServiceProfileAttribute), true)) - { - bool requirementsMet = true; - foreach (Type requiredType in serviceProfileAttribute.RequiredTypes) - { - if (!requiredType.IsAssignableFrom(serviceType)) - { - requirementsMet = false; - break; - } - } - - if (requirementsMet) - { - foreach (Type excludedType in serviceProfileAttribute.ExcludedTypes) - { - if (excludedType.IsAssignableFrom(serviceType)) - { - requirementsMet = false; - break; - } - - } - } - - return requirementsMet; - } - return false; - } - - /// - /// Returns true if profile is NOT a BaseMixedRealityProfile class type. - /// - public static bool IsConcreteProfileType(Type profileType) - { - return profileType != typeof(BaseMixedRealityProfile); - } - - /// - /// Given a service type, finds all sub-classes of BaseMixedRealityProfile that are - /// designed to configure that service. - /// - public static IReadOnlyCollection GetProfileTypesForService(Type serviceType) - { - if (serviceType == null) - { - return Array.Empty(); - } - - Type[] types; - if (!profileTypesForServiceCaches.TryGetValue(serviceType, out types)) - { - HashSet allTypes = new HashSet(); - ScriptableObject[] allProfiles = GetProfilesOfType(typeof(BaseMixedRealityProfile)); - for (int i = 0; i < allProfiles.Length; i++) - { - ScriptableObject profile = allProfiles[i]; - if (IsProfileForService(profile.GetType(), serviceType)) - { - allTypes.Add(profile.GetType()); - } - } - types = allTypes.ToArray(); - profileTypesForServiceCaches.Add(serviceType, types); - } - - return types; - } - - [InitializeOnLoadMethod] - private static void InitializeOnLoad() - { - AssetImportListener.OnAssetsChanged += AssetImportListener_OnAssetsChange; - } - - private static void AssetImportListener_OnAssetsChange() - { - RefreshProfileCaches(); - } - - private static void RefreshProfileCaches() - { - List cachedTypes = new List(profileCaches.Keys); - profileContentCaches.Clear(); - foreach (Type profileType in cachedTypes) - { - profileCaches[profileType] = ScriptableObjectExtensions.GetAllInstances(profileType); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs.meta deleted file mode 100644 index d4eb61121..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityProfileUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 36d6219eaecc7f54a9177df046abf5b0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs deleted file mode 100644 index f077eebab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - public static class MixedRealityStylesUtility - { - /// - /// Default style for foldouts with bold title - /// - public static readonly GUIStyle BoldFoldoutStyle = - new GUIStyle(EditorStyles.foldout) - { - fontStyle = FontStyle.Bold - }; - - /// - /// Default style for foldouts with bold large font size title - /// - public static readonly GUIStyle BoldTitleFoldoutStyle = - new GUIStyle(EditorStyles.foldout) - { - fontStyle = FontStyle.Bold, - fontSize = InspectorUIUtility.TitleFontSize, - }; - - /// - /// Default style for foldouts with large font size title - /// - public static readonly GUIStyle TitleFoldoutStyle = - new GUIStyle(EditorStyles.foldout) - { - fontSize = InspectorUIUtility.TitleFontSize, - }; - - /// - /// Default style for controller mapping buttons - /// - public static readonly GUIStyle ControllerButtonStyle = new GUIStyle("LargeButton") - { - imagePosition = ImagePosition.ImageAbove, - fixedHeight = 128, - fontStyle = FontStyle.Bold, - stretchHeight = true, - stretchWidth = true, - wordWrap = true, - fontSize = 10, - }; - - /// - /// Default style for bold large font size title - /// - public static readonly GUIStyle BoldLargeTitleStyle = new GUIStyle(EditorStyles.largeLabel) - { - fontSize = InspectorUIUtility.TitleFontSize, - fontStyle = FontStyle.Bold, - }; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs.meta deleted file mode 100644 index 4a9815daf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/MixedRealityStylesUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5cccd45d484d4804fa4bb6a9a1bb8830 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search.meta deleted file mode 100644 index 884f6db5c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cac7f653cf616934a9eec48339c96a14 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs deleted file mode 100644 index 27c27ed03..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Search -{ - /// - /// Struct for storing search results - /// - public struct FieldSearchResult - { - public SerializedProperty Property; - public int MatchStrength; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs.meta deleted file mode 100644 index 22d51c6b8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/FieldSearchResult.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 27f8075a499c2ae4d881329ea7c605c0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs deleted file mode 100644 index 2eed855b1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Search -{ - /// - /// Utility class for drawing search interface. - /// Draws a search field by default. When search is active, draws search results. - /// Also handles the business of storing search configuration and results so searching objects don't have to. - /// - public static class MixedRealitySearchInspectorUtility - { - private static readonly string searchDisplaySearchFieldKey = "MixedRealityToolkitInspector.SearchField"; - private static readonly string searchDisplayRequireAllKeywordsKey = "MixedRealityToolkitInspector.RequireAllKeywords"; - private static readonly string searchDisplayOptionsFoldoutKey = "MixedRealityToolkitInspector.SearchOptionsFoldout"; - private static readonly string searchDisplaySearchTooltipsKey = "MixedRealityToolkitInspector.SearchTooltips"; - private static readonly string searchDisplaySearchFieldContentKey = "MixedRealityToolkitInspector.SearchFieldContent"; - - private static SearchConfig config; - private static SearchConfig prevConfig; - private static UnityEngine.Object activeTarget; - private static List searchResults = new List(); - - /// - /// Draws a search field and (if results have been returned) search results. - /// - /// True if search results are being displayed. - public static bool DrawSearchInterface(UnityEngine.Object target) - { - if (target == null) - { - return false; - } - - bool drewSearchGUI = false; - - if (target != activeTarget) - { - activeTarget = target; - config = new SearchConfig(); - prevConfig = new SearchConfig(); - searchResults.Clear(); - } - - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField("Search For: ", GUILayout.MaxWidth(70)); - string searchString = SessionState.GetString(searchDisplaySearchFieldKey, string.Empty); - config.SearchFieldString = EditorGUILayout.TextField(SessionState.GetString(searchDisplaySearchFieldKey, string.Empty), GUILayout.ExpandWidth(true)); - if (GUILayout.Button("Clear", EditorStyles.miniButton, GUILayout.MaxWidth(50))) - { - config.SearchFieldString = string.Empty; - } - } - - config.RequireAllKeywords = SessionState.GetBool(searchDisplayRequireAllKeywordsKey, true); - config.SearchTooltips = SessionState.GetBool(searchDisplaySearchTooltipsKey, true); - config.SearchFieldContent = SessionState.GetBool(searchDisplaySearchFieldContentKey, false); - - if (!string.IsNullOrEmpty(config.SearchFieldString)) - { - // If we're searching for something, draw the search GUI - DrawSearchResultInterface(target); - drewSearchGUI = true; - } - - // Store search settings - SessionState.SetString(searchDisplaySearchFieldKey, config.SearchFieldString); - SessionState.SetBool(searchDisplayRequireAllKeywordsKey, config.RequireAllKeywords); - SessionState.SetBool(searchDisplaySearchTooltipsKey, config.SearchTooltips); - SessionState.SetBool(searchDisplaySearchFieldContentKey, config.SearchFieldContent); - - return drewSearchGUI; - } - - private static void DrawSearchResultInterface(UnityEngine.Object target) - { - bool optionsFoldout = SessionState.GetBool(searchDisplayOptionsFoldoutKey, false); - optionsFoldout = EditorGUILayout.Foldout(optionsFoldout, "Search Preferences", true); - SessionState.SetBool(searchDisplayOptionsFoldoutKey, optionsFoldout); - if (optionsFoldout) - { - config.RequireAllKeywords = EditorGUILayout.Toggle("Require All Keywords", config.RequireAllKeywords); - config.SearchTooltips = EditorGUILayout.Toggle("Search Tooltips", config.SearchTooltips); - config.SearchFieldContent = EditorGUILayout.Toggle("Search Field Content", config.SearchFieldContent); - } - - if (!config.Equals(prevConfig) && !MixedRealitySearchUtility.Searching) - { - MixedRealitySearchUtility.StartProfileSearch(target, config, OnSearchComplete); - searchResults.Clear(); - prevConfig = config; - } - - #region display results - - using (new EditorGUILayout.VerticalScope()) - { - if (searchResults.Count == 0) - { - if (MixedRealitySearchUtility.Searching) - { - EditorGUILayout.HelpBox("Searching...", MessageType.Info); - } - else - { - EditorGUILayout.HelpBox("No search results. Try selecting a subject or entering a keyword.", MessageType.Warning); - } - } - - int numDisplayedSearchResults = 0; - if (searchResults.Count > 0) - { - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Results:"); - foreach (ProfileSearchResult search in searchResults) - { - if (search.Fields.Count == 0) - { // Don't display results with no fields - continue; - } - - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField("Fields found in: ", EditorStyles.boldLabel, GUILayout.MaxWidth(105)); - EditorGUILayout.ObjectField(search.Profile, typeof(UnityEngine.Object), false, GUILayout.ExpandWidth(true)); - if (GUILayout.Button("View Asset", GUILayout.MaxWidth(75))) - { - Selection.activeObject = search.Profile; - EditorGUIUtility.PingObject(search.Profile); - } - } - - if (MixedRealityProjectPreferences.LockProfiles && !search.IsCustomProfile) - { - EditorGUILayout.HelpBox("Clone this profile to edit default properties.", MessageType.Warning); - } - - using (new EditorGUI.DisabledGroupScope(MixedRealityProjectPreferences.LockProfiles && !search.IsCustomProfile)) - { - using (new EditorGUI.IndentLevelScope(1)) - { - EditorGUILayout.Space(); - - foreach (FieldSearchResult r in search.Fields) - { - numDisplayedSearchResults++; - - GUI.color = Color.white; - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(r.Property, true); - - if (EditorGUI.EndChangeCheck()) - { - r.Property.serializedObject.ApplyModifiedProperties(); - } - - EditorGUILayout.Space(); - } - } - } - } - - EditorGUILayout.Space(); - } - } - } - - #endregion - } - - private static void OnSearchComplete(bool cancelled, UnityEngine.Object target, IReadOnlyCollection results) - { - searchResults.Clear(); - - if (cancelled || target != MixedRealitySearchInspectorUtility.activeTarget) - { // We've started searching something else, ignore - return; - } - - searchResults.AddRange(results); - // Force editors to repaint so the results are displayed - foreach (UnityEditor.Editor e in Resources.FindObjectsOfTypeAll()) - { - e.Repaint(); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs.meta deleted file mode 100644 index e45e433d8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchInspectorUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c43b2cf1e06e1404a8cc670b75033581 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs deleted file mode 100644 index 9e5697b3e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SceneSystem; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Search -{ - /// - /// Utility for retrieving a Unity object's serialized fields with a configurable search. - /// - public static class MixedRealitySearchUtility - { - /// - /// True if a search is being executed. This must be false before calling StartProfileSearch. - /// - public static bool Searching { get { return activeTask != null && !activeTask.IsCompleted; } } - - private const int maxChildSearchDepth = 5; - private const int minSearchStringLength = 3; - private static Task activeTask; - - /// - /// Field names that shouldn't be displayed in a profile field search. - /// - private static readonly HashSet serializedPropertiesToIgnore = new HashSet() - { - // Unity base class fields - "m_Name", - "m_Script", - "m_Enabled", - "m_GameObject", - "m_ObjectHideFlags", - "m_CorrespondingSourceObject", - "m_PrefabInstance", - "m_PrefabAsset", - "m_EditorHideFlags", - "m_EditorClassIdentifier", - // Profile base class fields - "isCustomProfile", - }; - - /// - /// Field types that don't need their child properties displayed. - /// - private static readonly HashSet serializedPropertyTypesToFlatten = new HashSet() - { - typeof(SystemType).Name, - typeof(SceneInfo).Name, - }; - - /// - /// Starts a profile search. 'Searching' must be false or an exception will be thrown. - /// - /// Profile object to search. - /// Configuration for the search. - /// Action to invoke once search is complete - delivers final results. - public static async void StartProfileSearch(UnityEngine.Object profile, SearchConfig config, Action> onSearchComplete) - { - if (activeTask != null && !activeTask.IsCompleted) - { - throw new Exception("Can't start a new search until the old one has completed."); - } - - List searchResults = new List(); - - // Validate search configuration - if (string.IsNullOrEmpty(config.SearchFieldString)) - { // If the config is empty, bail early - onSearchComplete?.Invoke(true, profile, searchResults); - return; - } - - // Generate keywords if we haven't yet - if (config.Keywords == null) - { - config.Keywords = new HashSet(config.SearchFieldString.Split(new string[] { " ", "," }, StringSplitOptions.RemoveEmptyEntries)); - config.Keywords.RemoveWhere(s => s.Length < minSearchStringLength); - } - - if (config.Keywords.Count == 0) - { // If there are no useful keywords, bail early - onSearchComplete?.Invoke(true, profile, searchResults); - return; - } - - // Launch the search task - bool cancelled = false; - try - { - activeTask = SearchProfileField(profile, config, searchResults); - await activeTask; - } - catch (Exception e) - { - // Profile was probably deleted in the middle of searching. - Debug.LogException(e); - cancelled = true; - } - finally - { - searchResults.Sort(delegate (ProfileSearchResult r1, ProfileSearchResult r2) - { - if (r1.ProfileMatchStrength != r2.ProfileMatchStrength) - { - return r2.ProfileMatchStrength.CompareTo(r1.ProfileMatchStrength); - } - else - { - return r2.Profile.name.CompareTo(r1.Profile.name); - } - }); - - searchResults.RemoveAll(r => r.Fields.Count <= 0); - - onSearchComplete?.Invoke(cancelled, profile, searchResults); - } - } - - private static async Task SearchProfileField(UnityEngine.Object profile, SearchConfig config, List searchResults) - { - await Task.Yield(); - - // The result that we will return, if not empty - ProfileSearchResult result = new ProfileSearchResult(); - result.Profile = profile; - BaseMixedRealityProfile baseProfile = (profile as BaseMixedRealityProfile); - result.IsCustomProfile = (baseProfile != null) ? baseProfile.IsCustomProfile : false; - searchResults.Add(result); - - // Go through the profile's serialized fields - foreach (SerializedProperty property in GatherProperties(profile)) - { - if (CheckFieldForProfile(property)) - { - await SearchProfileField(property.objectReferenceValue, config, searchResults); - } - else - { - CheckFieldForKeywords(property, config, result); - } - } - - if (result.Fields.Count > 0) - { - result.Fields.Sort(delegate (FieldSearchResult r1, FieldSearchResult r2) - { - if (r1.MatchStrength != r2.MatchStrength) - { - return r2.MatchStrength.CompareTo(r1.MatchStrength); - } - return r2.Property.name.CompareTo(r1.Property.name); - }); - } - } - - private static bool CheckFieldForProfile(SerializedProperty property) - { - bool isProfileField = false; - if (property.propertyType == SerializedPropertyType.ObjectReference && property.objectReferenceValue != null) - { - Type referenceType = property.objectReferenceValue.GetType(); - isProfileField = (typeof(BaseMixedRealityProfile).IsAssignableFrom(referenceType)); - } - return isProfileField; - } - - private static IEnumerable GatherProperties(UnityEngine.Object profile) - { - List properties = new List(); - SerializedProperty iterator = new SerializedObject(profile).GetIterator(); - bool hasNextProperty = iterator.Next(true); - while (hasNextProperty) - { - if (!serializedPropertiesToIgnore.Contains(iterator.name) && iterator.depth < maxChildSearchDepth) - { - properties.Add(iterator.Copy()); - } - - if (serializedPropertyTypesToFlatten.Contains(iterator.type)) - { - hasNextProperty = iterator.Next(false); - } - else - { - hasNextProperty = iterator.Next(true); - } - } - return properties; - } - - private static void CheckFieldForKeywords(SerializedProperty property, SearchConfig config, ProfileSearchResult result) - { - int numMatchedKeywords = 0; - int numExactMatches = 0; - int numFieldMatches = 0; - int numTooltipMatches = 0; - int numContentMatches = 0; - string propertyName = property.name.ToLower(); - string toolTip = property.tooltip.ToLower(); - - foreach (string keyword in config.Keywords) - { - bool keywordMatch = false; - - if (propertyName.Contains(keyword)) - { - keywordMatch = true; - numFieldMatches++; - if (propertyName == keyword) - { - numExactMatches++; - } - } - - if (config.SearchTooltips) - { - if (toolTip.Contains(keyword)) - { - keywordMatch = true; - numTooltipMatches++; - } - } - - if (config.SearchFieldContent) - { - switch (property.propertyType) - { - case SerializedPropertyType.ObjectReference: - if (property.objectReferenceValue != null && property.objectReferenceValue.name.ToLower().Contains(keyword)) - { - keywordMatch = true; - numContentMatches++; - } - break; - - case SerializedPropertyType.String: - if (!string.IsNullOrEmpty(property.stringValue) && property.stringValue.ToLower().Contains(keyword)) - { - keywordMatch = true; - numContentMatches++; - } - break; - } - } - - if (keywordMatch) - { - numMatchedKeywords++; - } - } - - bool requirementsMet = numMatchedKeywords > 0; - if (config.RequireAllKeywords && config.Keywords.Count > 1) - { - requirementsMet &= numMatchedKeywords >= config.Keywords.Count; - } - - if (requirementsMet) - { - int matchStrength = numMatchedKeywords + numExactMatches; - if (numMatchedKeywords >= config.Keywords.Count) - { // If we match all keywords in a multi-keyword search, double the score - matchStrength *= 2; - } - - // Weight the score based on match type - matchStrength += numFieldMatches * 3; - matchStrength += numTooltipMatches * 2; - matchStrength += numContentMatches * 1; - - result.ProfileMatchStrength += matchStrength; - result.Fields.Add(new FieldSearchResult() - { - Property = property.Copy(), - MatchStrength = numMatchedKeywords, - }); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs.meta deleted file mode 100644 index bc2ed2966..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/MixedRealitySearchUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b987696d1f67be340bec749da4a1ab2d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs deleted file mode 100644 index 4b83cba55..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Search -{ - /// - /// Struct for pairing profiles with a set of search results - /// - public class ProfileSearchResult - { - public int ProfileMatchStrength; - public bool IsCustomProfile; - public UnityEngine.Object Profile; - public List Fields = new List(); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs.meta deleted file mode 100644 index b13201932..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/ProfileSearchResult.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f4e6d05e9937be847bde45f2f7308962 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs deleted file mode 100644 index 56d42d261..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Search -{ - /// - /// Struct for configuring a search. - /// - public struct SearchConfig - { - public string SearchFieldString; - public bool RequireAllKeywords; - public bool SearchTooltips; - public bool SearchFieldContent; - public HashSet Keywords; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs.meta deleted file mode 100644 index 68c0a786e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Search/SearchConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 30a56f210bac3f84bbe33c953f453fc5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs deleted file mode 100644 index 2440a03ec..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom shader inspector for the "Mixed Reality Toolkit/TextShader3D". - /// - public class Text3DShaderGUI : ShaderGUI - { - protected bool firstTimeApply = true; - protected MaterialProperty cullMode; - - - public override void OnGUI(MaterialEditor matEditor, MaterialProperty[] props) - { - // Make sure that needed setup (i.e. keywords/renderqueue) are set up if we're switching from an existing material. - // Do this before any GUI code has been issued to prevent layout issues in subsequent GUILayout statements (case 780071) - if (firstTimeApply) - { - firstTimeApply = false; - } - - EditorGUIUtility.labelWidth = 0f; - - EditorGUI.BeginChangeCheck(); - { - base.OnGUI(matEditor, props); - } - } - - protected static class Styles - { - public static GUIContent cullMode = new GUIContent("Culling Mode", "Type of culling to apply to polygons - typically this is set to backfacing"); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs.meta b/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs.meta deleted file mode 100644 index 980f43d0b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Inspectors/Utilities/Text3DShaderGUI.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a439923e28966fe4db05edd83ab80656 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces.meta b/AR-ROS/Assets/MRTK/Core/Interfaces.meta deleted file mode 100644 index e6809f52d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0245170f8eec47af882ed98c0e547a78 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Audio.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Audio.meta deleted file mode 100644 index 0db3d8e27..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Audio.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a213c231b5994d24e8be6cea35786aaa -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs deleted file mode 100644 index e59bdcbdc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Audio -{ - /// - /// Interface that should be implemented by any class that wishes to influence how an audio source sounds. - /// - public interface IAudioInfluencer - { - /// - /// Applies an audio effect. - /// - /// The GameObject on which the effect is to be applied. - void ApplyEffect(GameObject soundEmittingObject); - - /// - /// Removes a previously applied audio effect. - /// - /// The GameObject from which the effect is to be removed. - void RemoveEffect(GameObject soundEmittingObject); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs.meta deleted file mode 100644 index f50741d0c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Audio/IAudioInfluencer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 81f564f225cd7b14ebda87c21f917436 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem.meta deleted file mode 100644 index 10e4ade95..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 50bc3110a1934f58b5db6a9c86c4b2a1 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs deleted file mode 100644 index 05e69f59a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - public interface IMixedRealityBoundaryHandler : IEventSystemHandler - { - /// - /// Raised when the boundary visualization has changed. - /// - void OnBoundaryVisualizationChanged(BoundaryEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs.meta deleted file mode 100644 index 3da886746..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundaryHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 282c17a8465342c6b251810eeabf95b6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs deleted file mode 100644 index e766981fd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - /// - /// Manager interface for a Boundary system in the Mixed Reality Toolkit - /// All replacement systems for providing Boundary functionality should derive from this interface - /// - public interface IMixedRealityBoundarySystem : IMixedRealityEventSystem, IMixedRealityEventSource - { - /// - /// Typed representation of the ConfigurationProfile property. - /// - MixedRealityBoundaryVisualizationProfile BoundaryVisualizationProfile { get; } - - /// - /// The scale (ex: World Scale) of the experience. - /// - ExperienceScale Scale { get; set; } - - /// - /// The height of the play space, in meters. - /// - /// - /// This is used to create a three dimensional boundary volume. - /// - float BoundaryHeight { get; set; } - - /// - /// Enable / disable floor rendering. - /// - bool ShowFloor { get; set; } - - /// - /// The physics layer that the generated floor is assigned to. - /// - int FloorPhysicsLayer { get; set; } - - /// - /// Enable / disable play area rendering. - /// - bool ShowPlayArea { get; set; } - - /// - /// The physics layer that the generated play area is assigned to. - /// - int PlayAreaPhysicsLayer { get; set; } - - /// - /// Enable / disable tracked area rendering. - /// - bool ShowTrackedArea { get; set; } - - /// - /// The physics layer that the generated tracked area is assigned to. - /// - int TrackedAreaPhysicsLayer { get; set; } - - /// - /// Enable / disable boundary wall rendering. - /// - bool ShowBoundaryWalls { get; set; } - - /// - /// The physics layer that the generated boundary walls are assigned to. - /// - int BoundaryWallsPhysicsLayer { get; set; } - - /// - /// Enable / disable ceiling rendering. - /// - /// - /// The ceiling is defined as a GameObject positioned above the floor. - /// - bool ShowBoundaryCeiling { get; set; } - - /// - /// The physics layer that the generated boundary ceiling is assigned to. - /// - int CeilingPhysicsLayer { get; set; } - - /// - /// Two dimensional representation of the geometry of the boundary, as provided - /// by the platform. - /// - /// - /// BoundaryGeometry should be treated as the outline of the player's space, placed - /// on the floor. - /// - Edge[] Bounds { get; } - - /// - /// Indicates the height of the floor, in relation to the coordinate system origin. - /// - /// - /// If a floor has been located, FloorHeight.HasValue will be true, otherwise it will be false. - /// - float? FloorHeight { get; } - - /// - /// Determines if a location is within the specified area of the boundary space. - /// - /// The location to be checked. - /// The type of boundary space being checked. - /// True if the location is within the specified area of the boundary space. - /// - /// Use: - /// BoundaryType.PlayArea for the inscribed volume - /// BoundaryType.TrackedArea for the area defined by the boundary edges. - /// - bool Contains(Vector3 location, BoundaryType boundaryType = BoundaryType.TrackedArea); - - /// - /// Returns the description of the inscribed rectangular bounds. - /// - /// The center of the rectangle. - /// The orientation of the rectangle. - /// The width of the rectangle. - /// The height of the rectangle. - /// True if an inscribed rectangle was found in the boundary geometry, false otherwise. - bool TryGetRectangularBoundsParams(out Vector2 center, out float angle, out float width, out float height); - - /// - /// Gets the GameObject that represents the user's floor. - /// - /// The floor visualization object or null if one does not exist. - GameObject GetFloorVisualization(); - - /// - /// Gets the GameObject that represents the user's play area. - /// - /// The play area visualization object or null if one does not exist. - GameObject GetPlayAreaVisualization(); - - /// - /// Gets the GameObject that represents the user's tracked area. - /// - /// The tracked area visualization object or null if one does not exist. - GameObject GetTrackedAreaVisualization(); - - /// - /// Gets the GameObject that represents the user's boundary walls. - /// - /// The boundary wall visualization object or null if one does not exist. - GameObject GetBoundaryWallVisualization(); - - /// - /// Gets the GameObject that represents the upper surface of the user's boundary. - /// - /// The boundary ceiling visualization object or null if one does not exist. - GameObject GetBoundaryCeilingVisualization(); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs.meta deleted file mode 100644 index ef11d5443..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/BoundarySystem/IMixedRealityBoundarySystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 42db2815b02f4cba8f662361c5892881 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem.meta deleted file mode 100644 index 05239e9f1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 98c6d6b25579ad24888e894ef05229d4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs deleted file mode 100644 index d65c138d8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.CameraSystem -{ - /// - /// Interface defining the a camera system settings provider. - /// - public interface IMixedRealityCameraSettingsProvider : IMixedRealityDataProvider - { - /// - /// Returns whether or not the current display rendering mode is opaque. - /// - bool IsOpaque { get; } - - /// - /// Applies provider specific configuration settings. - /// - void ApplyConfiguration(); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs.meta deleted file mode 100644 index ab5c58c7d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSettingsProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 64f1f64838b4a4845a603e7853c8537b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs deleted file mode 100644 index 4fdcf2fbf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.CameraSystem -{ - /// - /// Manager interface for a camera system in the Mixed Reality Toolkit. - /// The camera system is expected to manage settings on the main camera. - /// It should update the camera's clear settings, render mask, etc based on platform. - /// - public interface IMixedRealityCameraSystem : IMixedRealityEventSystem, IMixedRealityEventSource, IMixedRealityService - { - /// - /// Typed representation of the ConfigurationProfile property. - /// - MixedRealityCameraProfile CameraProfile { get; } - - /// - /// Is the current camera displaying on an opaque (VR / immersive) or a transparent (AR) device - /// - bool IsOpaque { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs.meta deleted file mode 100644 index 8d3148552..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/CameraSystem/IMixedRealityCameraSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 08a26eaf5a0b88a47b3fb9a7276eab74 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices.meta deleted file mode 100644 index 55e18d345..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fc9b13d2f628440480e178098be16a7b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs deleted file mode 100644 index 31c7f6d9a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Mixed Reality Toolkit controller definition, used to manage a specific controller type - /// - public interface IMixedRealityController - { - /// - /// Is the controller enabled? - /// - bool Enabled { get; set; } - - /// - /// Outputs the current state of the Input Source, whether it is tracked or not. As defined by the SDK / Unity. - /// - TrackingState TrackingState { get; } - - /// - /// The designated hand that the Input Source is managing, as defined by the SDK / Unity. - /// - Handedness ControllerHandedness { get; } - - /// - /// The registered Input Source for this controller - /// - IMixedRealityInputSource InputSource { get; } - - /// - /// The controller's "Visual" Component in the scene. - /// - IMixedRealityControllerVisualizer Visualizer { get; } - - /// - /// Indicates that this controller is currently providing position data. - /// - /// - /// This value may change during usage for some controllers. As a best practice, - /// be sure to check this value before using position data. - /// - bool IsPositionAvailable { get; } - - /// - /// Indicates the accuracy of the position data being reported. - /// - bool IsPositionApproximate { get; } - - /// - /// Indicates that this controller is currently providing rotation data. - /// - /// - /// This value may change during usage for some controllers. As a best practice, - /// be sure to check this value before using rotation data. - /// - bool IsRotationAvailable { get; } - - /// - /// Mapping definition for this controller, linking the Physical inputs to logical Input System Actions - /// - MixedRealityInteractionMapping[] Interactions { get; } - - Vector3 AngularVelocity { get; } - - Vector3 Velocity { get; } - - /// - /// Some controllers such as articulated should only be able - /// to invoke pointing/distant interactions in certain poses. - /// - bool IsInPointingPose { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs.meta deleted file mode 100644 index f91547e79..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9fd9ec48a63249f0b202c49d33fa3db4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs deleted file mode 100644 index f8e68679c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Basic interface for synchronizing to a controller pose. - /// - public interface IMixedRealityControllerPoseSynchronizer : IMixedRealitySourcePoseHandler, - IMixedRealityInputHandler, - IMixedRealityInputHandler, - IMixedRealityInputHandler, - IMixedRealityInputHandler, - IMixedRealityInputHandler, - IMixedRealityInputHandler - { - /// - /// The controller handedness this component is synchronized with. - /// - Handedness Handedness { get; } - - /// - /// Should this GameObject clean itself up when its controller is lost? - /// - /// It's up to the implementation to properly destroy the GameObject's this interface will implement. - bool DestroyOnSourceLost { get; set; } - - /// - /// The current controller reference. - /// - IMixedRealityController Controller { get; set; } - - /// - /// Should the Transform's position be driven from the source pose or from input handler? - /// - bool UseSourcePoseData { get; set; } - - /// - /// The input action that will drive the Transform's pose, position, or rotation. - /// - MixedRealityInputAction PoseAction { get; set; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs.meta deleted file mode 100644 index 38ed05da5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerPoseSynchronizer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 486b6623913f0da47ac5e217c667f63a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs deleted file mode 100644 index 961669345..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public interface IMixedRealityControllerVisualizer - { - /// - /// The GameObject reference for this controller. - /// - /// - /// This reference may not always be available when called. - /// - GameObject GameObjectProxy { get; } - - /// - /// The current controller reference. - /// - IMixedRealityController Controller { get; set; } - - // TODO add defined elements or transforms? - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs.meta deleted file mode 100644 index 281d44b67..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityControllerVisualizer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d023474c78f40024d822e27a737ee2c2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs deleted file mode 100644 index 5226acd58..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Threading.Tasks; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Mixed Reality Toolkit controller definition, used to manage a specific controller type - /// - public interface IMixedRealityDictationSystem : IMixedRealityInputDeviceManager - { - /// - /// Is the system currently listing for dictation input? - /// - bool IsListening { get; } - - /// - /// Turns on the dictation recognizer and begins recording audio from the default microphone. - /// - /// GameObject listening for the dictation input. - /// The time length in seconds before dictation recognizer session ends due to lack of audio input in case there was no audio heard in the current session. - /// The time length in seconds before dictation recognizer session ends due to lack of audio input. - /// Length in seconds for the manager to listen. - /// Optional: The microphone device to listen to. - void StartRecording(GameObject listener, float initialSilenceTimeout = 5f, float autoSilenceTimeout = 20f, int recordingTime = 10, string micDeviceName = ""); - - /// - /// Turns on the dictation recognizer and begins recording audio from the default microphone. - /// - /// GameObject listening for the dictation input. - /// The time length in seconds before dictation recognizer session ends due to lack of audio input in case there was no audio heard in the current session. - /// The time length in seconds before dictation recognizer session ends due to lack of audio input. - /// Length in seconds for the manager to listen. - /// Optional: The microphone device to listen to. - Task StartRecordingAsync(GameObject listener, float initialSilenceTimeout = 5f, float autoSilenceTimeout = 20f, int recordingTime = 10, string micDeviceName = ""); - - /// - /// Ends the recording session. - /// - void StopRecording(); - - /// - /// Ends the recording session. - /// - /// AudioClip of the last recording session. - Task StopRecordingAsync(); - - /// - /// Get the audio clip associated with the current session. - /// - AudioClip AudioClip { get; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs.meta deleted file mode 100644 index e76e85ca7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityDictationSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c8554f03db9b33740ab820dd4fd37ea3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs deleted file mode 100644 index b3d4b0152..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Hand definition, used to provide access to hand joints and other data. - /// - public interface IMixedRealityHand : IMixedRealityController - { - /// - /// Get the current pose of a hand joint. - /// - /// - /// Hand bones should be oriented along the Z-axis, with the Y-axis indicating the "up" direction, - /// i.e. joints rotate primarily around the X-axis. - /// - bool TryGetJoint(TrackedHandJoint joint, out MixedRealityPose pose); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs.meta deleted file mode 100644 index f9e29c588..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3ab069219f8127a4d9ebeda74f8e9010 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs deleted file mode 100644 index d5c6146d4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Mixed Reality Toolkit device definition, used to instantiate and manage a specific device / SDK - /// - public interface IMixedRealityHandJointService : IMixedRealityInputDeviceManager - { - /// - /// Get a game object following the hand joint. - /// - Transform RequestJointTransform(TrackedHandJoint joint, Handedness handedness); - - bool IsHandTracked(Handedness handedness); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs.meta deleted file mode 100644 index 202c20997..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandJointService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f143d7e47a172cc4cadf43c00018ecbd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs deleted file mode 100644 index f1325b066..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine; -using System; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Hand visualization definition, used to provide access to hand joint objects. - /// - public interface IMixedRealityHandVisualizer : IMixedRealityControllerVisualizer - { - /// - /// Get a game object following the hand joint. - /// - [Obsolete("Use HandJointUtils.TryGetJointPose instead of this")] - bool TryGetJointTransform(TrackedHandJoint joint, out Transform jointTransform); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs.meta deleted file mode 100644 index 2a3248502..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityHandVisualizer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 34346938790e6944a98e82d47cccf0e1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs deleted file mode 100644 index 3002cc702..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Mixed Reality Toolkit input device definition, used to instantiate and manage one or more input devices - /// - public interface IMixedRealityInputDeviceManager : IMixedRealityDataProvider - { - /// - /// Retrieve all controllers currently registered with this device at runtime (if direct access is required) - /// - IMixedRealityController[] GetActiveControllers(); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs.meta deleted file mode 100644 index b25dfba4a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealityInputDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9cf44b5c37b34085aaee4b836bbae7b9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs deleted file mode 100644 index 62864582a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Mixed Reality Toolkit controller definition, used to manage a specific controller type - /// - public interface IMixedRealitySpeechSystem : IMixedRealityInputDeviceManager - { - /// - /// Query whether or not the speech system is active - /// - bool IsRecognitionActive { get; } - - /// - /// Make sure the keyword recognizer is on, then stop it. - /// Otherwise, leave it alone because it's already in the desired state. - /// - void StartRecognition(); - - /// - /// Make sure the keyword recognizer is on, then stop it. - /// Otherwise, leave it alone because it's already in the desired state. - /// - void StopRecognition(); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs.meta deleted file mode 100644 index 4277be533..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Devices/IMixedRealitySpeechSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 700f5036a6f8d534e8e09bab560a5055 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics.meta deleted file mode 100644 index 72600be0e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fdb29ecfbf1ada9429e9aba150015eec -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs deleted file mode 100644 index 84252513d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Diagnostics -{ - public interface IMixedRealityDiagnosticsHandler : IEventSystemHandler - { - void OnDiagnosticSettingsChanged(DiagnosticsEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs.meta deleted file mode 100644 index 70d7f1f82..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e61188f24a411244b9282496e0d9eee7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs deleted file mode 100644 index e8f913b8d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - - -namespace Microsoft.MixedReality.Toolkit.Diagnostics -{ - /// - /// The interface contract that defines the Diagnostics system in the Mixed Reality Toolkit - /// - public interface IMixedRealityDiagnosticsSystem : IMixedRealityEventSystem, IMixedRealityEventSource - { - /// - /// Typed representation of the ConfigurationProfile property. - /// - MixedRealityDiagnosticsProfile DiagnosticsSystemProfile { get; } - - /// - /// Enable / disable diagnostic display. - /// - /// - /// When set to true, visibility settings for individual diagnostics are honored. When set to false, - /// all visualizations are hidden. - /// - bool ShowDiagnostics { get; set; } - - /// - /// Enable / disable the profiler display. - /// - bool ShowProfiler { get; set; } - - /// - /// Show or hide the frame info (per frame stats). - /// - bool ShowFrameInfo { get; set; } - - /// - /// Show or hide the memory stats (used, peak, and limit). - /// - bool ShowMemoryStats { get; set; } - - /// - /// The amount of time, in seconds, to collect frames for frame rate calculation. - /// - float FrameSampleRate { get; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs.meta deleted file mode 100644 index d61efb65b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Diagnostics/IMixedRealityDiagnosticsSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: efda54d21264df44381f01543a5d1e70 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem.meta deleted file mode 100644 index a0e16572b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 47525b1c47cc4fb9b78d6757d7f13552 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers.meta deleted file mode 100644 index 051d48527..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5e2af3185a53488a95ccaa8b47ec8cbb -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs deleted file mode 100644 index 43c4f104b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Interface to implement generic events. - /// - public interface IMixedRealityEventHandler : IEventSystemHandler - { - void OnEventRaised(GenericBaseEventData eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs.meta deleted file mode 100644 index 1c729813b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/Handlers/IMixedRealityEventHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7d0db04e74cf4d3fb83c02ad4cbe2e2a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs deleted file mode 100644 index 42c1a37e2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Interface to implement an event source. - /// - public interface IMixedRealityEventSource : IEqualityComparer - { - /// - /// The unique source id of this event source. - /// - uint SourceId { get; } - - /// - /// The name of this event source. - /// - string SourceName { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs.meta deleted file mode 100644 index 4de292b3c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSource.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 11fa9d5e4d604940b1e86ff8536e0d96 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs deleted file mode 100644 index 55a687886..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Interface used to implement an Event System that is compatible with the Mixed Reality Toolkit. - /// - public interface IMixedRealityEventSystem : IMixedRealityService - { - /// - /// List of event listeners that are registered to this Event System. - /// - /// - /// This collection is obsolete and is replaced by handler-based internal storage. It will be removed in a future release. - /// - List EventListeners { get; } - - /// - /// The main function for handling and forwarding all events to their intended recipients. - /// - /// See: https://docs.unity3d.com/Manual/MessagingSystem.html - /// Event Handler Interface Type - /// Event Data - /// Event Handler delegate - void HandleEvent(BaseEventData eventData, ExecuteEvents.EventFunction eventHandler) where T : IEventSystemHandler; - - /// - /// Registers a GameObject to listen for events from this Event System. - /// - /// GameObject to add to . - [Obsolete("Register using a game object causes all components of this object to receive global events of all types. " + - "Use RegisterHandler<> methods instead to avoid unexpected behavior.")] - void Register(GameObject listener); - - /// - /// Unregisters a GameObject from listening for events from this Event System. - /// - /// GameObject to remove from . - [Obsolete("Unregister using a game object will disable listening of global events for all components of this object. " + - "Use UnregisterHandler<> methods instead to avoid unexpected behavior.")] - void Unregister(GameObject listener); - - /// - /// Registers the given handler as a global listener for all events handled via the T interface. - /// T must be an interface type, not a class type, derived from IEventSystemHandler. - /// - /// - /// If you want to register a single C# object as global handler for several event handling interfaces, - /// you must call this function for each interface type. - /// - /// Handler to receive global input events of specified handler type. - void RegisterHandler(IEventSystemHandler handler) where T : IEventSystemHandler; - - /// - /// Unregisters the given handler as a global listener for all events handled via the T interface. - /// T must be an interface type, not a class type, derived from IEventSystemHandler. - /// - /// - /// If a single C# object listens to global input events for several event handling interfaces, - /// you must call this function for each interface type. - /// - /// Handler to stop receiving global input events of specified handler type. - void UnregisterHandler(IEventSystemHandler handler) where T : IEventSystemHandler; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs.meta deleted file mode 100644 index 5fa4bfd6c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/EventSystem/IMixedRealityEventSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 286e431bafbe42cf84715c6ac7aa6789 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs deleted file mode 100644 index adb0a70e8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Defines configuration data for to be registered for a on startup. - /// Generally, used for configuring the extended interface, - /// - public interface IMixedRealityServiceConfiguration - { - /// - /// The concrete type for the system, feature or manager. - /// - SystemType ComponentType { get; } - - /// - /// The name of the system, feature or manager. - /// - string ComponentName { get; } - - /// - /// The priority this system, feature or manager will be initialized in. - /// - uint Priority { get; } - - /// - /// The runtime platform(s) to run this service. - /// - SupportedPlatforms RuntimePlatform { get; } - - /// - /// Profile configuration associated with the service - /// - BaseMixedRealityProfile Profile { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs.meta deleted file mode 100644 index 92f74ea5d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/IMixedRealityServiceConfiguration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6e355f7aab195934a9fe4491d544eb10 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem.meta deleted file mode 100644 index 5fe308ba3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c4acbfb471a74f19969e6922b13fc2c0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers.meta deleted file mode 100644 index 6fbbe0dec..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4c67a7766a004efea224ebb4afc5d816 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs deleted file mode 100644 index 7799957fb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Base interface for all input handlers. This allows us to use ExecuteEvents.ExecuteHierarchy<IMixedRealityBaseInputHandler> - /// to send an event to all input handling interfaces. - /// - public interface IMixedRealityBaseInputHandler : IEventSystemHandler { } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs.meta deleted file mode 100644 index b0cc49b6a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityBaseInputHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f95009a5cde168a4a859ad7cb67865f4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs deleted file mode 100644 index 821ac8fe7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement dictation events. - /// - public interface IMixedRealityDictationHandler : IEventSystemHandler - { - void OnDictationHypothesis(DictationEventData eventData); - - void OnDictationResult(DictationEventData eventData); - - void OnDictationComplete(DictationEventData eventData); - - void OnDictationError(DictationEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs.meta deleted file mode 100644 index 7d07e19a4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityDictationHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a37a6a01135741a1944e07ed50d2c124 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs deleted file mode 100644 index a809539de..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement to react to focus changed events. - /// - /// - /// The events on this interface are related to those of , whose event have - /// a known ordering with this interface: - /// - /// IMixedRealityFocusChangedHandler::OnBeforeFocusChange - /// IMixedRealityFocusHandler::OnFocusEnter - /// IMixedRealityFocusHandler::OnFocusExit - /// IMixedRealityFocusChangedHandler::OnFocusChanged - /// - /// Because these two interfaces are different, consumers must be wary about having nested - /// hierarchies where some game objects will implement both interfaces, and more deeply nested - /// object within the same parent-child chain that implement a single one of these - such - /// a presence can lead to scenarios where one interface is invoked on the child object, and then - /// the other interface is invoked on the parent object (thus, the parent would "miss" getting - /// the event that the child had already processed). - /// - public interface IMixedRealityFocusChangedHandler : IEventSystemHandler - { - /// - /// Focus event that is raised before the focus is actually changed. - /// - /// Useful for logic that needs to take place before focus changes. - void OnBeforeFocusChange(FocusEventData eventData); - - /// - /// Focus event that is raised when the focused object is changed. - /// - void OnFocusChanged(FocusEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs.meta deleted file mode 100644 index adf34e6ba..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusChangedHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b91cc350429242d88bb747d4ec252dcd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs deleted file mode 100644 index ad20e3c70..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement to react to focus enter/exit. - /// - /// - /// The events on this interface are related to those of , whose event have - /// a known ordering with this interface: - /// - /// IMixedRealityFocusChangedHandler::OnBeforeFocusChange - /// IMixedRealityFocusHandler::OnFocusEnter - /// IMixedRealityFocusHandler::OnFocusExit - /// IMixedRealityFocusChangedHandler::OnFocusChanged - /// - /// Because these two interfaces are different, consumers must be wary about having nested - /// hierarchies where some game objects will implement both interfaces, and more deeply nested - /// object within the same parent-child chain that implement a single one of these - such - /// a presence can lead to scenarios where one interface is invoked on the child object, and then - /// the other interface is invoked on the parent object (thus, the parent would "miss" getting - /// the event that the child had already processed). - /// - public interface IMixedRealityFocusHandler : IEventSystemHandler - { - /// - /// The Focus Enter event is raised on this GameObject whenever a 's focus enters this GameObject's Collider. - /// - void OnFocusEnter(FocusEventData eventData); - - /// - /// The Focus Exit event is raised on this GameObject whenever a 's focus leaves this GameObject's Collider. - /// - void OnFocusExit(FocusEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs.meta deleted file mode 100644 index 245101526..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityFocusHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: badcbd1aec3e4d11897c214a218445d3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs deleted file mode 100644 index 4acce20d9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement for generic gesture input. - /// - public interface IMixedRealityGestureHandler : IMixedRealityBaseInputHandler - { - /// - /// Gesture Started Event. - /// - void OnGestureStarted(InputEventData eventData); - - /// - /// Gesture Updated Event. - /// - void OnGestureUpdated(InputEventData eventData); - - /// - /// Gesture Completed Event. - /// - void OnGestureCompleted(InputEventData eventData); - - /// - /// Gesture Canceled Event. - /// - void OnGestureCanceled(InputEventData eventData); - } - - /// - /// Interface to implement for generic gesture input. - /// - /// The type of data you want to listen for. - public interface IMixedRealityGestureHandler : IMixedRealityGestureHandler - { - /// - /// Gesture Updated Event. - /// - /// - /// The for the associated gesture data. - /// - void OnGestureUpdated(InputEventData eventData); - - /// - /// Gesture Completed Event. - /// - /// - /// The for the associated gesture data. - /// - void OnGestureCompleted(InputEventData eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs.meta deleted file mode 100644 index ce286ad06..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityGestureHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 28000252a8d54132bfda3ea758e86e76 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs deleted file mode 100644 index 0ffcc4a10..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement for hand joint information. - /// - public interface IMixedRealityHandJointHandler : IEventSystemHandler - { - void OnHandJointsUpdated(InputEventData> eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs.meta deleted file mode 100644 index 1fb1c2a0c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandJointHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e77b6a44d74d41748ab1aa33af83d6b7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs deleted file mode 100644 index 64718871f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement for hand mesh information. - /// - public interface IMixedRealityHandMeshHandler : IEventSystemHandler - { - void OnHandMeshUpdated(InputEventData eventData); - } - - /// - /// Stores pointers and transform information for Hand Mesh data provided by current platform. This is the data container for the IMixedRealityHandMeshHandler input system event interface. - /// - public class HandMeshInfo - { - /// - /// Pointer to vertices buffer of the hand mesh in the local coordinate system (i.e relative to center of hand) - /// - public Vector3[] vertices; - - /// - /// Pointer to the triangle indices buffer of the hand mesh. - /// - public int[] triangles; - - /// - /// Pointer to the normals buffer of the hand mesh in the local coordinate system - /// - public Vector3[] normals; - - /// - /// Pointer to UV mapping of the hand mesh triangles - /// - public Vector2[] uvs; - - /// - /// Translation to apply to mesh to go from local coordinates to world coordinates - /// - public Vector3 position; - - /// - /// Rotation to apply to mesh to go from local coordinates to world coordinates - /// - public Quaternion rotation; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs.meta deleted file mode 100644 index 6f0d6d7db..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityHandMeshHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8fd427779c57ec4479f35ec376f56faa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs deleted file mode 100644 index 9cc1f629e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to receive input action events. - /// - public interface IMixedRealityInputActionHandler : IMixedRealityBaseInputHandler - { - /// - /// Received on action start, e.g when a button is pressed or a gesture starts. - /// - /// Input event that triggered the action - void OnActionStarted(BaseInputEventData eventData); - - /// - /// Received on action end, e.g when a button is released or a gesture completed. - /// - /// Input event that triggered the action - void OnActionEnded(BaseInputEventData eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs.meta deleted file mode 100644 index f70893d68..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputActionHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d6023132a99581c458efa56253a9d0dc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs deleted file mode 100644 index 08c32b8f8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement for simple generic input. - /// - public interface IMixedRealityInputHandler : IMixedRealityBaseInputHandler - { - /// - /// Input Up updates from Interactions, Keys, or any other simple input. - /// - void OnInputUp(InputEventData eventData); - - /// - /// Input Down updates from Interactions, Keys, or any other simple input. - /// - void OnInputDown(InputEventData eventData); - } - - /// - /// Interface to implement for more complex generic input. - /// - /// The type of input to listen for. - /// - /// Valid input types: - /// - public interface IMixedRealityInputHandler : IEventSystemHandler - { - /// - /// Raised input event updates from the type of input specified in the interface handler implementation. - /// - /// - /// The is the current input data. - /// - void OnInputChanged(InputEventData eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs.meta deleted file mode 100644 index d6e1e6635..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityInputHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bde99bbbfe91484e833d96b7750d2d61 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs deleted file mode 100644 index 22b099e2f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement to react to simple pointer input. - /// - public interface IMixedRealityPointerHandler : IEventSystemHandler - { - /// - /// When a pointer down event is raised, this method is used to pass along the event data to the input handler. - /// - void OnPointerDown(MixedRealityPointerEventData eventData); - - /// - /// Called every frame a pointer is down. Can be used to implement drag-like behaviors. - /// - void OnPointerDragged(MixedRealityPointerEventData eventData); - - /// - /// When a pointer up event is raised, this method is used to pass along the event data to the input handler. - /// - void OnPointerUp(MixedRealityPointerEventData eventData); - - /// - /// When a pointer clicked event is raised, this method is used to pass along the event data to the input handler. - /// - void OnPointerClicked(MixedRealityPointerEventData eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs.meta deleted file mode 100644 index 1f3011426..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityPointerHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6c2da9f87ba9475f92d43158442b1a12 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs deleted file mode 100644 index 9d4bbc16b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement to react to source - /// - public interface IMixedRealitySourcePoseHandler : IMixedRealitySourceStateHandler - { - /// - /// Raised when the source pose tracking state is changed. - /// - void OnSourcePoseChanged(SourcePoseEventData eventData); - - /// - /// Raised when the source position is changed. - /// - void OnSourcePoseChanged(SourcePoseEventData eventData); - - /// - /// Raised when the source position is changed. - /// - void OnSourcePoseChanged(SourcePoseEventData eventData); - - /// - /// Raised when the source rotation is changed. - /// - void OnSourcePoseChanged(SourcePoseEventData eventData); - - /// - /// Raised when the source pose is changed. - /// - void OnSourcePoseChanged(SourcePoseEventData eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs.meta deleted file mode 100644 index 2ed26bfa3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourcePoseHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ecf9eaab5b5e47edbfc3b77abf357de9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs deleted file mode 100644 index c4a7f2001..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement to react to source state changes, such as when an input source is detected or lost. - /// - public interface IMixedRealitySourceStateHandler : IEventSystemHandler - { - /// - /// Raised when a source is detected. - /// - void OnSourceDetected(SourceStateEventData eventData); - - /// - /// Raised when a source is lost. - /// - void OnSourceLost(SourceStateEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs.meta deleted file mode 100644 index 14fc528cc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySourceStateHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4759df8de83f4bb8a2d799f0867500b9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs deleted file mode 100644 index 8d8964dec..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to implement to react to speech recognition. - /// - public interface IMixedRealitySpeechHandler : IMixedRealityBaseInputHandler - { - void OnSpeechKeywordRecognized(SpeechEventData eventData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs.meta deleted file mode 100644 index 8f9076318..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealitySpeechHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0d1e2379cf3d407f9deed5f30bac3f11 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs deleted file mode 100644 index 19d2f1bd4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Implementation of this interface causes a script to receive notifications of Touch events from HandTrackingInputSources - /// - public interface IMixedRealityTouchHandler : IEventSystemHandler - { - /// - /// When a Touch motion has occurred, this handler receives the event. - /// - /// - /// A Touch motion is defined as occurring within the bounds of an object (transitive). - /// - /// Contains information about the HandTrackingInputSource. - void OnTouchStarted(HandTrackingInputEventData eventData); - - /// - /// When a Touch motion ends, this handler receives the event. - /// - /// - /// A Touch motion is defined as occurring within the bounds of an object (transitive). - /// - /// Contains information about the HandTrackingInputSource. - void OnTouchCompleted(HandTrackingInputEventData eventData); - - /// - /// When a Touch motion is updated, this handler receives the event. - /// - /// - /// A Touch motion is defined as occurring within the bounds of an object (transitive). - /// - /// Contains information about the HandTrackingInputSource. - void OnTouchUpdated(HandTrackingInputEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs.meta deleted file mode 100644 index 9f43cbb5e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/Handlers/IMixedRealityTouchHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 158b5098022d49b4499dbc2f3b8c8df6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs deleted file mode 100644 index 96910710f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface for cursor modifiers that can modify a GameObject's properties. - /// - public interface ICursorModifier : IMixedRealityFocusChangedHandler - { - /// - /// Transform for which this modifies applies its various properties. - /// - Transform HostTransform { get; set; } - - /// - /// How much a 's position should be offset from the surface of the GameObject when overlapping. - /// - Vector3 CursorPositionOffset { get; set; } - - /// - /// Should the snap to the GameObject's position? - /// - bool SnapCursorPosition { get; set; } - - /// - /// Scale of the when looking at this GameObject. - /// - Vector3 CursorScaleOffset { get; set; } - - /// - /// Direction of the offset. - /// - Vector3 CursorNormalOffset { get; set; } - - /// - /// If true, the normal from the pointing vector will be used to orient the instead of the targeted GameObject's normal at point of contact. - /// - bool UseGazeBasedNormal { get; set; } - - /// - /// Should the be hidden when this GameObject is focused? - /// - bool HideCursorOnFocus { get; set; } - - /// - /// animation parameters to set when this GameObject is focused. Leave empty for none. - /// - AnimatorParameter[] CursorParameters { get; } - - /// - /// Indicates whether the should be visible or not. - /// - /// True if should be visible, false if not. - bool GetCursorVisibility(); - - /// - /// Returns the position after considering this modifier. - /// - /// that is being modified. - /// New position for the - Vector3 GetModifiedPosition(IMixedRealityCursor cursor); - - /// - /// Returns the rotation after considering this modifier. - /// - /// that is being modified. - /// New rotation for the - Quaternion GetModifiedRotation(IMixedRealityCursor cursor); - - /// - /// Returns the 's local scale after considering this modifier. - /// - /// that is being modified. - /// New local scale for the - Vector3 GetModifiedScale(IMixedRealityCursor cursor); - - /// - /// Returns the modified Transform for the after considering this modifier. - /// - /// Cursor that is being modified. - /// Modified position. - /// Modified rotation. - /// Modified scale. - void GetModifiedTransform(IMixedRealityCursor cursor, out Vector3 position, out Quaternion rotation, out Vector3 scale); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs.meta deleted file mode 100644 index cca2ffd7e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/ICursorModifier.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 79b14ecc4c264ba8825069142ad5ac03 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs deleted file mode 100644 index c9528fba0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface for defining Input Action Rules - /// - /// - public interface IInputActionRule - { - /// - /// The Base Action that the rule will listen to. - /// - MixedRealityInputAction BaseAction { get; } - - /// - /// The Action to raise if the criteria is met. - /// - MixedRealityInputAction RuleAction { get; } - - /// - /// The criteria to check against for determining if the action should be raised. - /// - T Criteria { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs.meta deleted file mode 100644 index 01cd83a16..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IInputActionRule.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a98a2bbb20b04ca98028558d8055fb17 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs deleted file mode 100644 index abd2cd58a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Cursor Interface for handling input events and setting visibility. - /// - public interface IMixedRealityCursor : IMixedRealityFocusChangedHandler, IMixedRealitySourceStateHandler, IMixedRealityPointerHandler - { - /// - /// The this is associated with. - /// - IMixedRealityPointer Pointer { get; set; } - - /// - /// Surface distance to place the cursor off of the surface at - /// - float SurfaceCursorDistance { get; } - - /// - /// The maximum distance the cursor can be with nothing hit - /// - float DefaultCursorDistance { get; set; } - - /// - /// Position of the . - /// - Vector3 Position { get; } - - /// - /// Rotation of the . - /// - Quaternion Rotation { get; } - - /// - /// Local scale of the . - /// - Vector3 LocalScale { get; } - - /// - /// Sets the visibility of the . - /// - /// True if cursor should be visible, false if not. - void SetVisibility(bool visible); - - /// - /// Utility method to destroy cursor dependencies (e.g. event subscriptions) in the system - /// explicitly in the middle update loop. This is a "replacement" of Unity OnDestroy. - /// Relying on Unity OnDestroy may cause event handler subscription to - /// become invalid at the point of destroying. - /// - void Destroy(); - - /// - /// Is the cursor currently visible? - /// - bool IsVisible { get; } - - /// - /// Sets the visibility of the when the source is detected. - /// - bool SetVisibilityOnSourceDetected { get; set; } - - /// - /// Returns the 's GameObject reference. - /// - /// The GameObject this component is attached to. - GameObject GameObjectReference { get; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs.meta deleted file mode 100644 index 3a4e1ccac..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityCursor.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b9047389c94c4f429c4cfd09dc9375e6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs deleted file mode 100644 index aebd90c49..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Provides eye tracking information. - /// - public interface IMixedRealityEyeGazeDataProvider : IMixedRealityInputDeviceManager - { - IMixedRealityEyeSaccadeProvider SaccadeProvider { get; } - - bool SmoothEyeTracking { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs.meta deleted file mode 100644 index b30a1e0f9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 77a72946dababd840806f46d1679e85b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs deleted file mode 100644 index 5d8b33cea..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Implements the Gaze Provider for an Input Source. - /// - public interface IMixedRealityEyeGazeProvider : IMixedRealityGazeProvider - { - /// - /// Whether eye tracking data is currently been used for gaze rather then head pose. Eye Tracking must be both enabled and have valid data. - /// - bool IsEyeTrackingEnabledAndValid { get; } - - /// - /// Whether eye tracking data is available. It may be unavailable due to timeout or lack of tracking hardware or permissions. - /// - bool IsEyeTrackingDataValid { get; } - - /// - /// Whether the user is eye calibrated. It returns 'null', if the value has not yet received data from the eye tracking system. - /// - bool? IsEyeCalibrationValid { get; } - - /// - /// The most recent eye tracking ray - /// - Ray LatestEyeGaze { get; } - - /// - /// If true, eye-based tracking will be used when available. - /// - /// - /// The usage of eye-based tracking depends on having the Gaze Input permission set - /// and user approved, along with proper device eye calibration. This will fallback to head-based - /// gaze when eye-based tracking is not available. - /// - bool IsEyeTrackingEnabled { get; set; } - - /// - /// DateTime in UTC when the signal was last updated. - /// - DateTime Timestamp { get; } - - /// - /// Tells the eye gaze provider that eye gaze has updated. - /// - /// The provider raising the event. - /// - /// This method is to be called by implementations of the interface, not by application code. - /// - void UpdateEyeGaze(IMixedRealityEyeGazeDataProvider provider, Ray eyeRay, DateTime timestamp); - - /// - /// Tells the eye gaze provider about the eye tracking status (e.g., whether the user is calibrated); - /// - /// The provider raising the event. - /// Boolean whether the user is eye calibrated or not. - /// - /// Note that this function is not invoked when eye tracking is lost - use IsEyeTrackingAvailable - /// to detect when eye tracking is lost. - /// - void UpdateEyeTrackingStatus(IMixedRealityEyeGazeDataProvider provider, bool userIsEyeCalibrated); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs.meta deleted file mode 100644 index cd8888d5e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeGazeProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3006b13bb97c37c448a69d85d88809eb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs deleted file mode 100644 index ceae5893a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Provides eye tracking saccade events. - /// - public interface IMixedRealityEyeSaccadeProvider : IMixedRealityDataProvider - { - /// - /// Triggered when user is saccading across the view (jumping quickly with their eye gaze above a certain threshold in visual angles). - /// - event Action OnSaccade; - - /// - /// Triggered when user is saccading horizontally across the view (jumping quickly with their eye gaze above a certain threshold in visual angles). - /// - event Action OnSaccadeX; - - /// - /// Triggered when user is saccading vertically across the view (jumping quickly with their eye gaze above a certain threshold in visual angles). - /// - event Action OnSaccadeY; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs.meta deleted file mode 100644 index d909d7717..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityEyeSaccadeProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 33a5becdb69c35f4ca9ad5799b09fccb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs deleted file mode 100644 index 5465b6b36..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Delegate type used to handle primary pointer changes. - /// Old and new pointer values can be null to indicate transition from or to no primary pointer, but they won't both be null simultaneously. - /// - public delegate void PrimaryPointerChangedHandler(IMixedRealityPointer oldPointer, IMixedRealityPointer newPointer); - - /// - /// Implements the Focus Provider for handling focus of pointers. - /// - public interface IMixedRealityFocusProvider : IMixedRealityService, IMixedRealitySourceStateHandler, IMixedRealitySpeechHandler - { - /// - /// Maximum distance at which all pointers can collide with a GameObject, unless it has an override extent. - /// - float GlobalPointingExtent { get; } - - /// - /// The layer masks for the focus pointers to raycast against. - /// - LayerMask[] FocusLayerMasks { get; } - - /// - /// The Camera the EventSystem uses to raycast against. - /// - /// Every uGUI canvas in your scene should use this camera as its event camera. - Camera UIRaycastCamera { get; } - - /// - /// Current primary pointer. Determined by the primary pointer selector in use (see MixedRealityPointerProfile.PrimaryPointerSelector). - /// - IMixedRealityPointer PrimaryPointer { get; } - - /// - /// Gets the currently focused object for the pointing source. - /// - /// If the pointing source is not registered, then the Gaze's Focused GameObject is returned. - /// Currently Focused Object. - GameObject GetFocusedObject(IMixedRealityPointer pointingSource); - - /// - /// Gets the currently focused object for the pointing source. - /// - bool TryGetFocusDetails(IMixedRealityPointer pointer, out FocusDetails focusDetails); - - /// - /// Sets the FocusDetails of the specified pointer, overriding the focus point that was currently set. This can be used to change - /// the FocusDetails of a specific pointer even if focus is locked. - /// - /// - /// True if the FocusDetails were set successfully. False if the pointer is not associated with the FocusProvider. - /// - bool TryOverrideFocusDetails(IMixedRealityPointer pointer, FocusDetails focusDetails); - - /// - /// Generate a new unique pointer id. - /// - uint GenerateNewPointerId(); - - /// - /// Checks if the pointer is registered with the Focus Manager. - /// - /// True, if registered, otherwise false. - bool IsPointerRegistered(IMixedRealityPointer pointer); - - /// - /// Registers the pointer with the Focus Manager. - /// - /// True, if the pointer was registered, false if the pointer was previously registered. - bool RegisterPointer(IMixedRealityPointer pointer); - - /// - /// Unregisters the pointer with the Focus Manager. - /// - /// True, if the pointer was unregistered, false if the pointer was not registered. - bool UnregisterPointer(IMixedRealityPointer pointer); - - /// - /// Provides access to all registered pointers of a specified type. - /// - /// The type of pointers to request. Use IMixedRealityPointer to access all pointers. - IEnumerable GetPointers() where T : class, IMixedRealityPointer; - - /// - /// Subscribes to primary pointer changes. - /// - /// Handler to be called when the primary pointer changes - /// When true, the passed in handler will be invoked immediately with the current primary pointer - /// before subscribing. This is useful to avoid having to manually poll the current value. - void SubscribeToPrimaryPointerChanged(PrimaryPointerChangedHandler handler, bool invokeHandlerWithCurrentPointer); - - /// - /// Unsubscribes from primary pointer changes. - /// - /// Handler to unsubscribe - void UnsubscribeFromPrimaryPointerChanged(PrimaryPointerChangedHandler handler); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs.meta deleted file mode 100644 index 2567d82b1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityFocusProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d217e965549b4cd8b18e74340fadc213 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs deleted file mode 100644 index a52972a0a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Implements the Gaze Provider for an Input Source. - /// - public interface IMixedRealityGazeProvider - { - /// - /// Enable or disable the Component attached to the - /// - bool Enabled { get; set; } - - /// - /// The Gaze Input Source for the provider. - /// - IMixedRealityInputSource GazeInputSource { get; } - - /// - /// The Gaze Pointer for the provider. - /// - IMixedRealityPointer GazePointer { get; } - - /// - /// The prefab to be instantiated as the gaze cursor. - /// - GameObject GazeCursorPrefab { set; } - - /// - /// The Gaze Cursor for the provider. - /// - IMixedRealityCursor GazeCursor { get; } - - /// - /// The game object that is currently being gazed at, if any. - /// - GameObject GazeTarget { get; } - - /// - /// HitInfo property gives access to information at the object being gazed at, if any. - /// - MixedRealityRaycastHit HitInfo { get; } - - /// - /// Position at which the gaze manager hit an object. - /// If no object is currently being hit, this will use the last hit distance. - /// - Vector3 HitPosition { get; } - - /// - /// Normal of the point at which the gaze manager hit an object. - /// If no object is currently being hit, this will return the previous normal. - /// - Vector3 HitNormal { get; } - - /// - /// Origin of the gaze. - /// - Vector3 GazeOrigin { get; } - - /// - /// Normal of the gaze. - /// - Vector3 GazeDirection { get; } - - /// - /// The current head velocity. - /// - Vector3 HeadVelocity { get; } - - /// - /// The current head movement direction. - /// - Vector3 HeadMovementDirection { get; } - - /// - /// Get the GameObject reference for this Gaze Provider. - /// - GameObject GameObjectReference { get; } - - /// - /// Notifies this gaze provider of its new hit details. - /// - /// - /// For components that care where the user's looking, we need - /// to separately update the gaze info even if gaze isn't used for focus. - /// - void UpdateGazeInfoFromHit(MixedRealityRaycastHit raycastHit); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs.meta deleted file mode 100644 index 9843416bc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4b972ba7c3ac4c86b25ec2dab258cef0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs deleted file mode 100644 index 7a77e0e2c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Adds ability to override head gaze on a gaze provider. - /// - public interface IMixedRealityGazeProviderHeadOverride - { - /// - /// If true, platform-specific head gaze override is used, when available. Otherwise, the center of the camera frame is used by default. - /// - bool UseHeadGazeOverride { get; set; } - - /// - /// Allows head gaze to be overridden, typically by platform-specific values. - /// - void OverrideHeadGaze(Vector3 position, Vector3 forward); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs.meta deleted file mode 100644 index 7d7bc56a6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityGazeProviderHeadOverride.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 385a6d80d6bdb3f4a99b05f40bce6544 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs deleted file mode 100644 index 5e7435815..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface for an input source. - /// An input source is the origin of user input and generally comes from a physical controller, sensor, or other hardware device. - /// - public interface IMixedRealityInputSource : IMixedRealityEventSource - { - /// - /// Array of pointers associated with this input source. - /// - IMixedRealityPointer[] Pointers { get; } - - /// - /// The type of input source this object represents. - /// - InputSourceType SourceType { get; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs.meta deleted file mode 100644 index 379c23bc9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSource.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 38d425c09afb4b1c9b258a6c3a56697a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs deleted file mode 100644 index 6655c64a5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs +++ /dev/null @@ -1,433 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Manager interface for a Input system in the Mixed Reality Toolkit - /// All replacement systems for providing Input System functionality should derive from this interface - /// - public interface IMixedRealityInputSystem : IMixedRealityEventSystem - { - /// - /// Event that's raised when the Input is enabled. - /// - event Action InputEnabled; - - /// - /// Event that's raised when the Input is disabled. - /// - event Action InputDisabled; - - /// - /// List of the Interaction Input Sources as detected by the input manager like hands or motion controllers. - /// - HashSet DetectedInputSources { get; } - - /// - /// List of s currently detected by the input manager. - /// - /// - /// This property is similar to , as this is a subset of those s in that list. - /// - HashSet DetectedControllers { get; } - - /// - /// Typed representation of the ConfigurationProfile property. - /// - MixedRealityInputSystemProfile InputSystemProfile { get; } - - /// - /// The current Focus Provider that's been implemented by this Input System. - /// - IMixedRealityFocusProvider FocusProvider { get; } - - /// - /// The current Raycast Provider that's been implemented by this Input System. - /// - IMixedRealityRaycastProvider RaycastProvider { get; } - - /// - /// The current Gaze Provider that's been implemented by this Input System. - /// - IMixedRealityGazeProvider GazeProvider { get; } - - /// - /// The current Eye Gaze Provider that's been implemented by this Input System. - /// - IMixedRealityEyeGazeProvider EyeGazeProvider { get; } - - /// - /// Indicates if input is currently enabled or not. - /// - bool IsInputEnabled { get; } - - /// - /// Push a disabled input state onto the Input System. - /// While input is disabled no events will be sent out and the cursor displays - /// a waiting animation. - /// - void PushInputDisable(); - - /// - /// Pop disabled input state. When the last disabled state is - /// popped off the stack input will be re-enabled. - /// - void PopInputDisable(); - - /// - /// Clear the input disable stack, which will immediately re-enable input. - /// - void ClearInputDisableStack(); - - /// - /// Push a game object into the modal input stack. Any input handlers - /// on the game object are given priority to input events before any focused objects. - /// - /// The input handler to push - void PushModalInputHandler(GameObject inputHandler); - - /// - /// Remove the last game object from the modal input stack. - /// - void PopModalInputHandler(); - - /// - /// Clear all modal input handlers off the stack. - /// - void ClearModalInputStack(); - - /// - /// Push a game object into the fallback input stack. Any input handlers on - /// the game object are given input events when no modal or focused objects consume the event. - /// - /// The input handler to push - void PushFallbackInputHandler(GameObject inputHandler); - - /// - /// Remove the last game object from the fallback input stack. - /// - void PopFallbackInputHandler(); - - /// - /// Clear all fallback input handlers off the stack. - /// - void ClearFallbackInputStack(); - - #region Input Events - - #region Input Source Events - - /// - /// Generates a new unique input source id. - /// - /// All Input Sources are required to call this method in their constructor or initialization. - /// a new unique Id for the input source. - uint GenerateNewSourceId(); - - IMixedRealityInputSource RequestNewGenericInputSource(string name, IMixedRealityPointer[] pointers = null, InputSourceType sourceType = InputSourceType.Other); - - /// - /// Raise the event that the Input Source was detected. - /// - /// The detected Input Source. - void RaiseSourceDetected(IMixedRealityInputSource source, IMixedRealityController controller = null); - - /// - /// Raise the event that the Input Source was lost. - /// - /// The lost Input Source. - void RaiseSourceLost(IMixedRealityInputSource source, IMixedRealityController controller = null); - - /// - /// Raise the event that the Input Source's tracking state has changed. - /// - void RaiseSourceTrackingStateChanged(IMixedRealityInputSource source, IMixedRealityController controller, TrackingState state); - - /// - /// Raise the event that the Input Source position was changed. - /// - void RaiseSourcePositionChanged(IMixedRealityInputSource source, IMixedRealityController controller, Vector2 position); - - /// - /// Raise the event that the Input Source position was changed. - /// - void RaiseSourcePositionChanged(IMixedRealityInputSource source, IMixedRealityController controller, Vector3 position); - - /// - /// Raise the event that the Input Source position was changed. - /// - void RaiseSourceRotationChanged(IMixedRealityInputSource source, IMixedRealityController controller, Quaternion rotation); - - /// - /// Raise the event that the Input Source position was changed. - /// - void RaiseSourcePoseChanged(IMixedRealityInputSource source, IMixedRealityController controller, MixedRealityPose position); - - #endregion Input Source Events - - #region Focus Events - - /// - /// Raise the pre-focus changed event. - /// - /// This event is useful for doing logic before the focus changed event. - /// The pointer that the focus change event is raised on. - /// The old focused object. - /// The new focused object. - void RaisePreFocusChanged(IMixedRealityPointer pointer, GameObject oldFocusedObject, GameObject newFocusedObject); - - /// - /// Raise the focus changed event. - /// - /// The pointer that the focus change event is raised on. - /// The old focused object. - /// The new focused object. - void RaiseFocusChanged(IMixedRealityPointer pointer, GameObject oldFocusedObject, GameObject newFocusedObject); - - /// - /// Raise the focus enter event. - /// - /// The pointer that has focus. - /// The GameObject that the pointer has entered focus on. - void RaiseFocusEnter(IMixedRealityPointer pointer, GameObject focusedObject); - - /// - /// Raise the focus exit event. - /// - /// The pointer that has lost focus. - /// The GameObject that the pointer has exited focus on. - void RaiseFocusExit(IMixedRealityPointer pointer, GameObject unfocusedObject); - - #endregion Focus Events - - #region Pointers - - #region Pointer Down - - /// - /// Raise the pointer down event. - /// - /// The pointer where the event originates. - void RaisePointerDown(IMixedRealityPointer pointer, MixedRealityInputAction inputAction, Handedness handedness = Handedness.None, IMixedRealityInputSource inputSource = null); - - #endregion Pointer Down - - #region Pointer Dragged - - /// - /// Raise the pointer dragged event. - /// - /// The pointer where the event originates. - void RaisePointerDragged(IMixedRealityPointer pointer, MixedRealityInputAction inputAction, Handedness handedness = Handedness.None, IMixedRealityInputSource inputSource = null); - - #endregion Pointer Dragged - - #region Pointer Click - - /// - /// Raise the pointer clicked event. - /// - void RaisePointerClicked(IMixedRealityPointer pointer, MixedRealityInputAction inputAction, int count, Handedness handedness = Handedness.None, IMixedRealityInputSource inputSource = null); - - #endregion Pointer Click - - #region Pointer Up - - /// - /// Raise the pointer up event. - /// - void RaisePointerUp(IMixedRealityPointer pointer, MixedRealityInputAction inputAction, Handedness handedness = Handedness.None, IMixedRealityInputSource inputSource = null); - - #endregion Pointer Up - - #endregion Pointers - - #region Generic Input Events - - #region Input Down - - /// - /// Raise the input down event. - /// - void RaiseOnInputDown(IMixedRealityInputSource source, Handedness handedness, MixedRealityInputAction inputAction); - - #endregion Input Down - - #region Input Up - - /// - /// Raise the input up event. - /// - void RaiseOnInputUp(IMixedRealityInputSource source, Handedness handedness, MixedRealityInputAction inputAction); - - #endregion Input Up - - #region Float Input Changed - - /// - /// Raise Float Input Changed. - /// - void RaiseFloatInputChanged(IMixedRealityInputSource source, Handedness handedness, MixedRealityInputAction inputAction, float inputValue); - - #endregion Float Input Changed - - #region Input Position Changed - - /// - /// Raise the 2 degrees of freedom input event. - /// - void RaisePositionInputChanged(IMixedRealityInputSource source, Handedness handedness, MixedRealityInputAction inputAction, Vector2 position); - - /// - /// Raise the 3 degrees of freedom input event. - /// - void RaisePositionInputChanged(IMixedRealityInputSource source, Handedness handedness, MixedRealityInputAction inputAction, Vector3 position); - - #endregion Input Position Changed - - #region Input Rotation Changed - - /// - /// Raise the 3 degrees of freedom input event. - /// - void RaiseRotationInputChanged(IMixedRealityInputSource source, Handedness handedness, MixedRealityInputAction inputAction, Quaternion rotation); - - #endregion Input Rotation Changed - - #region Input Pose Changed - - /// - /// Raise the 6 degrees of freedom input event. - /// - void RaisePoseInputChanged(IMixedRealityInputSource source, Handedness handedness, MixedRealityInputAction inputAction, MixedRealityPose inputData); - - #endregion Input Pose Changed - - #endregion Generic Input Events - - #region Generic Gesture Events - - /// - /// Raise the Gesture Started Event. - /// - void RaiseGestureStarted(IMixedRealityController controller, MixedRealityInputAction action); - - /// - /// Raise the Gesture Updated Event. - /// - void RaiseGestureUpdated(IMixedRealityController controller, MixedRealityInputAction action); - - /// - /// Raise the Gesture Updated Event. - /// - void RaiseGestureUpdated(IMixedRealityController controller, MixedRealityInputAction action, Vector2 inputData); - - /// - /// Raise the Gesture Updated Event. - /// - void RaiseGestureUpdated(IMixedRealityController controller, MixedRealityInputAction action, Vector3 inputData); - - /// - /// Raise the Gesture Updated Event. - /// - void RaiseGestureUpdated(IMixedRealityController controller, MixedRealityInputAction action, Quaternion inputData); - - /// - /// Raise the Gesture Updated Event. - /// - void RaiseGestureUpdated(IMixedRealityController controller, MixedRealityInputAction action, MixedRealityPose inputData); - - /// - /// Raise the Gesture Completed Event. - /// - void RaiseGestureCompleted(IMixedRealityController controller, MixedRealityInputAction action); - - /// - /// Raise the Gesture Completed Event. - /// - void RaiseGestureCompleted(IMixedRealityController controller, MixedRealityInputAction action, Vector2 inputData); - - /// - /// Raise the Gesture Completed Event. - /// - void RaiseGestureCompleted(IMixedRealityController controller, MixedRealityInputAction action, Vector3 inputData); - - /// - /// Raise the Gesture Completed Event. - /// - void RaiseGestureCompleted(IMixedRealityController controller, MixedRealityInputAction action, Quaternion inputData); - - /// - /// Raise the Gesture Completed Event. - /// - void RaiseGestureCompleted(IMixedRealityController controller, MixedRealityInputAction action, MixedRealityPose inputData); - - /// - /// Raise the Gesture Canceled Event. - /// - void RaiseGestureCanceled(IMixedRealityController controller, MixedRealityInputAction action); - - #endregion - - #region Speech Keyword Events - - /// - /// - /// - void RaiseSpeechCommandRecognized(IMixedRealityInputSource source, RecognitionConfidenceLevel confidence, TimeSpan phraseDuration, DateTime phraseStartTime, SpeechCommands command); - - #endregion Speech Keyword Events - - #region Dictation Events - - /// - /// - /// - void RaiseDictationHypothesis(IMixedRealityInputSource source, string dictationHypothesis, AudioClip dictationAudioClip = null); - - /// - /// - /// - void RaiseDictationResult(IMixedRealityInputSource source, string dictationResult, AudioClip dictationAudioClip = null); - - /// - /// - /// - void RaiseDictationComplete(IMixedRealityInputSource source, string dictationResult, AudioClip dictationAudioClip); - - /// - /// - /// - void RaiseDictationError(IMixedRealityInputSource source, string dictationResult, AudioClip dictationAudioClip = null); - - #endregion Dictation Events - - #region Hand Events - - /// - /// Notify system that articulated hand joint info has been updated - /// - void RaiseHandJointsUpdated(IMixedRealityInputSource source, Handedness handedness, IDictionary jointPoses); - - /// - /// Notify system that articulated hand mesh has been updated - /// - void RaiseHandMeshUpdated(IMixedRealityInputSource source, Handedness handedness, HandMeshInfo handMeshInfo); - - void RaiseOnTouchStarted(IMixedRealityInputSource source, IMixedRealityController controller, Handedness handedness, Vector3 touchPoint); - - void RaiseOnTouchUpdated(IMixedRealityInputSource source, IMixedRealityController controller, Handedness handedness, Vector3 touchPoint); - - void RaiseOnTouchCompleted(IMixedRealityInputSource source, IMixedRealityController controller, Handedness handedness, Vector3 touchPoint); - - #endregion Hand Events - - #endregion Input Events - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs.meta deleted file mode 100644 index 47d1deae5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityInputSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b6d2691bbdd642b59032c4eea041b0ae -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs deleted file mode 100644 index cd171cc7d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface defining a mouse input device manager. - /// - public interface IMixedRealityMouseDeviceManager : IMixedRealityInputDeviceManager - { - /// - /// Typed representation of the ConfigurationProfile property. - /// - [ObsoleteAttribute("The MouseInputProfile property has been deprecated and will be removed in a future version of MRTK.")] - MixedRealityMouseInputProfile MouseInputProfile { get; } - - /// - /// Gets or sets a multiplier value used to adjust the speed of the mouse cursor. - /// - float CursorSpeed { get; set; } - - /// - /// Gets or sets a multiplier value used to adjust the speed of the mouse wheel. - /// - float WheelSpeed { get; set; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs.meta deleted file mode 100644 index 718e124ab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMouseDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b014c73ce8cb9004eac769b5b3271ac3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs deleted file mode 100644 index 3cdf32a25..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface for handling mouse pointers. - /// - public interface IMixedRealityMousePointer : IMixedRealityPointer - { - /// - /// Should the mouse cursor be hidden when no active input is received? - /// - bool HideCursorWhenInactive { get; } - - /// - /// What is the movement threshold to reach before un-hiding mouse cursor? - /// - float MovementThresholdToUnHide { get; } - - /// - /// How long should it take before the mouse cursor is hidden? - /// - float HideTimeout { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs.meta deleted file mode 100644 index ec262e4d8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityMousePointer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fca5c6f34d9dcb24c9cc8c4f601fe645 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs deleted file mode 100644 index d37062c91..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public interface IMixedRealityNearPointer : IMixedRealityPointer - { - /// - /// Returns true if the hand is near anything that's grabbable - /// Currently performs a sphere cast in the direction of the hand ray. - /// Currently anything that has a collider is considered "Grabbable" - /// Eventually we need to filter based on things that can respond - /// to grab events. - /// - bool IsNearObject { get; } - - /// - /// For near pointer we may want to draw a tether between the pointer - /// and the object. - /// - /// The visual grasp point (average of index and thumb) may actually be different from the pointer - /// position (the palm). - /// - /// This method provides a mechanism to get the visual grasp point. - /// - /// NOTE: Not all near pointers have a grasp point (for example a poke pointer). - /// - /// Out parameter filled with the grasp position if available, otherwise Vector3.zero. - /// True if a grasp point was retrieved, false if not. - bool TryGetNearGraspPoint(out Vector3 position); - - - /// - /// Near pointers often interact with surfaces. - /// - /// This method provides a mechanism to get the distance to the closest surface the near pointer is interacting with. - /// - /// - /// Out parameter filled with the distance along the surface normal from the surface to the pointer if available, otherwise 0.0f. - /// True if a distance was retrieved, false if not. - bool TryGetDistanceToNearestSurface(out float distance); - - /// - /// Near pointers often interact with surfaces. - /// - /// This method provides a mechanism to get the normal of the closest surface the near pointer is interacting with. - /// - /// - /// Out parameter filled with the surface normal if available, otherwise Vector3.zero. - /// True if a normal was retrieved, false if not. - bool TryGetNormalToNearestSurface(out Vector3 normal); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs.meta deleted file mode 100644 index 925da44b6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityNearPointer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 285d3614d28f2544787af10db52aae48 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs deleted file mode 100644 index ed8f3a130..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using System.Collections; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface for handling pointers. - /// - public interface IMixedRealityPointer : IEqualityComparer - { - /// - /// The pointer's current controller reference. - /// - IMixedRealityController Controller { get; set; } - - /// - /// This pointer's id. - /// - uint PointerId { get; } - - /// - /// This pointer's name. - /// - string PointerName { get; set; } - - /// - /// This pointer's input source parent. - /// - IMixedRealityInputSource InputSourceParent { get; } - - /// - /// The pointer's cursor. - /// - IMixedRealityCursor BaseCursor { get; set; } - - /// - /// The currently active cursor modifier. - /// - ICursorModifier CursorModifier { get; set; } - - /// - /// Is the pointer active and have the conditions for the interaction been satisfied to enable the interaction? - /// - bool IsInteractionEnabled { get; } - - /// - /// Controls whether the pointer dispatches input.. - /// - bool IsActive { get; set; } - - /// - /// Is the focus for this pointer currently locked? - /// - bool IsFocusLocked { get; set; } - - /// - /// Specifies whether the pointer's target position (cursor) is locked to the target object when focus is locked. - /// - bool IsTargetPositionLockedOnFocusLock { get; set; } - - /// - /// The scene query rays. - /// - RayStep[] Rays { get; } - - /// - /// The physics layers to use when performing scene queries. - /// - /// If set, will override the 's default scene query layer mask array. - /// - /// Allow the pointer to hit SR, but first prioritize any DefaultRaycastLayers (potentially behind SR) - /// - /// - LayerMask[] PrioritizedLayerMasksOverride { get; set; } - - /// - /// The currently focused target. - /// - IMixedRealityFocusHandler FocusTarget { get; set; } - - /// - /// The scene query pointer result. - /// - IPointerResult Result { get; set; } - - /// - /// The type of physics scene query to use. - /// - SceneQueryType SceneQueryType { get; set; } - - /// - /// The radius to use when is set to Sphere or SphereColliders. - /// - float SphereCastRadius { get; set; } - - /// - /// Pointer position. - /// - Vector3 Position { get; } - - /// - /// Pointer rotation. - /// - Quaternion Rotation { get; } - - /// - /// Called before performing the scene query. - /// - void OnPreSceneQuery(); - - /// - /// Called after performing the scene query. - /// - void OnPostSceneQuery(); - - /// - /// Called during the scene query just before the current pointer target changes. - /// - void OnPreCurrentPointerTargetChange(); - - /// - /// Resets pointer to initial state. After invoked pointer should be functional and ready for re-use. - /// - /// - /// Useful for caching and recycling of pointers - /// - void Reset(); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs.meta deleted file mode 100644 index 29269e266..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 372e20af77e5430e8cd714418544de6b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs deleted file mode 100644 index 7fcc0397c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface for handling groups of pointers resolving conflicts between them. - /// E.g., ensuring that far pointers are disabled when a near pointer is active. - /// - public interface IMixedRealityPointerMediator - { - void RegisterPointers(IMixedRealityPointer[] pointers); - void UnregisterPointers(IMixedRealityPointer[] pointers); - - void UpdatePointers(); - - /// - /// Called to set the pointer preferences of the current input and focus - /// configuration. - /// - /// - /// These preferences can be used by the pointer mediator to determine runtime - /// preferences set by the caller (for example, the caller could request to turn - /// off all hand rays). It's possible that some of these preferences may not be - /// honored (for example, current input system is set up to not have hand rays - /// at all, and a request comes in to turn on/off hand rays). - /// - void SetPointerPreferences(IPointerPreferences pointerPreferences); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs.meta deleted file mode 100644 index 57c185057..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPointerMediator.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9ae37db579de73246a7327716b5d9a0d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs deleted file mode 100644 index 4062deed2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface used by the focus provider to select the pointer that will be considered as primary. - /// The current primary pointer can we obtained via or - /// subscribing to the primary pointer changed event via . - /// - public interface IMixedRealityPrimaryPointerSelector - { - /// - /// Called on initialization of the focus provider to initialize the selector. - /// - void Initialize(); - - /// - /// Called on destruction of the focus provider to destroy the selector. - /// - void Destroy(); - - /// - /// Registers a pointer with the selector. - /// - void RegisterPointer(IMixedRealityPointer pointer); - - /// - /// Unregisters a pointer with the selector. - /// - void UnregisterPointer(IMixedRealityPointer pointer); - - /// - /// Called from the focus provider after updating pointers to obtain the new primary pointer. - /// - /// The new primary pointer or null if none. - IMixedRealityPointer Update(); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs.meta deleted file mode 100644 index 62629e7b9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityPrimaryPointerSelector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 010815b7c8b60d74d9cd2d9b4683aea2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs deleted file mode 100644 index 434d77774..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface to handle raycasts into the scene. Used by FocusProvider to perform ray and sphere cast queries for pointers. - /// - /// - /// Implementations of IMixedRealityRaycastProvider would likely use Unity's physics system to get hit results from Colliders. However, - /// in a custom implementation, the raycast does not have to rely only on Unity-based Colliders to provide hit results, e.g. a - /// GameObject may use a different mechanism for raycasting, and with a custom implementation, it could be included in the hit result. - /// - public interface IMixedRealityRaycastProvider : IMixedRealityService - { - /// - /// Performs a raycast using the specified . - /// - /// Whether or not the raycast hit something. - bool Raycast(RayStep step, LayerMask[] prioritizedLayerMasks, bool focusIndividualCompoundCollider, out MixedRealityRaycastHit hitInfo); - - /// - /// Performs a sphere cast with the specified and radius. - /// - /// Whether or not the SphereCast hit something. - bool SphereCast(RayStep step, float radius, LayerMask[] prioritizedLayerMasks, bool focusIndividualCompoundCollider, out MixedRealityRaycastHit hitInfo); - - /// - /// Performs a graphics raycast against the specified layerMasks. - /// - /// The RaycastResult of the raycast. - RaycastResult GraphicsRaycast(EventSystem eventSystem, PointerEventData pointerEventData, LayerMask[] layerMasks); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs.meta deleted file mode 100644 index db21c10e5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityRaycastProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1219b0eb3a89fc3449f09f74642a574f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs deleted file mode 100644 index ac9131ce3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Teleport; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public interface IMixedRealityTeleportPointer : IMixedRealityPointer - { - /// - /// True when teleport pointer has raised a request with the teleport manager. - /// - bool TeleportRequestRaised { get; } - - /// - /// The currently active teleport hotspot. - /// - IMixedRealityTeleportHotSpot TeleportHotSpot { get; set; } - - /// - /// The Y orientation of the pointer - used for touchpad rotation and navigation - /// - float PointerOrientation { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs.meta deleted file mode 100644 index 371afad44..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTeleportPointer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ca7de8454e2599b4ead019d58e46284b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs deleted file mode 100644 index 799fce85c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface for handling touch pointers. - /// - public interface IMixedRealityTouchPointer : IMixedRealityPointer - { - /// - /// Current finger id of the touch. - /// - int FingerId { get; set; } - - /// - /// Current touch ray. - /// - Ray TouchRay { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs.meta deleted file mode 100644 index 060ad5ffe..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IMixedRealityTouchPointer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a15198c275e3dd043abdc81fab3eea66 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs deleted file mode 100644 index 6c0835a2c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Provides interface for getting and setting behaviors and - /// possible other settings for pointers in the input system. - /// Behaviors are described based on pointer type and input type, - /// not per pointer. This is to ensure that new pointers that appear - /// maintain consistent behavior. - /// - public interface IPointerPreferences - { - /// - /// Gets the for a given pointer - /// - PointerBehavior GetPointerBehavior(IMixedRealityPointer pointer); - - /// - /// Gets the for a given pointer type, - /// handedness, and input type - /// - /// All pointers that are of this type, or a subclass of this type, will have the given behavior - /// Specify Handedness.Any to apply to all handedness, or specify a specific handedness to just disable, right, left. - /// Allows specification of pointer behavior per input source, so that pointers can be disabled for hands but not controllers, and vice versa. - PointerBehavior GetPointerBehavior( - Handedness handedness, - InputSourceType sourceType) where T : class, IMixedRealityPointer; - - /// - /// Sets the for a given pointer type, - /// handedness, and input type - /// - /// All pointers that are of this type, or a subclass of this type, will have the given behavior - /// Specify Handedness.Any to apply to all handedness, or specify a specific handedness to just disable, right, left. - /// Allows specification of pointer behavior per input source, so that pointers can be disabled for hands but not controllers, and vice versa. - void SetPointerBehavior(Handedness handedness, InputSourceType inputType, PointerBehavior pointerBehavior) where T : class, IMixedRealityPointer; - - /// - /// Pointer behavior for the gaze pointer. - /// We make gaze pointer unique because the internal - /// gaze pointer actually cannot be referenced from here - /// since it's an internal class. - /// - PointerBehavior GazePointerBehavior { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs.meta deleted file mode 100644 index f060c8b8c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerPreferences.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5f8400cd0b6be014ba0960b75f0e90e2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs deleted file mode 100644 index e6cb04190..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface defining a pointer result. - /// - public interface IPointerResult - { - /// - /// The starting point of the Pointer RaySteps. - /// - Vector3 StartPoint { get; } - - /// - /// Details about the currently focused GameObject. - /// - FocusDetails Details { get; } - - /// - /// The current pointer's target GameObject - /// - GameObject CurrentPointerTarget { get; } - - /// - /// The previous pointer target. - /// - GameObject PreviousPointerTarget { get; } - - /// - /// The index of the step that produced the last raycast hit, 0 when no raycast hit. - /// - int RayStepIndex { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs.meta deleted file mode 100644 index 90beda81e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/InputSystem/IPointerResult.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d3595afb9505476aa88dd34ecb70420c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Physics.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Physics.meta deleted file mode 100644 index a2b8da233..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Physics.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d694d57cf8d74b38804e4ecb05b8eab5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs deleted file mode 100644 index cf399f61f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - public interface IBaseRayStabilizer - { - Vector3 StablePosition { get; } - Quaternion StableRotation { get; } - Ray StableRay { get; } - void UpdateStability(Vector3 position, Quaternion rotation); - void UpdateStability(Vector3 position, Vector3 direction); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs.meta deleted file mode 100644 index 44e155c86..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Physics/IBaseRayStabilizer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 549e82a6c0904e44bac0cb7543e790f4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars.meta deleted file mode 100644 index 8320ce1e6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: deaa65ea784f505478acdcf20e95f4bb -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs deleted file mode 100644 index 42de0be21..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Interface for Mixed Reality Toolkit service registration. - /// - public interface IMixedRealityServiceRegistrar - { - #region IMixedRealityService registration - - /// - /// Registers a service of the specified type. - /// - /// The interface type of the service to be registered (ex: IMixedRealityBoundarySystem). - /// An instance of the service to be registered. - bool RegisterService(T serviceInstance) where T : IMixedRealityService; - - /// - /// Registers a service of the specified type. - /// - /// The interface type of the service to be registered (ex: IMixedRealityBoundarySystem). - /// The concrete type to instantiate. - /// The platform(s) on which the service is supported. - /// Optional arguments used when instantiating the concrete type. - /// True if the service was successfully registered, false otherwise. - bool RegisterService( - Type concreteType, - SupportedPlatforms supportedPlatforms = (SupportedPlatforms)(-1), - params object[] args) where T : IMixedRealityService; - - /// - /// Unregisters a service of the specified type. - /// - /// The interface type of the service to be unregistered (ex: IMixedRealityBoundarySystem). - /// The name of the service to unregister. - /// True if the service was successfully unregistered, false otherwise. - /// If the name argument is not specified, the first instance will be unregistered - bool UnregisterService(string name = null) where T : IMixedRealityService; - - /// - /// Unregisters a service. - /// - /// The interface type of the service to be unregistered (ex: IMixedRealityBoundarySystem). - /// The specific service instance to unregister. - /// True if the service was successfully unregistered, false otherwise. - bool UnregisterService(T serviceInstance) where T : IMixedRealityService; - - /// - /// Checks to see if a service of the specified type has been registered. - /// - /// The interface type of the service (ex: IMixedRealityBoundarySystem). - /// The name of the service. - /// True if the service is registered, false otherwise. - bool IsServiceRegistered(string name = null) where T : IMixedRealityService; - - /// - /// Gets the instance of the registered service. - /// - /// The interface type of the service (ex: IMixedRealityBoundarySystem). - /// The name of the service. - /// Indicates whether or not diagnostic logging should be performed in case of an error - /// The registered service instance as the requested type. - T GetService(string name = null, bool showLogs = true) where T : IMixedRealityService; - - /// - /// Gets the collection of the registered service instances matching the requested type. - /// - /// The interface type of the service (ex: IMixedRealityBoundarySystem). - /// Friendly name of the service. - /// Read-only collection of the service instances, as the requested type. - IReadOnlyList GetServices(string name = null) where T : IMixedRealityService; - - #endregion IMixedRealityServce registration - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs.meta deleted file mode 100644 index 1b22b8fa1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Registrars/IMixedRealityServiceRegistrar.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d34c4f8a7eb8a314fb890a6ddb611a37 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering.meta deleted file mode 100644 index 3f14eeffa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c5b45180758e7f94e88ba59cdfb25833 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs deleted file mode 100644 index 5fcfdf6e7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Rendering -{ - /// - /// Optional interface to use with objects which need to take ownership of (s). - /// - public interface IMaterialInstanceOwner - { - /// - /// Method which is invoked by a when an external material change is detected. - /// This normally occurs when materials are changed via Renderer.material, - /// Renderer.materials, or via the editor. - /// - /// The material instance which contains the updated materials. - void OnMaterialChanged(MaterialInstance materialInstance); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs.meta deleted file mode 100644 index 9563b835a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Rendering/IMaterialInstanceOwner.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 798ce43767beef14db83ef09f89528d0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem.meta deleted file mode 100644 index 2b5897650..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9a1a11ec215d9114b97aeb57f14220ee -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs deleted file mode 100644 index a1ddc2c1b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs +++ /dev/null @@ -1,297 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using UnityEngine.SceneManagement; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - /// - /// Interface for managing scenes in Unity. - /// Scenes are divided into three categories: Manager, Lighting and Content. - /// - /// The Manager scene is loaded first and remains loaded for the duration of the app. - /// Only one Manager scene is ever loaded, and no scene operation will ever unload it. - /// - /// The Lighting scene is a largely empty scene which controls lighting settings. - /// Ambient lighting, skybox, sun direction, etc. A default lighting scene is loaded on initialization. - /// After that the active lighting scene may be changed at any time via SetLightingScene. - /// Only one lighting scene can ever be loaded at a time. - /// - /// Content scenes are everything else. These can be loaded and unloaded at will in any combination. - /// - /// The scene actions provided improve on unity's SceneManagement events by ensuring that scenes - /// are considered valid before the action is invoked. - /// - public interface IMixedRealitySceneSystem : IMixedRealityEventSystem, IMixedRealityEventSource - { - #region Actions - - /// - /// Called just before a set of content scenes is loaded. - /// Includes names of all scenes about to be loaded. - /// - Action> OnWillLoadContent { get; set; } - - /// - /// Called when a set of content scenes have been loaded, activated and are valid. - /// Includes names of all scenes loaded. - /// - Action> OnContentLoaded { get; set; } - - /// - /// Called just before a set of content scenes will be unloaded. - /// Includes names of all scenes about to be unloaded. - /// - Action> OnWillUnloadContent { get; set; } - - /// - /// Called after a set of content scenes have been completely unloaded. - /// Includes names of all scenes about to be unloaded. - /// - Action> OnContentUnloaded { get; set; } - - /// - /// Called just before a lighting scene is loaded. - /// Includes name of scene. - /// - Action OnWillLoadLighting { get; set; } - - /// - /// Called when a lighting scene has been loaded, activated and is valid. - /// Includes scene name. - /// - Action OnLightingLoaded { get; set; } - - /// - /// Called just before a lighting scene unload operation begins. - /// Includes scene name. - /// - Action OnWillUnloadLighting { get; set; } - - /// - /// Called after a lighting scene has been completely unloaded. - /// Includes scene name. - /// - Action OnLightingUnloaded { get; set; } - - /// - /// Called just before a scene is loaded. - /// Called for all scene types (content, lighting and manager) - /// Includes scene name - /// - Action OnWillLoadScene { get; set; } - - /// - /// Called when scene has been loaded, activated and is valid. - /// Called for all scene types (content, lighting and manager) - /// Includes scene name - /// - Action OnSceneLoaded { get; set; } - - /// - /// Called just before a scene will be unloaded - /// Called for all scene types (content, lighting and manager) - /// Includes scene name - /// - Action OnWillUnloadScene { get; set; } - - /// - /// Called when scene has been unloaded - /// Called for all scene types (content, lighting and manager) - /// Includes scene name - /// - Action OnSceneUnloaded { get; set; } - - #endregion - - #region Properties - - /// - /// True if the scene system is loading or unloading content scenes. - /// Manager and lighting scenes are ignored. - /// - bool SceneOperationInProgress { get; } - - /// - /// Progress of the current scene operation, from 0-1. - /// A scene operation may include multiple concurrently loaded scenes. - /// - float SceneOperationProgress { get; } - - /// - /// True if the scene system is transitioning from one lighting scene to another. - /// Lighting operations will not impede other operations. - /// - bool LightingOperationInProgress { get; } - - /// - /// Progress of current lighting operation, from 0-1 - /// - float LightingOperationProgress { get; } - - /// - /// True when content has been loaded with an activation token and AllowSceneActivation has not been set to true. - /// Useful for existing entities that shouldn't act until a newly loaded scene is actually activated. - /// - bool WaitingToProceed { get; } - - /// - /// Name of the currently loaded lighting scene. - /// If a transition is in progress, this reports the target lighting scene we're transitioning to. - /// - string ActiveLightingScene { get; } - - /// - /// Returns true if a content scene appears in build settings PRIOR to the latest loaded build index. - /// Use to verify that LoadPrevContent can be performed without wrapping. - /// - bool PrevContentExists { get; } - - /// - /// Returns true if a content scene appears in build settings AFTER the latest loaded build index. - /// Use to verify that LoadNextContent can be performed without wrapping. - /// - bool NextContentExists { get; } - - /// - /// An array of content scenes available to load / unload. Order in array matches build order. - /// Useful if you want to present an ordered list of options, or if you want to track which scenes are loaded via IsContentLoaded. - /// - string[] ContentSceneNames { get; } - - #endregion - - #region Scene Operations - - /// - /// Async method to load the scenes by name. - /// If a scene operation is in progress, no action will be taken. - /// - /// Names of content scenes to load. Invalid scenes will be ignored. - /// Additive mode will load the content additively. Single mode will first unload all loaded content scenes first. - /// - /// Optional token for manual scene activation. Useful for loading screens and multiplayer. - /// If not null, operation will wait until activationToken's AllowSceneActivation value is true before activating scene objects. - /// - /// Task - Task LoadContent(IEnumerable scenesToLoad, LoadSceneMode mode = LoadSceneMode.Additive, SceneActivationToken activationToken = null); - - /// - /// Async method to unload scenes by name. - /// If a scene is not loaded, it will be ignored. - /// If a scene operation is in progress, no action will be taken. - /// - /// Task - Task UnloadContent(IEnumerable scenesToUnload); - - /// - /// Async method to load a single scene by name. - /// If a scene operation is in progress, no action will be taken. - /// - /// Name of content scene to load. Invalid scenes will be ignored. - /// Additive mode will load the content additively. Single mode will first unload all loaded content scenes first. - /// - /// Optional token for manual scene activation. Useful for loading screens and multiplayer. - /// If not null, operation will wait until activationToken's AllowSceneActivation value is true before activating scene objects. - /// - /// Task - Task LoadContent(string sceneToLoad, LoadSceneMode mode = LoadSceneMode.Additive, SceneActivationToken activationToken = null); - - /// - /// Async method to unload a single scene by name. - /// If the scene is not loaded, no action will be taken. - /// If a scene operation is in progress, no action will be taken. - /// - /// Task - Task UnloadContent(string sceneToUnload); - - /// - /// Async method to load content scenes by tag. All scenes with the supplied tag will be loaded. - /// If no scenes with this tag are found, no action will be taken. - /// If a scene operation is in progress, no action will be taken. - /// - /// Scene tag. - /// Additive mode will load the content additively. Single mode will first unload all loaded content scenes first. - /// - /// Optional token for manual scene activation. Useful for loading screens and multiplayer. - /// If not null, operation will wait until activationToken's AllowSceneActivation value is true before activating scene objects. - /// - /// Task - Task LoadContentByTag(string tag, LoadSceneMode mode = LoadSceneMode.Additive, SceneActivationToken activationToken = null); - - /// - /// Async method to unload scenes by name. - /// If a scene is not loaded, it will be ignored. - /// If a scene operation is in progress, no action will be taken. - /// - /// Scene tag - /// Task - Task UnloadContentByTag(string tag); - - /// - /// Loads the next content scene according to build index. - /// Uses the last-loaded content scene as previous build index. - /// If no next content exists, and wrap is false, no action is taken. - /// Use NextContentExists to verify that this operation is possible (if not using wrap). - /// - /// If true, if the current scene is the LAST content scene, the FIRST content scene will be loaded. - /// Additive mode will load the content additively. Single mode will first unload all loaded content scenes first. - /// - /// Optional token for manual scene activation. Useful for loading screens and multiplayer. - /// If not null, operation will wait until activationToken's AllowSceneActivation value is true before activating scene objects. - /// - /// Task - Task LoadNextContent(bool wrap = false, LoadSceneMode mode = LoadSceneMode.Single, SceneActivationToken activationToken = null); - - /// - /// Loads the previous content scene according to build index. - /// Uses the loaded content scene with the smallest build index as previous build index. - /// If no previous content exists, and wrap is false, no action is taken. - /// Use PrevContentExists to verify that this operation is possible (if not using wrap). - /// - /// If true, if the current scene is the FIRST content scene, the LAST content scene will be loaded. - /// Additive mode will load the content additively. Single mode will first unload all loaded content scenes first. - /// - /// Optional token for manual scene activation. Useful for loading screens and multiplayer. - /// If not null, operation will wait until activationToken's AllowSceneActivation value is true before activating scene objects. - /// - /// Task - Task LoadPrevContent(bool wrap = false, LoadSceneMode mode = LoadSceneMode.Single, SceneActivationToken activationToken = null); - - /// - /// Returns true if a content scene is fully loaded. - /// - bool IsContentLoaded(string sceneName); - - /// - /// Sets the current lighting scene. The lighting scene determines ambient light and skybox settings. It can optionally contain light objects. - /// If the lighting scene is already loaded, no action will be taken. - /// If a lighting scene transition is in progress, request will be queued and executed when the transition is complete. - /// - /// The name of the lighting scene. - /// The transition type to use. See LightingSceneTransitionType for information about each transition type. - /// The duration of the transition (if not None). - void SetLightingScene(string newLightingSceneName, LightingSceneTransitionType transitionType = LightingSceneTransitionType.None, float transitionDuration = 1f); - - #endregion - - #region Utilities - - /// - /// Returns a set of scenes by name. - /// Useful for processing events. - /// - IEnumerable GetScenes(IEnumerable sceneNames); - - /// - /// Returns a scene by name. - /// Useful for processing events. - /// - Scene GetScene(string sceneName); - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs.meta deleted file mode 100644 index dd2f40cdc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c11d4643a75e1614fa721b7219555611 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs deleted file mode 100644 index e3f846198..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.SceneSystem -{ - /// - /// Optional editor-only interface for use with facade inspectors. - /// If a scene system service does not implement this interface, the facade will not be rendered. - /// - public interface IMixedRealitySceneSystemEditor - { -#if UNITY_EDITOR - /// - /// Returns all content scene tags in the scene service profile. - /// - IEnumerable ContentTags { get; } - - /// - /// Returns the content scenes in the scene service profile. - /// - SceneInfo[] ContentScenes { get; } - - /// - /// Returns the lighting scenes in the scene service profile. - /// - SceneInfo[] LightingScenes { get; } - - /// - /// Loads the next content scene in-editor. Use instead of IMixedRealitySceneSystem.LoadNextContent while not in play mode. - /// - /// If true, if the current scene is the LAST content scene, the FIRST content scene will be loaded. - void EditorLoadNextContent(bool wrap = false); - - /// - /// Loads the prev content scene in-editor. Use instead of IMixedRealitySceneSystem.LoadPrevContent while not in play mode. - /// - /// If true, if the current scene is the FIRST content scene, the LAST content scene will be loaded. - void EditorLoadPrevContent(bool wrap = false); -#endif - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs.meta deleted file mode 100644 index b7c734836..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SceneSystem/IMixedRealitySceneSystemEditor.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c883a0df024f2424b8f44cd106479eec -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Services.meta deleted file mode 100644 index cf591cf2c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5a86d1e8a3f8ab049af0dcc216852ce4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs deleted file mode 100644 index 234bd3b52..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - public interface IMixedRealityCapabilityCheck - { - /// - /// Checks to see if one or more registered data providers supports the requested capability - /// on the current platform. - /// - /// The capability to check. - /// True if the capability is supported, false otherwise. - bool CheckCapability(MixedRealityCapability capability); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs.meta deleted file mode 100644 index 7af1bb472..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityCapabilityCheck.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ac51403e8647c964d8a5243e86ecb0dd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs deleted file mode 100644 index f29ddb04e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Required interface for all Mixed Reality data providers. Data providers are the components - /// that supply services with required information (ex: input controller state). - /// - public interface IMixedRealityDataProvider : IMixedRealityService - { - // Reserved for future use. - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs.meta deleted file mode 100644 index 4a70de9cf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 244640a5fa3a40b6a6727b5c886074e8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs deleted file mode 100644 index 6d464683f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Allows systems to provide access to their managed data providers. - /// - public interface IMixedRealityDataProviderAccess - { - /// - /// Gets the collection of registered data providers. - /// - /// - /// Read only copy of the list of registered data providers. - /// - IReadOnlyList GetDataProviders(); - - /// - /// Get the collection of registered observers of the specified type. - /// - /// The desired data provider type - /// - /// Read-only copy of the list of registered data providers that implement the specified type. - /// - IReadOnlyList GetDataProviders() where T : IMixedRealityDataProvider; - - /// - /// Get the data provider that is registered under the specified name. - /// - /// The friendly name of the data provider. - /// - /// The requested data provider, or null if one cannot be found. - /// - /// - /// If more than one data provider is registered under the specified name, the first will be returned. - /// - IMixedRealityDataProvider GetDataProvider(string name); - - /// - /// Get the data provider that is registered under the specified name (optional) and matching the specified type. - /// - /// The desired data provider type. - /// The friendly name of the data provider. - /// - /// The requested data provider, or null if one cannot be found. - /// - /// - /// If more than one data provider is registered under the specified name, the first will be returned. - /// - T GetDataProvider(string name = null) where T : IMixedRealityDataProvider; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs.meta deleted file mode 100644 index f2a278ca1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityDataProviderAccess.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5068df6c8c17b814ca8af2e2b852c5c0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs deleted file mode 100644 index 42384e46c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Generic interface for all optional Mixed Reality systems, components, or features that can be added to the - /// - public interface IMixedRealityExtensionService : IMixedRealityService - { - // Empty for now, but it is used to filter out the valid class types in the inspector dropdown. - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs.meta deleted file mode 100644 index 2aa6185e5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityExtensionService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3cd9720e7f23491f99aa2ad40ca322c2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs deleted file mode 100644 index e2463e072..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Generic interface for all Mixed Reality Services - /// - public interface IMixedRealityService : IDisposable - { - /// - /// Optional Priority attribute if multiple services of the same type are required, enables targeting a service for action. - /// - string Name { get; } - - /// - /// Optional Priority to reorder registered managers based on their respective priority, reduces the risk of race conditions by prioritizing the order in which managers are evaluated. - /// - uint Priority { get; } - - /// - /// The configuration profile for the service. - /// - /// - /// Many services may wish to provide a typed version (ex: MixedRealityInputSystemProfile) that casts this value for ease of use in calling code. - /// - BaseMixedRealityProfile ConfigurationProfile { get; } - - /// - /// The initialize function is used to setup the service once created. - /// This method is called once all services have been registered in the Mixed Reality Toolkit. - /// - void Initialize(); - - /// - /// Optional Reset function to perform that will Reset the service, for example, whenever there is a profile change. - /// - void Reset(); - - /// - /// Optional Enable function to enable / re-enable the service. - /// - void Enable(); - - /// - /// Optional Update function to perform per-frame updates of the service. - /// - void Update(); - - /// - /// Optional LateUpdate function to that is called after Update has been called on all services. - /// - void LateUpdate(); - - /// - /// Optional Disable function to pause the service. - /// - void Disable(); - - /// - /// Optional Destroy function to perform cleanup of the service before the Mixed Reality Toolkit is destroyed. - /// - void Destroy(); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs.meta deleted file mode 100644 index aaa80c3ab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/Services/IMixedRealityService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6d990fc4afc945d495b8376351f9c13c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness.meta deleted file mode 100644 index 8308af57c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 662210d3efe3f284e8794260a49822a1 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers.meta deleted file mode 100644 index 4304dd231..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b19e6c822dc8db341a90bf741b2bb38a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs deleted file mode 100644 index f9b6a37e6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - public interface IMixedRealitySpatialAwarenessObservationHandler : IEventSystemHandler - { - /// - /// Called when a spatial observer adds a new observation. - /// - /// Data describing the event. - void OnObservationAdded(MixedRealitySpatialAwarenessEventData eventData); - - /// - /// Called when a spatial observer updates a previous observation. - /// - /// Data describing the event. - void OnObservationUpdated(MixedRealitySpatialAwarenessEventData eventData); - - /// - /// Called when a spatial observer removes a previous observation. - /// - /// Data describing the event. - void OnObservationRemoved(MixedRealitySpatialAwarenessEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs.meta deleted file mode 100644 index eef77c0d1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Handlers/IMixedRealitySpatialAwarenessObservationHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7f765bc8379db1f4fb0bb2ba8d416307 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs deleted file mode 100644 index 1b9c77beb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - public interface IMixedRealitySpatialAwarenessObject - { - /// - /// A unique ID identifying this spatial object. - /// - int Id { get; set; } - - /// - /// The GameObject representing this spatial object in the scene. - /// - GameObject GameObject { get; set; } - - /// - /// The MeshRenderer of this spatial object. - /// - MeshRenderer Renderer { get; set; } - - /// - /// Cleans up this spatial object. - /// - void CleanObject(); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs.meta deleted file mode 100644 index fa7adb1b2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessObject.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f6b4cc8e588d87b47a9175d5c2e491be -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs deleted file mode 100644 index 632675258..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - public interface IMixedRealitySpatialAwarenessSystem : IMixedRealityEventSystem - { - /// - /// Gets the parent object to which all spatial awareness GameObjects are to be parented. - /// - GameObject SpatialAwarenessObjectParent { get; } - - /// - /// Creates the a parent, that is a child of the Spatial Awareness System parent so that the scene hierarchy does not get overly cluttered. - /// - /// - /// The GameObject to which spatial awareness objects will be parented. - /// - /// - /// This method is to be called by implementations of the interface, not by application code. It - /// is used to enable observations to be grouped by observer. - /// - GameObject CreateSpatialAwarenessObservationParent(string name); - - /// - /// Generates a new source identifier for an implementation. - /// - /// The source identifier to be used by the implementation. - /// - /// This method is to be called by implementations of the interface, not by application code. - /// - uint GenerateNewSourceId(); - - /// - /// Typed representation of the ConfigurationProfile property. - /// - MixedRealitySpatialAwarenessSystemProfile SpatialAwarenessSystemProfile { get; } - - /// - /// Gets the collection of registered data providers. - /// - /// - /// Read only copy of the list of registered observers. - /// - [Obsolete("GetObservers will be removed in a future release. Cast to IMixedRealityDataProviderAccess and call GetDataProviders instead")] - IReadOnlyList GetObservers(); - - /// - /// Get the collection of registered observers of the specified type. - /// - /// The desired spatial awareness observer type (ex: ) - /// - /// Readonly copy of the list of registered observers that implement the specified type. - /// - [Obsolete("GetObservers will be removed in a future release. Cast to IMixedRealityDataProviderAccess and call GetDataProviders instead")] - IReadOnlyList GetObservers() where T : IMixedRealitySpatialAwarenessObserver; - - /// - /// Get the that is registered under the specified name. - /// - /// The friendly name of the observer. - /// - /// The requested observer, or null if one cannot be found. - /// - /// - /// If more than one observer is registered under the specified name, the first will be returned. - /// - [Obsolete("GetObserver will be removed in a future release. Cast to IMixedRealityDataProviderAccess and call GetDataProvider instead")] - IMixedRealitySpatialAwarenessObserver GetObserver(string name); - - /// - /// Get the observer that is registered under the specified name matching the specified type. - /// - /// The desired spatial awareness observer type (ex: ) - /// The friendly name of the observer. - /// - /// The requested observer, or null if one cannot be found. - /// - /// - /// If more than one observer is registered under the specified name, the first will be returned. - /// - [Obsolete("GetObserver will be removed in a future release. Cast to IMixedRealityDataProviderAccess and call GetDataProvider instead")] - T GetObserver(string name = null) where T : IMixedRealitySpatialAwarenessObserver; - - /// - /// Starts / restarts all spatial observers of the specified type. - /// - void ResumeObservers(); - - /// - /// Starts / restarts all spatial observers of the specified type. - /// - /// The desired spatial awareness observer type (ex: ) - void ResumeObservers() where T : IMixedRealitySpatialAwarenessObserver; - - /// - /// Starts / restarts the spatial observer registered under the specified name matching the specified type. - /// - /// The desired spatial awareness observer type (ex: ) - /// The friendly name of the observer. - void ResumeObserver(string name) where T : IMixedRealitySpatialAwarenessObserver; - - /// - /// Stops / pauses all spatial observers. - /// - void SuspendObservers(); - - /// - /// Stops / pauses all spatial observers of the specified type. - /// - void SuspendObservers() where T : IMixedRealitySpatialAwarenessObserver; - - /// - /// Stops / pauses the spatial observer registered under the specified name matching the specified type. - /// - /// The desired spatial awareness observer type (ex: ) - /// The friendly name of the observer. - void SuspendObserver(string name) where T : IMixedRealitySpatialAwarenessObserver; - - /// - /// Clears all registered observers' observations. - /// - void ClearObservations(); - - /// - /// Clears the observations of the specified observer. - /// - /// The observer type. - /// The name of the observer. - void ClearObservations(string name = null) where T : IMixedRealitySpatialAwarenessObserver; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs.meta deleted file mode 100644 index 3cad37a8a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/IMixedRealitySpatialAwarenessSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f1a0d4bfe65cbfe438e775270f2b92f0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers.meta deleted file mode 100644 index f8dcd02eb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bb925a1a338df674d849c3050beb62ff -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs deleted file mode 100644 index bae8fdf19..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// The interface for defining an which provides mesh data. - /// - public interface IMixedRealitySpatialAwarenessMeshObserver : IMixedRealitySpatialAwarenessObserver - { - /// - /// Gets or sets a value indicating how the mesh subsystem is to display surface meshes within the application. - /// - /// - /// Applications that wish to process the Meshes should set this value to None. - /// - SpatialAwarenessMeshDisplayOptions DisplayOption { get; set; } - - /// - /// Gets or sets the level of detail, as a MixedRealitySpatialAwarenessMeshLevelOfDetail value, for the returned spatial mesh. - /// Setting this value to Custom, implies that the developer is specifying a custom value for MeshTrianglesPerCubicMeter. - /// - /// - /// Specifying any other value will cause to be overwritten. - /// - SpatialAwarenessMeshLevelOfDetail LevelOfDetail { get; set; } - - /// - /// Gets the collection of s being managed by the observer. - /// - IReadOnlyDictionary Meshes { get; } - - /// - /// Get or sets the desired Unity Physics Layer on which to set the spatial mesh. - /// - /// - /// If not explicitly set, it is recommended that implementations return . - /// - int MeshPhysicsLayer { get; set; } - - /// - /// Gets the bit mask that corresponds to the value specified in . - /// - int MeshPhysicsLayerMask { get; } - - /// - /// Indicates whether or not mesh normals should be recalculated by the observer. - /// - bool RecalculateNormals { get; set; } - - /// - /// Gets or sets the level of detail, in triangles per cubic meter, for the returned spatial mesh. - /// - /// - /// When specifying a other than Custom, this value will be automatically overwritten with system default values. - /// - int TrianglesPerCubicMeter { get; set; } - - /// - /// Gets or sets the Material to be used when spatial Meshes should occlude other objects. - /// - Material OcclusionMaterial { get; set; } - - /// - /// Gets or sets the Material to be used when displaying Meshes. - /// - Material VisibleMaterial { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs.meta deleted file mode 100644 index d4be8f56a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessMeshObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6adc171f587b1d842b9efcd58d8e8b30 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs deleted file mode 100644 index a16633855..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - public interface IMixedRealitySpatialAwarenessObserver : IMixedRealityDataProvider, IMixedRealityEventSource - { - /// - /// Indicates the developer's intended startup behavior. - /// - AutoStartBehavior StartupBehavior { get; set; } - - /// - /// Get or sets the default Unity Physics Layer on which to set the spatial object. - /// - int DefaultPhysicsLayer { get; } - - /// - /// Is the observer running (actively accumulating spatial data)? - /// - bool IsRunning { get; } - - /// - /// Should the observer remain stationary in the scene? - /// - /// - /// Set IsStationaryObserver to false to move the volume with the user. - /// If set to true, the origin will be 0,0,0 or the last known location. - /// - bool IsStationaryObserver { get; set; } - - /// - /// Gets or sets the type of volume the observer should operate in. - /// - VolumeType ObserverVolumeType { get; set; } - - /// - /// Gets or sets the extents( 1/2 size) of the volume, in meters per axis, from which individual observations will be made. - /// - /// - /// When used when is set to the X value of the extents will be - /// used as the radius. - /// - Vector3 ObservationExtents { get; set; } - - /// - /// Gets or sets the orientation of the volume in World Space. - /// - /// - /// This is only used when is set to - /// - Quaternion ObserverRotation { get; set; } - - /// - /// Gets or sets the origin, in World Space, of the observer. - /// - /// - /// Moving the observer origin allows the spatial awareness system to locate and discard meshes as the user - /// navigates the environment. - /// - Vector3 ObserverOrigin { get; set; } - - /// - /// Gets or sets the frequency, in seconds, at which the spatial observer should update. - /// - float UpdateInterval { get; set; } - - /// - /// Start | resume the observer. - /// - void Resume(); - - /// - /// Stop | pause the observer - /// - void Suspend(); - - /// - /// Clears the observer's collection of observations. - /// - /// - /// If the observer is currently running, calling ClearObservations will suspend it. - /// - void ClearObservations(); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs.meta deleted file mode 100644 index efb3bb889..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/IMixedRealitySpatialAwarenessObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 71f25d32570fe144fb2cd41b61c98393 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs deleted file mode 100644 index 9a7351ba2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// The interface for defining an which provides physical materials - /// - public interface ISpatialAwarenessPhysicsProperties - { - /// - /// Gets or sets the PhysicMaterial to be used when displaying Meshes. - /// - PhysicMaterial PhysicsMaterial { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs.meta deleted file mode 100644 index 0b62515dd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/SpatialAwareness/Observers/ISpatialAwarenessPhysicsProperties.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 31d727b10f9044d9b678659e561377b9 -timeCreated: 1597251367 \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem.meta deleted file mode 100644 index 7943139f1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 35fe9d7283ce4e72b6b57d7bc9dd33df -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers.meta deleted file mode 100644 index e0d385186..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 457124375fbc4a11b085c4e92770680f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs deleted file mode 100644 index 93686c035..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Teleport -{ - /// - /// Interface to implement for teleport events. - /// - public interface IMixedRealityTeleportHandler : IEventSystemHandler - { - /// - /// Raised when a pointer requests a teleport target, but no teleport has begun. - /// - void OnTeleportRequest(TeleportEventData eventData); - - /// - /// Raised when a teleport has started. - /// - void OnTeleportStarted(TeleportEventData eventData); - - /// - /// Raised when a teleport has successfully completed. - /// - void OnTeleportCompleted(TeleportEventData eventData); - - /// - /// Raised when a teleport request has been canceled. - /// - void OnTeleportCanceled(TeleportEventData eventData); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs.meta deleted file mode 100644 index 0b3eaf4eb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/Handlers/IMixedRealityTeleportHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 396fb22a75ed49ccae18204871da22c3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs deleted file mode 100644 index 33fb43768..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Teleport -{ - public interface IMixedRealityTeleportHotSpot - { - /// - /// The position the teleport will end at. - /// - Vector3 Position { get; } - - /// - /// The normal of the teleport raycast. - /// - Vector3 Normal { get; } - - /// - /// Is the teleport target active? - /// - bool IsActive { get; } - - /// - /// Should the target orientation be overridden? - /// - bool OverrideTargetOrientation { get; } - - /// - /// Should the destination orientation be overridden? - /// Useful when you want to orient the user in a specific direction when they teleport to this position. - /// - /// - /// Override orientation is the transform forward of the GameObject this component is attached to. - /// - float TargetOrientation { get; } - - /// - /// Returns the GameObject reference for this teleport target. - /// - GameObject GameObjectReference { get; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs.meta deleted file mode 100644 index c39f4fe30..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportHotspot.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2fa302c56fc74a91873879ff2d5fc25b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs deleted file mode 100644 index 8dc2b4316..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; - -namespace Microsoft.MixedReality.Toolkit.Teleport -{ - /// - /// Manager interface for a Teleport system in the Mixed Reality Toolkit - /// All replacement systems for providing Teleportation functionality should derive from this interface - /// - public interface IMixedRealityTeleportSystem : IMixedRealityEventSystem - { - /// - /// The duration of the teleport in seconds. - /// - float TeleportDuration { get; set; } - - /// - /// Raise a teleportation request event. - /// - /// The pointer that raised the event. - /// The teleport target - void RaiseTeleportRequest(IMixedRealityPointer pointer, IMixedRealityTeleportHotSpot hotSpot); - - /// - /// Raise a teleportation started event. - /// - /// The pointer that raised the event. - /// The teleport target - void RaiseTeleportStarted(IMixedRealityPointer pointer, IMixedRealityTeleportHotSpot hotSpot); - - /// - /// Raise a teleportation canceled event. - /// - /// The pointer that raised the event. - /// The teleport target - void RaiseTeleportCanceled(IMixedRealityPointer pointer, IMixedRealityTeleportHotSpot hotSpot); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs.meta deleted file mode 100644 index 475ba8c10..000000000 --- a/AR-ROS/Assets/MRTK/Core/Interfaces/TeleportSystem/IMixedRealityTeleportSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3566a5b2e4f949869d7d6c983703cad6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/License.txt b/AR-ROS/Assets/MRTK/Core/License.txt deleted file mode 100644 index 63447fd8b..000000000 --- a/AR-ROS/Assets/MRTK/Core/License.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) Microsoft Corporation. - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/License.txt.meta b/AR-ROS/Assets/MRTK/Core/License.txt.meta deleted file mode 100644 index 43a535a30..000000000 --- a/AR-ROS/Assets/MRTK/Core/License.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f49e1cf079c34eed867c10df6bb25c70 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef b/AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef deleted file mode 100644 index 8ae685885..000000000 --- a/AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit", - "references": [ - "Microsoft.MixedReality.Toolkit.Async", - "Microsoft.MixedReality.Toolkit.Editor.Utilities" - ], - "optionalUnityReferences": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef.meta b/AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef.meta deleted file mode 100644 index f9a5a1441..000000000 --- a/AR-ROS/Assets/MRTK/Core/MRTK.Core.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a7a4c34601384f9389d5c4207f3c6331 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel b/AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel deleted file mode 100644 index e69de29bb..000000000 diff --git a/AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel.meta b/AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel.meta deleted file mode 100644 index a2e05c3b2..000000000 --- a/AR-ROS/Assets/MRTK/Core/MRTK.Core.sentinel.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 05ba0ec971b0d5648a404e6ac3ae4cab -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets b/AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets deleted file mode 100644 index c99265a9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets +++ /dev/null @@ -1,68 +0,0 @@ - - - - - Standalone - - - <_MRTKPlayerDirectory>$(MRTKUnityPlayer)Player - - - - - - PreserveNewest - - false - $(MSBuildThisFileName)\%(RecursiveDir)%(Filename)%(Extension) - - - - PreserveNewest - - false - $(MSBuildThisFileName)\Plugins\%(RecursiveDir)%(Filename)%(Extension) - - - - - - - - PreserveNewest - - false - MRTK\%(RecursiveDir)%(Filename)%(Extension) - - - - PreserveNewest - MRTK\link.xml - - - - <_MRTKPlayerAssemblies Include="$(MSBuildThisFileDirectory)..\Plugins\$(_MRTKPlayerDirectory)\*.dll"> - %(Identity) - - - - - %(OriginalPath) - - - - - PreserveNewest - false - - - - <_MRTKPlayerAssemblies Remove="@(_MRTKPlayerAssemblies)" /> - - - diff --git a/AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets.meta b/AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets.meta deleted file mode 100644 index 6f388f667..000000000 --- a/AR-ROS/Assets/MRTK/Core/MixedReality.Toolkit.targets.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 25b197377a429464ab3a364e5edd4d13 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers.meta b/AR-ROS/Assets/MRTK/Core/Providers.meta deleted file mode 100644 index 4056aeb42..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bb5b725931bb459daad638d91d4410d9 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs b/AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs deleted file mode 100644 index f32801f38..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.CameraSystem -{ - public abstract class BaseCameraSettingsProvider : BaseDataProvider, IMixedRealityCameraSettingsProvider - { - /// - /// Constructor. - /// - /// The instance of the camera system which is managing this provider. - /// Friendly name of the provider. - /// Provider priority. Used to determine order of instantiation. - /// The provider's configuration profile. - protected BaseCameraSettingsProvider( - IMixedRealityCameraSystem cameraSystem, - string name = null, - uint priority = DefaultPriority, - BaseCameraSettingsProfile profile = null) : base(cameraSystem, name, priority, profile) - { } - - /// - public virtual bool IsOpaque { get; } = false; - - /// - public virtual void ApplyConfiguration() - { - // It is the responsibility of the camera settings provider to set the display settings (this allows overriding the - // default values with per-camera provider values). - MixedRealityCameraProfile cameraProfile = (Service as IMixedRealityCameraSystem)?.CameraProfile; - if (cameraProfile == null) { return; } - - if (IsOpaque) - { - CameraCache.Main.clearFlags = cameraProfile.CameraClearFlagsOpaqueDisplay; - CameraCache.Main.nearClipPlane = cameraProfile.NearClipPlaneOpaqueDisplay; - CameraCache.Main.farClipPlane = cameraProfile.FarClipPlaneOpaqueDisplay; - CameraCache.Main.backgroundColor = cameraProfile.BackgroundColorOpaqueDisplay; - QualitySettings.SetQualityLevel(cameraProfile.OpaqueQualityLevel, false); - } - else - { - CameraCache.Main.clearFlags = cameraProfile.CameraClearFlagsTransparentDisplay; - CameraCache.Main.backgroundColor = cameraProfile.BackgroundColorTransparentDisplay; - CameraCache.Main.nearClipPlane = cameraProfile.NearClipPlaneTransparentDisplay; - CameraCache.Main.farClipPlane = cameraProfile.FarClipPlaneTransparentDisplay; - QualitySettings.SetQualityLevel(cameraProfile.TransparentQualityLevel, false); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs.meta deleted file mode 100644 index 2272f95bc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseCameraSettingsProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7436e360aeb8e504dacbb3672921d97d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs b/AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs deleted file mode 100644 index 668eeded3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs +++ /dev/null @@ -1,333 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Base Controller class to inherit from for all controllers. - /// - public abstract class BaseController : IMixedRealityController - { - /// - /// Constructor. - /// - protected BaseController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - { - TrackingState = trackingState; - ControllerHandedness = controllerHandedness; - InputSource = inputSource; - Interactions = interactions; - - IsPositionAvailable = false; - IsPositionApproximate = false; - IsRotationAvailable = false; - - Type controllerType = GetType(); - - if (IsControllerMappingEnabled() && Interactions == null) - { - // We can only enable controller profiles if mappings exist. - MixedRealityControllerMapping[] controllerMappings = GetControllerMappings(); - - // Have to test that a controller type has been registered in the profiles, - // else its Unity input manager mappings will not have been set up by the inspector. - bool profileFound = false; - if (controllerMappings != null) - { - for (int i = 0; i < controllerMappings.Length; i++) - { - if (controllerMappings[i].ControllerType.Type == controllerType) - { - profileFound = true; - - // If it is an exact match, assign interaction mappings. - if (controllerMappings[i].Handedness == ControllerHandedness && - controllerMappings[i].Interactions.Length > 0) - { - MixedRealityInteractionMapping[] profileInteractions = controllerMappings[i].Interactions; - MixedRealityInteractionMapping[] newInteractions = new MixedRealityInteractionMapping[profileInteractions.Length]; - - for (int j = 0; j < profileInteractions.Length; j++) - { - newInteractions[j] = new MixedRealityInteractionMapping(profileInteractions[j]); - } - - AssignControllerMappings(newInteractions); - break; - } - } - } - } - - // If no controller mappings found, try to use default interactions. - if (Interactions == null || Interactions.Length < 1) - { - SetupDefaultInteractions(); - - // We still don't have controller mappings, so this may be a custom controller. - if (Interactions == null || Interactions.Length < 1) - { - Debug.LogWarning($"No controller interaction mappings found for {controllerType}."); - return; - } - } - - // If no profile was found, warn the user. Does not stop the project from running. - if (!profileFound) - { - Debug.LogWarning($"No controller profile found for type {controllerType}; please ensure all controllers are defined in the configured MixedRealityControllerConfigurationProfile."); - } - } - - if (GetControllerVisualizationProfile() != null && - GetControllerVisualizationProfile().RenderMotionControllers && - InputSource != null) - { - TryRenderControllerModel(controllerType, InputSource.SourceType); - } - - Enabled = true; - } - - /// - /// The default interactions for this controller. - /// - public virtual MixedRealityInteractionMapping[] DefaultInteractions { get; } = null; - - /// - /// The Default Left Handed interactions for this controller. - /// - public virtual MixedRealityInteractionMapping[] DefaultLeftHandedInteractions { get; } = null; - - /// - /// The Default Right Handed interactions for this controller. - /// - public virtual MixedRealityInteractionMapping[] DefaultRightHandedInteractions { get; } = null; - - #region IMixedRealityController Implementation - - /// - public bool Enabled { get; set; } - - /// - public TrackingState TrackingState { get; protected set; } - - /// - public Handedness ControllerHandedness { get; } - - /// - public IMixedRealityInputSource InputSource { get; } - - public IMixedRealityControllerVisualizer Visualizer { get; protected set; } - - /// - public bool IsPositionAvailable { get; protected set; } - - /// - public bool IsPositionApproximate { get; protected set; } - - /// - public bool IsRotationAvailable { get; protected set; } - - /// - public MixedRealityInteractionMapping[] Interactions { get; private set; } = null; - - public Vector3 AngularVelocity { get; protected set; } - - public Vector3 Velocity { get; protected set; } - - /// - public virtual bool IsInPointingPose => true; - - #endregion IMixedRealityController Implementation - - /// - /// Sets up the configuration based on the Mixed Reality Controller Mapping Profile. - /// - [Obsolete("This method is no longer used. Configuration now happens in the constructor. You can check this controller's Enabled property for configuration state.")] - public bool SetupConfiguration(Type controllerType, InputSourceType inputSourceType = InputSourceType.Controller) - { - // If the constructor succeeded in finding interactions, Enabled will be true. - return Enabled; - } - - /// - /// Sets up the configuration based on the Mixed Reality Controller Mapping Profile. - /// - /// The type this controller represents. - [Obsolete("This method is no longer used. Configuration now happens in the constructor. You can check this controller's Enabled property for configuration state.")] - public bool SetupConfiguration(Type controllerType) - { - // If the constructor succeeded in finding interactions, Enabled will be true. - return Enabled; - } - - /// - /// Assign the default interactions based on controller handedness, if necessary. - /// - [Obsolete("The handedness parameter is no longer used. This method now reads from the controller's handedness.")] - public virtual void SetupDefaultInteractions(Handedness controllerHandedness) => SetupDefaultInteractions(); - - /// - /// Assign the default interactions based on this controller's handedness, if necessary. - /// - public virtual void SetupDefaultInteractions() - { - switch (ControllerHandedness) - { - case Handedness.Left: - AssignControllerMappings(DefaultLeftHandedInteractions ?? DefaultInteractions); - break; - case Handedness.Right: - AssignControllerMappings(DefaultRightHandedInteractions ?? DefaultInteractions); - break; - default: - AssignControllerMappings(DefaultInteractions); - break; - } - } - - /// - /// Load the Interaction mappings for this controller from the configured Controller Mapping profile - /// - /// Configured mappings from a controller mapping profile - public void AssignControllerMappings(MixedRealityInteractionMapping[] mappings) - { - Interactions = mappings; - } - - /// - /// Try to render a controller model for this controller from the visualization profile. - /// - /// The type of controller to load the model for. - /// Whether the model represents a hand or a controller. - /// True if a model was successfully loaded or model rendering is disabled. False if a model tried to load but failed. - protected virtual bool TryRenderControllerModel(Type controllerType, InputSourceType inputSourceType) - { - GameObject controllerModel = null; - - if (GetControllerVisualizationProfile() == null || - !GetControllerVisualizationProfile().RenderMotionControllers) - { - return true; - } - - // If a specific controller template wants to override the global model, assign that instead. - if (IsControllerMappingEnabled() && - GetControllerVisualizationProfile() != null && - inputSourceType == InputSourceType.Controller && - !(GetControllerVisualizationProfile().GetUseDefaultModelsOverride(controllerType, ControllerHandedness))) - { - controllerModel = GetControllerVisualizationProfile().GetControllerModelOverride(controllerType, ControllerHandedness); - } - - // Get the global controller model for each hand. - if (controllerModel == null && - GetControllerVisualizationProfile() != null) - { - if (inputSourceType == InputSourceType.Controller) - { - if (ControllerHandedness == Handedness.Left && - GetControllerVisualizationProfile().GlobalLeftHandModel != null) - { - controllerModel = GetControllerVisualizationProfile().GlobalLeftHandModel; - } - else if (ControllerHandedness == Handedness.Right && - GetControllerVisualizationProfile().GlobalRightHandModel != null) - { - controllerModel = GetControllerVisualizationProfile().GlobalRightHandModel; - } - } - else if (inputSourceType == InputSourceType.Hand) - { - if (ControllerHandedness == Handedness.Left && - GetControllerVisualizationProfile().GlobalLeftHandVisualizer != null) - { - controllerModel = GetControllerVisualizationProfile().GlobalLeftHandVisualizer; - } - else if (ControllerHandedness == Handedness.Right && - GetControllerVisualizationProfile().GlobalRightHandVisualizer != null) - { - controllerModel = GetControllerVisualizationProfile().GlobalRightHandVisualizer; - } - } - } - - if (controllerModel == null) - { - // no controller model available - return false; - } - - // If we've got a controller model prefab, then create it and place it in the scene. - GameObject controllerObject = UnityEngine.Object.Instantiate(controllerModel); - - return TryAddControllerModelToSceneHierarchy(controllerObject); - } - - protected bool TryAddControllerModelToSceneHierarchy(GameObject controllerObject) - { - if (controllerObject != null) - { - controllerObject.name = $"{ControllerHandedness}_{controllerObject.name}"; - - MixedRealityPlayspace.AddChild(controllerObject.transform); - - Visualizer = controllerObject.GetComponent(); - - if (Visualizer != null) - { - Visualizer.Controller = this; - return true; - } - else - { - Debug.LogError($"{controllerObject.name} is missing a IMixedRealityControllerVisualizer component!"); - return false; - } - } - - return false; - } - - #region MRTK instance helpers - - protected static MixedRealityControllerVisualizationProfile GetControllerVisualizationProfile() - { - if (CoreServices.InputSystem?.InputSystemProfile != null) - { - return CoreServices.InputSystem.InputSystemProfile.ControllerVisualizationProfile; - } - - return null; - } - - protected static bool IsControllerMappingEnabled() - { - if (CoreServices.InputSystem?.InputSystemProfile != null) - { - return CoreServices.InputSystem.InputSystemProfile.IsControllerMappingEnabled; - } - - return false; - } - - protected static MixedRealityControllerMapping[] GetControllerMappings() - { - if (CoreServices.InputSystem?.InputSystemProfile != null && - CoreServices.InputSystem.InputSystemProfile.ControllerMappingProfile != null) - { - // We can only enable controller profiles if mappings exist. - return CoreServices.InputSystem.InputSystemProfile.ControllerMappingProfile.MixedRealityControllerMappings; - } - - return null; - } - - #endregion MRTK instance helpers - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs.meta deleted file mode 100644 index f896dd241..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 86a615e766404263a95de4ee713a8399 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs b/AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs deleted file mode 100644 index eb9bee066..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Base class for input sources that don't inherit from MonoBehaviour. - /// - /// This base class does not support adding or removing pointers, because many will never - /// pass pointers in their constructors and will fall back to either the Gaze or Mouse Pointer. - public class BaseGenericInputSource : IMixedRealityInputSource, IDisposable - { - /// - /// Constructor. - /// - public BaseGenericInputSource(string name, IMixedRealityPointer[] pointers = null, InputSourceType sourceType = InputSourceType.Other) - { - SourceId = (CoreServices.InputSystem != null) ? CoreServices.InputSystem.GenerateNewSourceId() : 0; - SourceName = name; - Pointers = pointers ?? new[] { CoreServices.InputSystem?.GazeProvider?.GazePointer }; - - SourceType = sourceType; - } - - /// - public uint SourceId { get; } - - /// - public string SourceName { get; } - - /// - public virtual IMixedRealityPointer[] Pointers { get; } - - /// - public InputSourceType SourceType { get; set; } - - #region IEquality Implementation - - public static bool Equals(IMixedRealityInputSource left, IMixedRealityInputSource right) - { - return left.Equals(right); - } - - /// - bool IEqualityComparer.Equals(object left, object right) - { - return left.Equals(right); - } - - /// - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) { return false; } - if (ReferenceEquals(this, obj)) { return true; } - if (obj.GetType() != GetType()) { return false; } - - return Equals((IMixedRealityInputSource)obj); - } - - private bool Equals(IMixedRealityInputSource other) - { - return other != null && SourceId == other.SourceId && string.Equals(SourceName, other.SourceName); - } - - /// - int IEqualityComparer.GetHashCode(object obj) - { - return obj.GetHashCode(); - } - - /// - public override int GetHashCode() - { - unchecked - { - int hashCode = 0; - hashCode = (hashCode * 397) ^ (int)SourceId; - hashCode = (hashCode * 397) ^ (SourceName != null ? SourceName.GetHashCode() : 0); - return hashCode; - } - } - - /// - /// Dispose. - /// - public virtual void Dispose() { } - - #endregion IEquality Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs.meta deleted file mode 100644 index 4f861e68c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseGenericInputSource.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4225f613ffda4dcd881748b4af28516f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs b/AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs deleted file mode 100644 index 84b8b75ef..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs +++ /dev/null @@ -1,366 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Class providing a base implementation of the interface. - /// - public abstract class BaseInputDeviceManager : BaseDataProvider, IMixedRealityInputDeviceManager - { - private bool enablePointerCache = true; - - /// - /// Control mechanism to enable/disable use of Pointer Cache in request/recycling of pointers by Input System - /// - public bool EnablePointerCache - { - get => enablePointerCache; - set - { - if (enablePointerCache != value) - { - enablePointerCache = value; - - if (!enablePointerCache) - { - DestroyPointerCache(); - } - } - } - } - - /// - /// The input system configuration profile in use in the application. - /// - protected MixedRealityInputSystemProfile InputSystemProfile => Service?.InputSystemProfile; - - /// - public virtual IMixedRealityController[] GetActiveControllers() => System.Array.Empty(); - - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - protected BaseInputDeviceManager( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - protected BaseInputDeviceManager( - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : base(inputSystem, name, priority, profile) { } - - #region Private members - - private struct PointerConfig - { - public PointerOption profile; - public Stack cache; - } - - private PointerConfig[] pointerConfigurations = System.Array.Empty(); - - private class PointerEqualityComparer : IEqualityComparer - { - private static PointerEqualityComparer defaultComparer; - - internal static PointerEqualityComparer Default => defaultComparer ?? (defaultComparer = new PointerEqualityComparer()); - - /// - /// Check that references equals for two pointers - /// - public bool Equals(IMixedRealityPointer p1, IMixedRealityPointer p2) - { - return ReferenceEquals(p1, p2); - } - - /// - /// Unity objects have unique equals comparison and to check keys in a dictionary, - /// we want the hash code match to be Unity's unique InstanceID to compare objects. - /// - public int GetHashCode(IMixedRealityPointer pointer) - { - if (pointer is MonoBehaviour pointerObj) - { - return pointerObj.GetInstanceID(); - } - else - { - return pointer.GetHashCode(); - } - } - } - - private static readonly ProfilerMarker RequestPointersPerfMarker = new ProfilerMarker("[MRTK] BaseInputDeviceManager.RequestPointers"); - - // Active pointers associated with the config index they were spawned from - private readonly Dictionary activePointersToConfig - = new Dictionary(PointerEqualityComparer.Default); - - #endregion - - #region IMixedRealityService implementation - - /// - public override void Initialize() - { - base.Initialize(); - - if (InputSystemProfile != null && InputSystemProfile.PointerProfile != null) - { - var initPointerOptions = InputSystemProfile.PointerProfile.PointerOptions; - - // If we were previously initialized, then clear our old pointer cache - if (pointerConfigurations != null && pointerConfigurations.Length > 0) - { - DestroyPointerCache(); - } - - pointerConfigurations = new PointerConfig[initPointerOptions.Length]; - activePointersToConfig.Clear(); - - for (int i = 0; i < initPointerOptions.Length; i++) - { - pointerConfigurations[i].profile = initPointerOptions[i]; - pointerConfigurations[i].cache = new Stack(); - } - } - } - - /// - public override void Destroy() - { - DestroyPointerCache(); - - // Loop through active pointers in scene, destroy all gameobjects and clear our tracking dictionary - foreach (var pointer in activePointersToConfig.Keys) - { - if (pointer.TryGetMonoBehaviour(out MonoBehaviour pointerComponent)) - { - GameObjectExtensions.DestroyGameObject(pointerComponent.gameObject); - } - } - - pointerConfigurations = System.Array.Empty(); - activePointersToConfig.Clear(); - } - - #endregion - - #region Pointer utilization and caching - - /// - /// Request an array of pointers for the controller type. - /// - /// The controller type making the request for pointers. - /// The handedness of the controller making the request. - /// Only register pointers with a specific type. - protected virtual IMixedRealityPointer[] RequestPointers(SupportedControllerType controllerType, Handedness controllingHand) - { - using (RequestPointersPerfMarker.Auto()) - { - var returnPointers = new List(); - - CleanActivePointers(); - - for (int i = 0; i < pointerConfigurations.Length; i++) - { - var option = pointerConfigurations[i].profile; - if (option.ControllerType.HasFlag(controllerType) && option.Handedness.HasFlag(controllingHand)) - { - IMixedRealityPointer requestedPointer = null; - - if (EnablePointerCache) - { - var pointerCache = pointerConfigurations[i].cache; - while (pointerCache.Count > 0) - { - var p = pointerCache.Pop(); - if (p.TryGetMonoBehaviour(out MonoBehaviour pointerComponent)) - { - pointerComponent.gameObject.SetActive(true); - - // We got pointer from cache, continue to next pointer option to review - requestedPointer = p; - - DebugUtilities.LogVerboseFormat("RequestPointers: Reusing a cached pointer {0} for controller type {1} and handedness {2}", - requestedPointer, - controllerType, - controllingHand); - break; - } - } - } - - if (requestedPointer == null) - { - // We couldn't obtain a pointer from our cache, resort to creating a new one - requestedPointer = CreatePointer(ref option); - } - - if (requestedPointer != null) - { - // Track pointer for recycling - activePointersToConfig.Add(requestedPointer, (uint)i); - - returnPointers.Add(requestedPointer); - } - } - } - - return returnPointers.Count == 0 ? null : returnPointers.ToArray(); - } - } - - private static readonly ProfilerMarker RecyclePointersPerfMarker = new ProfilerMarker("[MRTK] BaseInputDeviceManager.RecyclePointers"); - - /// - /// Recycle all pointers associated with the provided . - /// This involves reseting the pointer, disabling the pointer GameObject, and possibly caching it for re-use. - /// - protected virtual void RecyclePointers(IMixedRealityInputSource inputSource) - { - using (RecyclePointersPerfMarker.Auto()) - { - if (inputSource != null) - { - CleanActivePointers(); - - var pointers = inputSource.Pointers; - for (int i = 0; i < pointers.Length; i++) - { - var pointer = pointers[i]; - if (pointers[i].TryGetMonoBehaviour(out MonoBehaviour pointerComponent)) - { - // Unfortunately, it's possible the gameobject source is *being* destroyed so we are not null now but will be soon. - // At least if this is a controller we know about and we expect it to be destroyed, skip - if (pointer is IMixedRealityControllerPoseSynchronizer controller && controller.DestroyOnSourceLost) - { - continue; - } - - if (EnablePointerCache) - { - pointer.Reset(); - pointerComponent.gameObject.SetActive(false); - - if (EnablePointerCache && activePointersToConfig.ContainsKey(pointer)) - { - uint pointerOptionIndex = activePointersToConfig[pointer]; - activePointersToConfig.Remove(pointer); - - // Add our pointer back to our cache - pointerConfigurations[(int)pointerOptionIndex].cache.Push(pointer); - } - } - else - { - GameObjectExtensions.DestroyGameObject(pointerComponent.gameObject); - } - } - } - } - } - } - - private static readonly ProfilerMarker CreatePointerPerfMarker = new ProfilerMarker("[MRTK] BaseInputDeviceManager.CreatePointer"); - - /// - /// Instantiate the Pointer prefab with supplied PointerOption details. If there is no IMixedRealityPointer on the prefab, then destroy and log error - /// - /// - /// PointerOption is passed by ref to reduce copy overhead of struct - /// - private IMixedRealityPointer CreatePointer(ref PointerOption option) - { - using (CreatePointerPerfMarker.Auto()) - { - var pointerObject = Object.Instantiate(option.PointerPrefab); - MixedRealityPlayspace.AddChild(pointerObject.transform); - var pointer = pointerObject.GetComponent(); - if (pointer == null) - { - Debug.LogError($"Ensure that the prefab '{option.PointerPrefab.name}' listed under Input -> Pointers -> Pointer Options has an {typeof(IMixedRealityPointer).Name} component.\nThis prefab can't be used as a pointer as configured and won't be instantiated."); - - GameObjectExtensions.DestroyGameObject(pointerObject); - } - - return pointer; - } - } - - private static readonly ProfilerMarker CleanActivePointersPerfMarker = new ProfilerMarker("[MRTK] BaseInputDeviceManager.CleanActivePointers"); - - /// - /// This class tracks pointers that have been requested and thus are considered "active" GameObjects in the scene. - /// As GameObjects, these pointers may be destroyed and thus their entry becomes "null" although the managed object is not destroyed - /// This helper loops through all dictionary entries and checks if it is null, if so it is removed - /// - private void CleanActivePointers() - { - using (CleanActivePointersPerfMarker.Auto()) - { - var removal = new List(); - - var enumerator = activePointersToConfig.GetEnumerator(); - while (enumerator.MoveNext()) - { - var pointer = enumerator.Current.Key; - if (pointer.IsNull()) - { - removal.Add(pointer); - } - } - - for (int i = 0; i < removal.Count; i++) - { - activePointersToConfig.Remove(removal[i]); - } - } - } - - /// - /// Wipes references to cached pointers for every pointer configuration option. All GameObject references are likewise destroyed - /// - private void DestroyPointerCache() - { - for (int i = 0; i < pointerConfigurations.Length; i++) - { - while (pointerConfigurations[i].cache.Count > 0) - { - if (pointerConfigurations[i].cache.Pop().TryGetMonoBehaviour(out MonoBehaviour pointerComponent)) - { - GameObjectExtensions.DestroyGameObject(pointerComponent.gameObject); - } - } - } - } - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs.meta deleted file mode 100644 index df9e77705..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseInputDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8e9eed4fcfc44de1b60e440db98807ed -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs b/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs deleted file mode 100644 index b470d66bf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs +++ /dev/null @@ -1,339 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Class providing a base implementation of the interface. - /// - public abstract class BaseSpatialMeshObserver : BaseSpatialObserver, IMixedRealitySpatialAwarenessMeshObserver, ISpatialAwarenessPhysicsProperties - { - /// - /// Constructor. - /// - /// The to which the observer is providing data. - /// The friendly name of the data provider. - /// The registration priority of the data provider. - /// The configuration profile for the data provider. - protected BaseSpatialMeshObserver( - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(spatialAwarenessSystem, name, priority, profile) - { - } - - #region BaseSpatialMeshObserver Implementation - - protected MixedRealitySpatialAwarenessEventData meshEventData = null; - - private GameObject observedObjectParent = null; - - /// - /// The parent GameObject for all observed meshes to be placed under. - /// - protected virtual GameObject ObservedObjectParent => observedObjectParent != null ? observedObjectParent : (observedObjectParent = SpatialAwarenessSystem?.CreateSpatialAwarenessObservationParent(Name)); - - protected virtual void ReadProfile() - { - if (ConfigurationProfile == null) - { - Debug.LogError($"{Name} requires a configuration profile to run properly."); - return; - } - - MixedRealitySpatialAwarenessMeshObserverProfile profile = ConfigurationProfile as MixedRealitySpatialAwarenessMeshObserverProfile; - if (profile == null) - { - Debug.LogError($"{Name}'s configuration profile must be a MixedRealitySpatialAwarenessMeshObserverProfile."); - return; - } - - // IMixedRealitySpatialAwarenessObserver settings - StartupBehavior = profile.StartupBehavior; - IsStationaryObserver = profile.IsStationaryObserver; - ObservationExtents = profile.ObservationExtents; - ObserverVolumeType = profile.ObserverVolumeType; - UpdateInterval = profile.UpdateInterval; - - // IMixedRealitySpatialAwarenessMeshObserver settings - DisplayOption = profile.DisplayOption; - LevelOfDetail = profile.LevelOfDetail; - MeshPhysicsLayer = profile.MeshPhysicsLayer; - OcclusionMaterial = profile.OcclusionMaterial; - PhysicsMaterial = profile.PhysicsMaterial; - RecalculateNormals = profile.RecalculateNormals; - TrianglesPerCubicMeter = profile.TrianglesPerCubicMeter; - VisibleMaterial = profile.VisibleMaterial; - } - - private static readonly ProfilerMarker ApplyUpdatedMeshDisplayOptionPerfMarker = new ProfilerMarker("[MRTK] BaseSpatialMeshObserver.ApplyUpdatedMeshDisplayOption"); - - /// - /// Applies the mesh display option to existing meshes when modified at runtime. - /// - /// The value to be used to determine the appropriate material. - protected virtual void ApplyUpdatedMeshDisplayOption(SpatialAwarenessMeshDisplayOptions option) - { - using (ApplyUpdatedMeshDisplayOptionPerfMarker.Auto()) - { - bool enable = (option != SpatialAwarenessMeshDisplayOptions.None); - - foreach (SpatialAwarenessMeshObject meshObject in Meshes.Values) - { - if (meshObject?.Renderer == null) { continue; } - - if (enable) - { - meshObject.Renderer.sharedMaterial = (option == SpatialAwarenessMeshDisplayOptions.Visible) ? - VisibleMaterial : - OcclusionMaterial; - } - - meshObject.Renderer.enabled = enable; - } - } - } - - private static readonly ProfilerMarker ApplyUpdatedMeshPhysicsPerfMarker = new ProfilerMarker("[MRTK] BaseSpatialMeshObserver.ApplyUpdatedMeshPhysics"); - - /// - /// Applies the physical material to existing meshes when modified at runtime. - /// - protected virtual void ApplyUpdatedMeshPhysics() - { - using (ApplyUpdatedMeshPhysicsPerfMarker.Auto()) - { - foreach (SpatialAwarenessMeshObject meshObject in Meshes.Values) - { - if (meshObject?.Collider == null) { continue; } - meshObject.Collider.material = PhysicsMaterial; - } - } - } - - /// - /// Maps to . - /// - /// The desired level of density for the spatial mesh. - /// - /// The number of triangles per cubic meter that will result in the desired level of density. - /// - protected virtual int LookupTriangleDensity(SpatialAwarenessMeshLevelOfDetail levelOfDetail) - { - // By default, returns the existing value. This will be custom defined for each platform, if necessary. - return TrianglesPerCubicMeter; - } - - private static readonly ProfilerMarker ApplyUpdatedPhysicsLayerPerfMarker = new ProfilerMarker("[MRTK] BaseSpatialMeshObserver.ApplyUpdatedPhysicsLayer"); - - /// - /// Updates the mesh physics layer for current mesh observations. - /// - protected virtual void ApplyUpdatedPhysicsLayer() - { - using (ApplyUpdatedPhysicsLayerPerfMarker.Auto()) - { - foreach (SpatialAwarenessMeshObject meshObject in Meshes.Values) - { - if (meshObject?.GameObject == null) { continue; } - - meshObject.GameObject.layer = MeshPhysicsLayer; - } - } - } - - private static readonly ProfilerMarker OnMeshAddedPerfMarker = new ProfilerMarker("[MRTK] BaseSpatialMeshObserver.OnMeshAdded - Raising OnObservationAdded"); - - /// - /// Event sent whenever a mesh is added. - /// - protected static readonly ExecuteEvents.EventFunction> OnMeshAdded = - delegate (IMixedRealitySpatialAwarenessObservationHandler handler, BaseEventData eventData) - { - using (OnMeshAddedPerfMarker.Auto()) - { - MixedRealitySpatialAwarenessEventData spatialEventData = ExecuteEvents.ValidateEventData>(eventData); - handler.OnObservationAdded(spatialEventData); - } - }; - - private static readonly ProfilerMarker OnMeshUpdatedPerfMarker = new ProfilerMarker("[MRTK] BaseSpatialMeshObserver.OnMeshUpdated - Raising OnObservationUpdated"); - - /// - /// Event sent whenever a mesh is updated. - /// - protected static readonly ExecuteEvents.EventFunction> OnMeshUpdated = - delegate (IMixedRealitySpatialAwarenessObservationHandler handler, BaseEventData eventData) - { - using (OnMeshUpdatedPerfMarker.Auto()) - { - MixedRealitySpatialAwarenessEventData spatialEventData = ExecuteEvents.ValidateEventData>(eventData); - handler.OnObservationUpdated(spatialEventData); - } - }; - - private static readonly ProfilerMarker OnMeshRemovedPerfMarker = new ProfilerMarker("[MRTK] BaseSpatialMeshObserver.OnMeshRemoved - Raising OnObservationRemoved"); - - /// - /// Event sent whenever a mesh is discarded. - /// - protected static readonly ExecuteEvents.EventFunction> OnMeshRemoved = - delegate (IMixedRealitySpatialAwarenessObservationHandler handler, BaseEventData eventData) - { - using (OnMeshRemovedPerfMarker.Auto()) - { - MixedRealitySpatialAwarenessEventData spatialEventData = ExecuteEvents.ValidateEventData>(eventData); - handler.OnObservationRemoved(spatialEventData); - } - }; - - #endregion BaseSpatialMeshObserver Implementation - - #region IMixedRealityDataProvider Implementation - - /// - /// Initializes event data and creates the observer. - /// - public override void Initialize() - { - meshEventData = new MixedRealitySpatialAwarenessEventData(EventSystem.current); - - ReadProfile(); - - base.Initialize(); - } - - #endregion IMixedRealityDataProvider Implementation - - #region IMixedRealitySpatialMeshObserver Implementation - - private SpatialAwarenessMeshDisplayOptions displayOption = SpatialAwarenessMeshDisplayOptions.Visible; - - /// - public SpatialAwarenessMeshDisplayOptions DisplayOption - { - get { return displayOption; } - set - { - displayOption = value; - ApplyUpdatedMeshDisplayOption(displayOption); - } - } - - private SpatialAwarenessMeshLevelOfDetail levelOfDetail = SpatialAwarenessMeshLevelOfDetail.Coarse; - - /// - public SpatialAwarenessMeshLevelOfDetail LevelOfDetail - { - get { return levelOfDetail; } - set - { - if (value != SpatialAwarenessMeshLevelOfDetail.Custom) - { - TrianglesPerCubicMeter = LookupTriangleDensity(value); - } - - levelOfDetail = value; - } - } - - /// - /// The backing field for Meshes, to allow the mesh observer implementation to track its meshes. - /// - protected readonly Dictionary meshes = new Dictionary(); - - /// - public IReadOnlyDictionary Meshes => new Dictionary(meshes); - - private int meshPhysicsLayer = 31; - - /// - public int MeshPhysicsLayer - { - get { return meshPhysicsLayer; } - set - { - if ((value < 0) || (value > 31)) - { - Debug.LogError("Specified MeshPhysicsLayer is out of bounds. Please set a value between 0 and 31, inclusive."); - return; - } - - meshPhysicsLayer = value; - ApplyUpdatedPhysicsLayer(); - } - } - - /// - public int MeshPhysicsLayerMask => (1 << MeshPhysicsLayer); - - /// - public bool RecalculateNormals { get; set; } = true; - - /// - public int TrianglesPerCubicMeter { get; set; } = 0; - - private Material occlusionMaterial = null; - - /// - public Material OcclusionMaterial - { - get { return occlusionMaterial; } - set - { - if (value != occlusionMaterial) - { - occlusionMaterial = value; - - if (DisplayOption == SpatialAwarenessMeshDisplayOptions.Occlusion) - { - ApplyUpdatedMeshDisplayOption(SpatialAwarenessMeshDisplayOptions.Occlusion); - } - } - } - } - - private PhysicMaterial physicsMaterial; - - public PhysicMaterial PhysicsMaterial - { - get { return physicsMaterial; } - set - { - if (value != physicsMaterial) - { - physicsMaterial = value; - ApplyUpdatedMeshPhysics(); - } - } - } - - private Material visibleMaterial = null; - - /// - public Material VisibleMaterial - { - get { return visibleMaterial; } - set - { - if (value != visibleMaterial) - { - visibleMaterial = value; - - if (DisplayOption == SpatialAwarenessMeshDisplayOptions.Visible) - { - ApplyUpdatedMeshDisplayOption(SpatialAwarenessMeshDisplayOptions.Visible); - } - } - } - } - - #endregion IMixedRealitySpatialMeshObserver Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs.meta deleted file mode 100644 index 14f617814..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialMeshObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cb283f9fcabe1ff46a767f251c93f24d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs b/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs deleted file mode 100644 index 783dc4de0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialAwareness -{ - /// - /// Class providing a base implementation of the interface. - /// - public abstract class BaseSpatialObserver : BaseDataProvider, IMixedRealitySpatialAwarenessObserver - { - /// - /// Default dedicated layer for spatial awareness layer used by most components in MRTK - /// - public const int DefaultSpatialAwarenessLayer = 31; - - /// - /// Constructor. - /// - /// The to which the observer is providing data. - /// The friendly name of the data provider. - /// The registration priority of the data provider. - /// The configuration profile for the data provider. - protected BaseSpatialObserver( - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(spatialAwarenessSystem, name, priority, profile) - { - SpatialAwarenessSystem = spatialAwarenessSystem; - - SourceId = (SpatialAwarenessSystem != null) ? SpatialAwarenessSystem.GenerateNewSourceId() : 0; - SourceName = name; - } - - /// - /// The spatial awareness system that is associated with this observer. - /// - protected IMixedRealitySpatialAwarenessSystem SpatialAwarenessSystem { get; private set; } - - /// - /// Creates the spatial observer and handles the desired startup behavior. - /// - protected virtual void CreateObserver() { } - - /// - /// Ensures that the spatial observer has been stopped and destroyed. - /// - protected virtual void CleanupObserver() { } - - #region BaseService Implementation - - /// - protected override void Dispose(bool disposing) - { - if (disposed) - { - return; - } - - base.Dispose(disposing); - - if (disposing) - { - CleanupObservationsAndObserver(); - } - - disposed = true; - } - - #endregion BaseService Implementation - - #region IMixedRealityDataProvider Implementation - - /// - /// Creates the observer. - /// - public override void Initialize() - { - CreateObserver(); - } - - /// - /// Suspends the observer, clears observations, cleans up the observer, then re-initializes. - /// - public override void Reset() - { - Destroy(); - Initialize(); - } - - /// - public override void Enable() - { - if (!IsRunning && StartupBehavior == AutoStartBehavior.AutoStart) - { - Resume(); - } - } - - /// - public override void Disable() - { - // If we are disabled while running... - if (IsRunning) - { - // Suspend the observer - Suspend(); - } - } - - /// - public override void Destroy() - { - CleanupObservationsAndObserver(); - } - - #endregion IMixedRealityDataProvider Implementation - - #region IMixedRealityEventSource Implementation - - /// - bool IEqualityComparer.Equals(object x, object y) - { - return x.Equals(y); - } - - /// - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) { return false; } - if (ReferenceEquals(this, obj)) { return true; } - if (obj.GetType() != GetType()) { return false; } - - return Equals((IMixedRealitySpatialAwarenessObserver)obj); - } - - private bool Equals(IMixedRealitySpatialAwarenessObserver other) - { - return ((other != null) && - (SourceId == other.SourceId) && - string.Equals(SourceName, other.SourceName)); - } - - /// - public int GetHashCode(object obj) - { - return obj.GetHashCode(); - } - - /// - public override int GetHashCode() - { - return Mathf.Abs(SourceName.GetHashCode()); - } - - /// - public uint SourceId { get; } - - /// - public string SourceName { get; } - - #endregion IMixedRealityEventSource Implementation - - #region IMixedRealitySpatialAwarenessObserver Implementation - - /// - public AutoStartBehavior StartupBehavior { get; set; } = AutoStartBehavior.AutoStart; - - /// - public int DefaultPhysicsLayer { get; } = DefaultSpatialAwarenessLayer; - - /// - public bool IsRunning { get; protected set; } = false; - - /// - public bool IsStationaryObserver { get; set; } = false; - - /// - public Quaternion ObserverRotation { get; set; } = Quaternion.identity; - - public Vector3 ObserverOrigin { get; set; } = Vector3.zero; - - /// - public VolumeType ObserverVolumeType { get; set; } = VolumeType.AxisAlignedCube; - - /// - public Vector3 ObservationExtents { get; set; } = Vector3.one * 3f; // 3 meter sides / radius - - /// - public float UpdateInterval { get; set; } = 3.5f; // 3.5 seconds - - /// - public virtual void Resume() { } - - /// - public virtual void Suspend() { } - - /// - public virtual void ClearObservations() { } - - #endregion IMixedRealitySpatialAwarenessObserver Implementation - - #region Helpers - - /// - /// Destroys all observed objects and the observer. - /// - private void CleanupObservationsAndObserver() - { - Disable(); - - // Destroys all observed objects and the observer. - ClearObservations(); - CleanupObserver(); - } - - #endregion Helpers - - #region Obsolete - - /// - /// Constructor. - /// - /// The instance that loaded the observer. - /// The to which the observer is providing data. - /// The friendly name of the data provider. - /// The registration priority of the data provider. - /// The configuration profile for the data provider. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - protected BaseSpatialObserver( - IMixedRealityServiceRegistrar registrar, - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(spatialAwarenessSystem, name, priority, profile) - { - Registrar = registrar; - } - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs.meta deleted file mode 100644 index 8183d78ac..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/BaseSpatialObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 331340f6dbc56884a81b44ed00b66dea -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs b/AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs deleted file mode 100644 index 70ce44325..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs +++ /dev/null @@ -1,185 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using Microsoft.MixedReality.Toolkit.Teleport; -using System.Collections; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Base Class for pointers that don't inherit from MonoBehaviour. - /// - public abstract class GenericPointer : IMixedRealityPointer - { - /// - /// Constructor. - /// - protected GenericPointer(string pointerName, IMixedRealityInputSource inputSourceParent) - { - PointerId = (CoreServices.InputSystem?.FocusProvider != null) ? CoreServices.InputSystem.FocusProvider.GenerateNewPointerId() : 0; - PointerName = pointerName; - this.inputSourceParent = inputSourceParent; - } - - /// - public virtual IMixedRealityController Controller - { - get { return controller; } - set - { - controller = value; - - if (controller != null) - { - inputSourceParent = controller.InputSource; - } - } - } - - private IMixedRealityController controller; - - /// - public uint PointerId { get; } - - /// - public string PointerName { get; set; } - - /// - public virtual IMixedRealityInputSource InputSourceParent - { - get { return inputSourceParent; } - protected set { inputSourceParent = value; } - } - - private IMixedRealityInputSource inputSourceParent; - - /// - public IMixedRealityCursor BaseCursor { get; set; } - - /// - public ICursorModifier CursorModifier { get; set; } - - /// - public IMixedRealityTeleportHotSpot TeleportHotSpot { get; set; } - - private bool isInteractionEnabled = true; - - /// - public bool IsInteractionEnabled - { - get { return isInteractionEnabled && IsActive; } - set - { - if (isInteractionEnabled != value) - { - isInteractionEnabled = value; - if (BaseCursor != null) - { - BaseCursor.SetVisibility(value); - } - } - } - } - - public bool IsActive { get; set; } - - /// - public bool IsFocusLocked { get; set; } - - /// - public bool IsTargetPositionLockedOnFocusLock { get; set; } - - /// - /// The pointer's maximum extent when raycasting. - /// - public virtual float PointerExtent { get; set; } = 10f; - - /// - public RayStep[] Rays { get; protected set; } = { new RayStep(Vector3.zero, Vector3.forward) }; - - /// - public LayerMask[] PrioritizedLayerMasksOverride { get; set; } - - /// - public IMixedRealityFocusHandler FocusTarget { get; set; } - - /// - public IPointerResult Result { get; set; } - - /// - /// Ray stabilizer used when calculating position of pointer end point. - /// - public IBaseRayStabilizer RayStabilizer { get; set; } - - /// - public SceneQueryType SceneQueryType { get; set; } = SceneQueryType.SimpleRaycast; - - /// - public float SphereCastRadius { get; set; } - - /// - public abstract Vector3 Position { get; } - - /// - public abstract Quaternion Rotation { get; } - - /// - public abstract void OnPreSceneQuery(); - - /// - public abstract void OnPostSceneQuery(); - - /// - public abstract void OnPreCurrentPointerTargetChange(); - - /// - public abstract void Reset(); - - #region IEquality Implementation - - public static bool Equals(IMixedRealityPointer left, IMixedRealityPointer right) - { - return left.Equals(right); - } - - bool IEqualityComparer.Equals(object left, object right) - { - return left.Equals(right); - } - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) { return false; } - if (ReferenceEquals(this, obj)) { return true; } - if (obj.GetType() != GetType()) { return false; } - - return Equals((IMixedRealityPointer)obj); - } - - private bool Equals(IMixedRealityPointer other) - { - return other != null && PointerId == other.PointerId && string.Equals(PointerName, other.PointerName); - } - - int IEqualityComparer.GetHashCode(object obj) - { - return obj.GetHashCode(); - } - - /// - public override int GetHashCode() - { - unchecked - { - int hashCode = 0; - hashCode = (hashCode * 397) ^ (int)PointerId; - hashCode = (hashCode * 397) ^ (PointerName != null ? PointerName.GetHashCode() : 0); - return hashCode; - } - } - - #endregion IEquality Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs.meta deleted file mode 100644 index 30d502854..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/GenericPointer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 471b4829e4534ed28ca0379e2c013f8d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands.meta deleted file mode 100644 index c4b0339d3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8551187a1d3244c448ce9f2d8feaf44c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs b/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs deleted file mode 100644 index efae0f0ac..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public abstract class BaseHand : BaseController, IMixedRealityHand - { - // Hand ray - protected virtual IHandRay HandRay { get; } = new HandRay(); - - public override bool IsInPointingPose => HandRay.ShouldShowRay; - - // Velocity internal states - private float deltaTimeStart; - private const int velocityUpdateInterval = 6; - private int frameOn = 0; - - private readonly Vector3[] velocityPositionsCache = new Vector3[velocityUpdateInterval]; - private readonly Vector3[] velocityNormalsCache = new Vector3[velocityUpdateInterval]; - private Vector3 velocityPositionsSum = Vector3.zero; - private Vector3 velocityNormalsSum = Vector3.zero; - - /// - /// Constructor. - /// - protected BaseHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => DefaultInteractions; - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => DefaultInteractions; - - #region Protected InputSource Helpers - - #region Gesture Definitions - - protected void UpdateVelocity() - { - if (frameOn < velocityUpdateInterval) - { - velocityPositionsCache[frameOn] = GetJointPosition(TrackedHandJoint.Palm); - velocityPositionsSum += velocityPositionsCache[frameOn]; - velocityNormalsCache[frameOn] = GetPalmNormal(); - velocityNormalsSum += velocityNormalsCache[frameOn]; - } - else - { - int frameIndex = frameOn % velocityUpdateInterval; - - float deltaTime = Time.unscaledTime - deltaTimeStart; - - Vector3 newPosition = GetJointPosition(TrackedHandJoint.Palm); - Vector3 newNormal = GetPalmNormal(); - - Vector3 newPositionsSum = velocityPositionsSum - velocityPositionsCache[frameIndex] + newPosition; - Vector3 newNormalsSum = velocityNormalsSum - velocityNormalsCache[frameIndex] + newNormal; - - Velocity = (newPositionsSum - velocityPositionsSum) / deltaTime / velocityUpdateInterval; - - Quaternion rotation = Quaternion.FromToRotation(velocityNormalsSum / velocityUpdateInterval, newNormalsSum / velocityUpdateInterval); - Vector3 rotationRate = rotation.eulerAngles * Mathf.Deg2Rad; - AngularVelocity = rotationRate / deltaTime; - - velocityPositionsCache[frameIndex] = newPosition; - velocityNormalsCache[frameIndex] = newNormal; - velocityPositionsSum = newPositionsSum; - velocityNormalsSum = newNormalsSum; - } - - deltaTimeStart = Time.unscaledTime; - frameOn++; - } - - #endregion Gesture Definitions - - /// - public abstract bool TryGetJoint(TrackedHandJoint joint, out MixedRealityPose pose); - - private Vector3 GetJointPosition(TrackedHandJoint jointToGet) - { - if (TryGetJoint(jointToGet, out MixedRealityPose pose)) - { - return pose.Position; - } - return Vector3.zero; - } - - protected Vector3 GetPalmNormal() - { - if (TryGetJoint(TrackedHandJoint.Palm, out MixedRealityPose pose)) - { - return -pose.Up; - } - return Vector3.zero; - } - - private float DistanceSqrPointToLine(Vector3 lineStart, Vector3 lineEnd, Vector3 point) - { - if (lineStart == lineEnd) - { - return (point - lineStart).magnitude; - } - - float lineSegmentMagnitude = (lineEnd - lineStart).magnitude; - Vector3 ray = (lineEnd - lineStart); - ray *= (1.0f / lineSegmentMagnitude); - float dot = Vector3.Dot(point - lineStart, ray); - if (dot <= 0) - { - return (point - lineStart).sqrMagnitude; - } - if (dot >= lineSegmentMagnitude) - { - return (point - lineEnd).sqrMagnitude; - } - return ((lineStart + (ray * dot)) - point).sqrMagnitude; - } - - #endregion Private InputSource Helpers - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs.meta deleted file mode 100644 index 60c45a782..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3098b0ad17dc13545a50c2dee5917a08 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs b/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs deleted file mode 100644 index 7ea1734bc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs +++ /dev/null @@ -1,213 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [AddComponentMenu("Scripts/MRTK/Core/BaseHandVisualizer")] - public class BaseHandVisualizer : MonoBehaviour, IMixedRealityHandVisualizer, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler, IMixedRealityHandMeshHandler - { - public virtual Handedness Handedness { get; set; } - - public GameObject GameObjectProxy => gameObject; - - public IMixedRealityController Controller { get; set; } - - protected readonly Dictionary joints = new Dictionary(); - protected MeshFilter handMeshFilter; - - // This member stores the last set of hand mesh vertices, to avoid using - // handMeshFilter.mesh.vertices, which does a copy of the vertices. - private Vector3[] lastHandMeshVertices; - - private void OnEnable() - { - CoreServices.InputSystem?.RegisterHandler(this); - CoreServices.InputSystem?.RegisterHandler(this); - CoreServices.InputSystem?.RegisterHandler(this); - } - - private void OnDisable() - { - CoreServices.InputSystem?.UnregisterHandler(this); - CoreServices.InputSystem?.UnregisterHandler(this); - CoreServices.InputSystem?.UnregisterHandler(this); - } - - private void OnDestroy() - { - foreach (var joint in joints) - { - Destroy(joint.Value.gameObject); - } - - if (handMeshFilter != null) - { - Destroy(handMeshFilter.gameObject); - handMeshFilter = null; - } - } - - public bool TryGetJointTransform(TrackedHandJoint joint, out Transform jointTransform) - { - if (joints == null) - { - jointTransform = null; - return false; - } - - if (joints.TryGetValue(joint, out jointTransform)) - { - return true; - } - - jointTransform = null; - return false; - } - - void IMixedRealitySourceStateHandler.OnSourceDetected(SourceStateEventData eventData) { } - - void IMixedRealitySourceStateHandler.OnSourceLost(SourceStateEventData eventData) - { - if (Controller?.InputSource.SourceId == eventData.SourceId) - { - Destroy(gameObject); - } - } - - void IMixedRealityHandJointHandler.OnHandJointsUpdated(InputEventData> eventData) - { - var inputSystem = CoreServices.InputSystem; - - if (eventData.InputSource.SourceId != Controller.InputSource.SourceId) - { - return; - } - Debug.Assert(eventData.Handedness == Controller.ControllerHandedness); - - MixedRealityHandTrackingProfile handTrackingProfile = inputSystem?.InputSystemProfile.HandTrackingProfile; - if (handTrackingProfile != null && !handTrackingProfile.EnableHandJointVisualization) - { - // clear existing joint GameObjects / meshes - foreach (var joint in joints) - { - Destroy(joint.Value.gameObject); - } - - joints.Clear(); - return; - } - - foreach (TrackedHandJoint handJoint in eventData.InputData.Keys) - { - Transform jointTransform; - if (joints.TryGetValue(handJoint, out jointTransform)) - { - jointTransform.position = eventData.InputData[handJoint].Position; - jointTransform.rotation = eventData.InputData[handJoint].Rotation; - } - else - { - GameObject prefab; - if (handJoint == TrackedHandJoint.None) - { - // No visible mesh for the "None" joint - prefab = null; - } - else if (handJoint == TrackedHandJoint.Palm) - { - prefab = inputSystem.InputSystemProfile.HandTrackingProfile.PalmJointPrefab; - } - else if (handJoint == TrackedHandJoint.IndexTip) - { - prefab = inputSystem.InputSystemProfile.HandTrackingProfile.FingerTipPrefab; - } - else - { - prefab = inputSystem.InputSystemProfile.HandTrackingProfile.JointPrefab; - } - - GameObject jointObject; - if (prefab != null) - { - jointObject = Instantiate(prefab); - } - else - { - jointObject = new GameObject(); - } - - jointObject.name = handJoint.ToString() + " Proxy Transform"; - jointObject.transform.position = eventData.InputData[handJoint].Position; - jointObject.transform.rotation = eventData.InputData[handJoint].Rotation; - jointObject.transform.parent = transform; - - joints.Add(handJoint, jointObject.transform); - } - } - } - - public void OnHandMeshUpdated(InputEventData eventData) - { - if (eventData.Handedness != Controller?.ControllerHandedness) - { - return; - } - - bool newMesh = handMeshFilter == null; - - if (newMesh && - CoreServices.InputSystem?.InputSystemProfile != null && - CoreServices.InputSystem.InputSystemProfile.HandTrackingProfile != null && - CoreServices.InputSystem.InputSystemProfile.HandTrackingProfile.HandMeshPrefab != null) - { - handMeshFilter = Instantiate(CoreServices.InputSystem.InputSystemProfile.HandTrackingProfile.HandMeshPrefab).GetComponent(); - lastHandMeshVertices = handMeshFilter.mesh.vertices; - } - - if (handMeshFilter != null) - { - Mesh mesh = handMeshFilter.mesh; - - bool meshChanged = false; - // On some platforms, mesh length counts may change as the hand mesh is updated. - // In order to update the vertices when the array sizes change, the mesh - // must be cleared per instructions here: - // https://docs.unity3d.com/ScriptReference/Mesh.html - if ((lastHandMeshVertices == null && eventData.InputData.vertices != null) || - (lastHandMeshVertices != null && - lastHandMeshVertices.Length != 0 && - lastHandMeshVertices.Length != eventData.InputData.vertices?.Length)) - { - meshChanged = true; - mesh.Clear(); - } - - mesh.vertices = eventData.InputData.vertices; - mesh.normals = eventData.InputData.normals; - lastHandMeshVertices = eventData.InputData.vertices; - - if (newMesh || meshChanged) - { - mesh.triangles = eventData.InputData.triangles; - - if (eventData.InputData.uvs?.Length > 0) - { - mesh.uv = eventData.InputData.uvs; - } - } - - if (meshChanged) - { - mesh.RecalculateBounds(); - } - - handMeshFilter.transform.position = eventData.InputData.position; - handMeshFilter.transform.rotation = eventData.InputData.rotation; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs.meta deleted file mode 100644 index f04484ad7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/BaseHandVisualizer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1a37656c1d3e22d4fb4bd26e18ad185f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs deleted file mode 100644 index 59ad3a0d3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Utility behavior to access the axis aligned bounds of IMixedRealityHands (or the proxy visualizer of IMixedRealityControllers). - /// - [AddComponentMenu("Scripts/MRTK/Core/HandBounds")] - public class HandBounds : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler - { - /// - /// Accessor for the bounds associated with a handedness, calculated in global-axis-aligned space. - /// - public Dictionary Bounds { get; private set; } = new Dictionary(); - - /// - /// Accessor for the bounds associated with a handedness, calculated in local hand-space, locally axis aligned. - /// - public Dictionary LocalBounds { get; private set; } = new Dictionary(); - - [SerializeField] - [Tooltip("Should a gizmo be drawn to represent the hand bounds.")] - private bool drawBoundsGizmo = false; - - /// - /// Should a gizmo be drawn to represent the hand bounds. - /// - public bool DrawBoundsGizmo - { - get => drawBoundsGizmo; - set => drawBoundsGizmo = value; - } - - [SerializeField] - [Tooltip("Should a gizmo be drawn to represent the locally-calculated hand bounds.")] - private bool drawLocalBoundsGizmo = false; - - /// - /// Should a gizmo be drawn to represent the locally-calculated hand bounds. - /// - public bool DrawLocalBoundsGizmo - { - get => drawLocalBoundsGizmo; - set => drawLocalBoundsGizmo = value; - } - - /// - /// Mapping between controller handedness and associated hand transforms. - /// Used to transform the debug gizmos when rendering the hand AABBs. - /// - private Dictionary BoundsTransforms = new Dictionary(); - - #region MonoBehaviour Implementation - - private void OnEnable() - { - CoreServices.InputSystem?.RegisterHandler(this); - CoreServices.InputSystem?.RegisterHandler(this); - } - - private void OnDisable() - { - CoreServices.InputSystem?.UnregisterHandler(this); - CoreServices.InputSystem?.UnregisterHandler(this); - } - - private void OnDrawGizmos() - { - if (drawBoundsGizmo) - { - Gizmos.color = Color.yellow; - foreach (var kvp in Bounds) - { - Gizmos.DrawWireCube(kvp.Value.center, kvp.Value.size); - } - } - if (drawLocalBoundsGizmo) - { - Gizmos.color = Color.cyan; - foreach (var kvp in LocalBounds) - { - Gizmos.matrix = BoundsTransforms[kvp.Key]; - Gizmos.DrawWireCube(kvp.Value.center, kvp.Value.size); - } - } - } - - #endregion MonoBehaviour Implementation - - #region IMixedRealitySourceStateHandler Implementation - - /// - public void OnSourceDetected(SourceStateEventData eventData) - { - var hand = eventData.Controller; - - if (hand != null) - { - // If a hand does not contain joints, OnHandJointsUpdated will not be called the bounds should - // be calculated based on the proxy visuals. - bool handContainsJoints = (hand as IMixedRealityHand) != null; - - if (!handContainsJoints) - { - var proxy = hand.Visualizer?.GameObjectProxy; - - if (proxy != null) - { - // Bounds calculated in proxy-space will have an origin of zero, but bounds - // calculated in global space will have an origin centered on the proxy transform. - var newGlobalBounds = new Bounds(proxy.transform.position, Vector3.zero); - var newLocalBounds = new Bounds(Vector3.zero, Vector3.zero); - var boundsPoints = new List(); - BoundsExtensions.GetRenderBoundsPoints(proxy, boundsPoints, 0); - - foreach (var point in boundsPoints) - { - newGlobalBounds.Encapsulate(point); - // Local hand-space bounds are encapsulated using proxy-space point coordinates - newLocalBounds.Encapsulate(proxy.transform.InverseTransformPoint(point)); - } - - Bounds[hand.ControllerHandedness] = newGlobalBounds; - LocalBounds[hand.ControllerHandedness] = newLocalBounds; - BoundsTransforms[hand.ControllerHandedness] = proxy.transform.localToWorldMatrix; - } - } - } - } - - /// - public void OnSourceLost(SourceStateEventData eventData) - { - var hand = eventData.Controller; - - if (hand != null) - { - Bounds.Remove(hand.ControllerHandedness); - LocalBounds.Remove(hand.ControllerHandedness); - BoundsTransforms.Remove(hand.ControllerHandedness); - } - } - - #endregion IMixedRealitySourceStateHandler Implementation - - #region IMixedRealityHandJointHandler Implementation - - /// - public void OnHandJointsUpdated(InputEventData> eventData) - { - MixedRealityPose palmPose; - - if (eventData.InputData.TryGetValue(TrackedHandJoint.Palm, out palmPose)) - { - var newGlobalBounds = new Bounds(palmPose.Position, Vector3.zero); - var newLocalBounds = new Bounds(Vector3.zero, Vector3.zero); - - foreach (var kvp in eventData.InputData) - { - if (kvp.Key == TrackedHandJoint.None || - kvp.Key == TrackedHandJoint.Palm) - { - continue; - } - - newGlobalBounds.Encapsulate(kvp.Value.Position); - newLocalBounds.Encapsulate(Quaternion.Inverse(palmPose.Rotation) * (kvp.Value.Position - palmPose.Position)); - } - - Bounds[eventData.Handedness] = newGlobalBounds; - LocalBounds[eventData.Handedness] = newLocalBounds; - - // We must normalize the quaternion before constructing the TRS matrix; non-unit-length quaternions - // may be emitted from the palm-pose and they must be renormalized. - BoundsTransforms[eventData.Handedness] = Matrix4x4.TRS(palmPose.Position, palmPose.Rotation.normalized, Vector3.one); - } - } - - #endregion IMixedRealityHandJointHandler Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs.meta deleted file mode 100644 index e4b447c60..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandBounds.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 248664dc0e60dca4fb35d70cd0c5695b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs deleted file mode 100644 index 03d2ad324..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - (SupportedPlatforms)(-1), // All platforms supported by Unity - "Hand Joint Service")] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/HandTracking.html")] - public class HandJointService : BaseInputDeviceManager, IMixedRealityHandJointService - { - private IMixedRealityHand leftHand; - private IMixedRealityHand rightHand; - - private Dictionary leftHandFauxJoints = new Dictionary(); - private Dictionary rightHandFauxJoints = new Dictionary(); - - #region BaseInputDeviceManager Implementation - - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public HandJointService( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public HandJointService( - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : base(inputSystem, name, priority, profile) { } - - /// - public override void LateUpdate() - { - base.LateUpdate(); - - leftHand = null; - rightHand = null; - - foreach (var detectedController in Service.DetectedControllers) - { - var hand = detectedController as IMixedRealityHand; - if (hand != null) - { - if (detectedController.ControllerHandedness == Handedness.Left) - { - if (leftHand == null) - { - leftHand = hand; - } - } - else if (detectedController.ControllerHandedness == Handedness.Right) - { - if (rightHand == null) - { - rightHand = hand; - } - } - } - } - - if (leftHand != null) - { - foreach (var fauxJoint in leftHandFauxJoints) - { - if (leftHand.TryGetJoint(fauxJoint.Key, out MixedRealityPose pose)) - { - fauxJoint.Value.SetPositionAndRotation(pose.Position, pose.Rotation); - } - } - } - - if (rightHand != null) - { - foreach (var fauxJoint in rightHandFauxJoints) - { - if (rightHand.TryGetJoint(fauxJoint.Key, out MixedRealityPose pose)) - { - fauxJoint.Value.SetPositionAndRotation(pose.Position, pose.Rotation); - } - } - } - } - - /// - public override void Disable() - { - base.Disable(); - - // Check existence of fauxJoints before destroying. This avoids a (harmless) race - // condition when the service is getting destroyed at the same time that the gameObjects - // are being destroyed at shutdown. - if (leftHandFauxJoints != null) - { - foreach (var fauxJoint in leftHandFauxJoints.Values) - { - if (fauxJoint != null) - { - Object.Destroy(fauxJoint.gameObject); - } - } - leftHandFauxJoints.Clear(); - } - - if (rightHandFauxJoints != null) - { - foreach (var fauxJoint in rightHandFauxJoints.Values) - { - if (fauxJoint != null) - { - Object.Destroy(fauxJoint.gameObject); - } - } - rightHandFauxJoints.Clear(); - } - } - - #endregion BaseInputDeviceManager Implementation - - #region IMixedRealityHandJointService Implementation - - public Transform RequestJointTransform(TrackedHandJoint joint, Handedness handedness) - { - IMixedRealityHand hand = null; - Dictionary fauxJoints = null; - if (handedness == Handedness.Left) - { - hand = leftHand; - fauxJoints = leftHandFauxJoints; - } - else if (handedness == Handedness.Right) - { - hand = rightHand; - fauxJoints = rightHandFauxJoints; - } - else - { - return null; - } - - Transform jointTransform = null; - if (fauxJoints != null && !fauxJoints.TryGetValue(joint, out jointTransform)) - { - jointTransform = new GameObject().transform; - // Since this service survives scene loading and unloading, the fauxJoints it manages need to as well. - Object.DontDestroyOnLoad(jointTransform.gameObject); - jointTransform.name = string.Format("Joint Tracker: {1} {0}", joint, handedness); - - if (hand != null && hand.TryGetJoint(joint, out MixedRealityPose pose)) - { - jointTransform.SetPositionAndRotation(pose.Position, pose.Rotation); - } - - fauxJoints.Add(joint, jointTransform); - } - - return jointTransform; - } - - public bool IsHandTracked(Handedness handedness) - { - return handedness == Handedness.Left ? leftHand != null : handedness == Handedness.Right ? rightHand != null : false; - } - - #endregion IMixedRealityHandJointService Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs.meta deleted file mode 100644 index 8c670bf15..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b936bd86852d25e40838d9417e63866e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs deleted file mode 100644 index b5c289135..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public static class HandJointUtils - { - /// - /// Tries to get the pose of the requested joint for the first controller with the specified handedness. - /// - /// The requested joint - /// The specific hand of interest. This should be either Handedness.Left or Handedness.Right - /// The output pose data - public static bool TryGetJointPose(TrackedHandJoint joint, Handedness handedness, out MixedRealityPose pose) - { - return TryGetJointPose(joint, handedness, out pose); - } - - /// - /// Try to find the first matching hand controller of the given type and return the pose of the requested joint for that hand. - /// - public static bool TryGetJointPose(TrackedHandJoint joint, Handedness handedness, out MixedRealityPose pose) where T : class, IMixedRealityHand - { - T hand = FindHand(handedness); - if (hand != null) - { - return hand.TryGetJoint(joint, out pose); - } - - pose = MixedRealityPose.ZeroIdentity; - return false; - } - - /// - /// Find the first detected hand controller with matching handedness. - /// - /// - /// The given handedness should be either Handedness.Left or Handedness.Right. - /// - public static IMixedRealityHand FindHand(Handedness handedness) - { - return FindHand(handedness); - } - - /// - /// Find the first detected hand controller of the given type with matching handedness. - /// - public static T FindHand(Handedness handedness) where T : class, IMixedRealityHand - { - foreach (var detectedController in CoreServices.InputSystem.DetectedControllers) - { - var hand = detectedController as T; - if (hand != null) - { - if (detectedController.ControllerHandedness.IsMatch(handedness)) - { - return hand; - } - } - } - return null; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs.meta deleted file mode 100644 index eddb727e3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandJointUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a5607fcfbfcfe4a47b24e8780d2ffefa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay.meta deleted file mode 100644 index 53172b203..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 458f4d0fc0e513b4993b24828b73742e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs deleted file mode 100644 index b031f0779..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public class HandRay : IHandRay - { - /// - public Ray Ray - { - get - { - ray.origin = stabilizedRay.StabilizedPosition; - ray.direction = stabilizedRay.StabilizedDirection; - return ray; - } - } - - /// - public bool ShouldShowRay - { - get - { - if (headForward.magnitude < Mathf.Epsilon) - { - return false; - } - bool valid = true; - if (CursorBeamBackwardTolerance >= 0) - { - Vector3 cameraBackward = -headForward; - if (Vector3.Dot(palmNormal.normalized, cameraBackward) > CursorBeamBackwardTolerance) - { - valid = false; - } - } - if (valid && CursorBeamUpTolerance >= 0) - { - if (Vector3.Dot(palmNormal, Vector3.up) > CursorBeamUpTolerance) - { - valid = false; - } - } - - return valid; - } - } - - private Ray ray = new Ray(); - - // Constants from Shell Implementation of hand ray. - private const float DynamicPivotBaseY = -0.1f, DynamicPivotMultiplierY = 0.65f, DynamicPivotMinY = -0.6f, DynamicPivotMaxY = -0.2f; - private const float DynamicPivotBaseX = 0.03f, DynamicPivotMultiplierX = 0.65f, DynamicPivotMinX = 0.08f, DynamicPivotMaxX = 0.15f; - private const float HeadToPivotOffsetZ = 0.08f; - private readonly float CursorBeamBackwardTolerance = 0.5f; - private readonly float CursorBeamUpTolerance = 0.8f; - - // Smoothing factor for ray stabilization. - private const float StabilizedRayHalfLife = 0.01f; - - private readonly StabilizedRay stabilizedRay = new StabilizedRay(StabilizedRayHalfLife); - private Vector3 palmNormal; - private Vector3 headForward; - - #region Public Methods - - /// - public void Update(Vector3 handPosition, Vector3 palmNormal, Transform headTransform, Handedness sourceHandedness) - { - Vector3 rayPivotPoint = ComputeRayPivotPosition(handPosition, headTransform, sourceHandedness); - Vector3 measuredRayPosition = handPosition; - Vector3 measuredDirection = measuredRayPosition - rayPivotPoint; - this.palmNormal = palmNormal; - this.headForward = headTransform.forward; - - stabilizedRay.AddSample(new Ray(measuredRayPosition, measuredDirection)); - } - - #endregion - - private Vector3 ComputeRayPivotPosition(Vector3 handPosition, Transform headTransform, Handedness sourceHandedness) - { - Vector3 handPositionHeadSpace = headTransform.InverseTransformPoint(handPosition); - float relativePivotY = DynamicPivotBaseY + Mathf.Min(DynamicPivotMultiplierY * handPositionHeadSpace.y, 0); - relativePivotY = Mathf.Clamp(relativePivotY, DynamicPivotMinY, DynamicPivotMaxY); - - float xBase = DynamicPivotBaseX; - float xMultiplier = DynamicPivotMultiplierX; - float xMin = DynamicPivotMinX; - float xMax = DynamicPivotMaxX; - if (sourceHandedness == Handedness.Left) - { - xBase = -xBase; - float tmp = xMin; - xMin = -xMax; - xMax = tmp; - } - float relativePivotX = xBase + xMultiplier * handPositionHeadSpace.x; - relativePivotX = Mathf.Clamp(relativePivotX, xMin, xMax); - - Vector3 relativePivot = new Vector3( - relativePivotX, - relativePivotY, - HeadToPivotOffsetZ - ); - - Quaternion headRotationFlat = Quaternion.Euler(0, headTransform.rotation.eulerAngles.y, 0); - return headTransform.position + headRotationFlat * relativePivot; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs.meta deleted file mode 100644 index 85ce8dda0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/HandRay.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6ef87a76d9f0e114fa3f1d8c0ce2abd1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs deleted file mode 100644 index 50147686b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Interface defining a hand ray, which is used by far pointers to direct interactions. - /// Implementations of this class are managed and updated by a BaseHand implementation. - /// - public interface IHandRay - { - /// - /// Ray used by input system for Far Pointers. - /// - Ray Ray { get; } - - /// - /// Check whether hand palm is angled in a way that hand rays should be used. - /// - bool ShouldShowRay { get; } - - /// - /// Update data used by hand implementation, to compute next HandRay. - /// - /// Position of hand - /// Palm normal - /// Transform of CameraCache.main - /// Handedness of related hand - void Update(Vector3 handPosition, Vector3 palmNormal, Transform headTransform, Handedness sourceHandedness); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs.meta deleted file mode 100644 index 803507344..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/HandRay/IHandRay.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 78d846f555e0d17488fab3d66710b3a7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md b/AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md deleted file mode 100644 index 836143b6e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Hand devices - -Base class for all hand devices, to act be implemented by all backends that want to provide hand input in MRTK. Simulated hands can be used if no hand tracking device is available. - -## Simulated hands - -Hand input can be simulated in Unity using the "In-Editor Input Simulation" service. This service is enabled by default. - -When enabled, virtual left and/or right hands can be moved in the scene using the mouse. Clicking mouse buttons will perform gestures for interacting with objects. -Press shift to control the left hand and/or space to control the right hand. By pressing shift and space simultaneously both hands can be moved at the same time. - -The hand simulation has two modes: - - 1. Quick mode: Hands are shown only as long as they are moved by the mouse. This mode is useful for simple testing of buttons with a single hand. - 2. Persistent mode: Hands stay visible on the screen, even if they are not moved. This mode is useful for testing two-hand manipulation and accurate placement. Gestures are toggled on/off by mouse clicks. - -The simulation mode can be switched for the left/right hand individually by pressing the T/Y keys respectively. - -Detailed settings for hand simulation can be found in the SimulatedHandAPI prefab, which is instantiated through the hand tracking profile. This includes key bindings for hand movement and mouse button bindings for gestures. diff --git a/AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md.meta b/AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md.meta deleted file mode 100644 index b52a5381b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/Hands/README.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 9055947afa5080c4ab1678a756361c14 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation.meta deleted file mode 100644 index f636e7e47..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7ef3696e130fd78499b7b4909d4bc9b0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs.meta deleted file mode 100644 index 268d273e1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 327ae741a60f1a345886c97fd579f682 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs deleted file mode 100644 index 026985484..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Provides input recording into an internal buffer and exporting to files. - /// - public interface IMixedRealityInputRecordingService : IMixedRealityInputDeviceManager - { - /// - /// True if input is being recorded. - /// - bool IsRecording { get; } - - /// - /// Limit the size of the recording buffer. - /// - /// - /// If recording is limited any input older than the RecordingBufferTimeLimit will be discarded. - /// - bool UseBufferTimeLimit { get; set; } - - /// - /// Maximum duration in seconds of the input recording if UseBufferTimeLimit is enabled. - /// - /// - /// If UseBufferTimeLimit is enabled then keyframes older than this limit will be discarded. - /// - float RecordingBufferTimeLimit { get; set; } - - /// - /// Start unlimited input recording. - /// - void StartRecording(); - - /// - /// Stop recording input. - /// - void StopRecording(); - - /// - /// Discard all recorded input - /// - void DiscardRecordedInput(); - - /// - /// Save recorded input animation to a file. - /// - /// Directory in which to create the file. If null the persistent data path of the app is used. - /// File path where input has been recorded. - /// - /// Filename is determined automatically. - /// - string SaveInputAnimation(string directory = null); - - /// - /// Save recorded input animation to a file. - /// - /// Name of the file to create. - /// Directory in which to create the file. If null the persistent data path of the app is used. - /// File path where input has been recorded. - string SaveInputAnimation(string filename, string directory = null); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs.meta deleted file mode 100644 index db4ac9fa7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/IMixedRealityInputRecordingService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 749b8c65c077364409ec2045e13ef18f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs deleted file mode 100644 index 7fa01fed8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs +++ /dev/null @@ -1,733 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// A used-defined marker on the input animation timeline. - /// - [Serializable] - public class InputAnimationMarker - { - /// - /// Placement of the marker relative to the input animation start time. - /// - public float time = 0.0f; - - /// - /// Custom name of the marker. - /// - public string name = ""; - } - - /// - /// Contains a set of animation curves that describe motion of camera and hands. - /// - [System.Serializable] - public class InputAnimation - { - protected static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - /// - /// Maximum duration of all animations curves. - /// - [SerializeField] - private float duration = 0.0f; - public float Duration => duration; - - public class PoseCurves - { - readonly public AnimationCurve PositionX = new AnimationCurve(); - readonly public AnimationCurve PositionY = new AnimationCurve(); - readonly public AnimationCurve PositionZ = new AnimationCurve(); - readonly public AnimationCurve RotationX = new AnimationCurve(); - readonly public AnimationCurve RotationY = new AnimationCurve(); - readonly public AnimationCurve RotationZ = new AnimationCurve(); - readonly public AnimationCurve RotationW = new AnimationCurve(); - } - - [SerializeField] - private AnimationCurve handTrackedCurveLeft; - [SerializeField] - private AnimationCurve handTrackedCurveRight; - [SerializeField] - private AnimationCurve handPinchCurveLeft; - [SerializeField] - private AnimationCurve handPinchCurveRight; - [SerializeField] - private Dictionary handJointCurvesLeft; - [SerializeField] - private Dictionary handJointCurvesRight; - [SerializeField] - private PoseCurves cameraCurves; - public PoseCurves CameraCurves => cameraCurves; - - /// - /// Number of markers in the animation. - /// - [SerializeField] - private List markers; - public int markerCount => markers.Count; - - internal class CompareMarkers : IComparer - { - public int Compare(InputAnimationMarker a, InputAnimationMarker b) - { - return a.time.CompareTo(b.time); - } - } - - public InputAnimation() - { - handTrackedCurveLeft = new AnimationCurve(); - handTrackedCurveRight = new AnimationCurve(); - handPinchCurveLeft = new AnimationCurve(); - handPinchCurveRight = new AnimationCurve(); - handJointCurvesLeft = new Dictionary(); - handJointCurvesRight = new Dictionary(); - cameraCurves = new PoseCurves(); - - markers = new List(); - } - - /// - /// Get animation curves for the pose of the given hand joint, if they exist. - /// - public bool TryGetHandJointCurves(Handedness handedness, TrackedHandJoint joint, out PoseCurves curves) - { - if (handedness == Handedness.Left) - { - return handJointCurvesLeft.TryGetValue(joint, out curves); - } - else if (handedness == Handedness.Right) - { - return handJointCurvesRight.TryGetValue(joint, out curves); - } - curves = null; - return false; - } - - /// - /// Make sure the pose animation curves for the given hand joint exist. - /// - public PoseCurves CreateHandJointCurves(Handedness handedness, TrackedHandJoint joint) - { - if (handedness == Handedness.Left) - { - if (!handJointCurvesLeft.TryGetValue(joint, out PoseCurves curves)) - { - curves = new PoseCurves(); - handJointCurvesLeft.Add(joint, curves); - } - return curves; - } - else if (handedness == Handedness.Right) - { - if (!handJointCurvesRight.TryGetValue(joint, out PoseCurves curves)) - { - curves = new PoseCurves(); - handJointCurvesRight.Add(joint, curves); - } - return curves; - } - return null; - } - - /// - /// Add a keyframe for the tracking state of a hand. - /// - public void AddHandStateKey(float time, Handedness handedness, bool isTracked, bool isPinching) - { - if (handedness == Handedness.Left) - { - AddHandStateKey(time, isTracked, isPinching, handTrackedCurveLeft, handPinchCurveLeft); - } - else if (handedness == Handedness.Right) - { - AddHandStateKey(time, isTracked, isPinching, handTrackedCurveRight, handPinchCurveRight); - } - } - - /// - /// Add a keyframe for one hand joint. - /// - public void AddHandJointKey(float time, Handedness handedness, TrackedHandJoint joint, MixedRealityPose jointPose, float positionThreshold, float rotationThreshold) - { - if (handedness == Handedness.Left) - { - AddHandJointKey(time, joint, jointPose, handJointCurvesLeft, positionThreshold, rotationThreshold); - } - else if (handedness == Handedness.Right) - { - AddHandJointKey(time, joint, jointPose, handJointCurvesRight, positionThreshold, rotationThreshold); - } - } - - /// Add a keyframe for the tracking state of a hand. - private void AddHandStateKey(float time, bool isTracked, bool isPinching, AnimationCurve trackedCurve, AnimationCurve pinchCurve) - { - AddBoolKeyFiltered(trackedCurve, time, isTracked); - AddBoolKeyFiltered(pinchCurve, time, isPinching); - - duration = Mathf.Max(duration, time); - } - - /// Add a keyframe for one hand joint. - private void AddHandJointKey(float time, TrackedHandJoint joint, MixedRealityPose jointPose, Dictionary jointCurves, float positionThreshold, float rotationThreshold) - { - if (!jointCurves.TryGetValue(joint, out PoseCurves curves)) - { - curves = new PoseCurves(); - jointCurves.Add(joint, curves); - } - - AddPoseKeyFiltered(curves, time, jointPose, positionThreshold, rotationThreshold); - - duration = Mathf.Max(duration, time); - } - - /// - /// Add a keyframe for the camera transform. - /// - public void AddCameraPoseKey(float time, MixedRealityPose cameraPose, float positionThreshold, float rotationThreshold) - { - AddPoseKeyFiltered(cameraCurves, time, cameraPose, positionThreshold, rotationThreshold); - - duration = Mathf.Max(duration, time); - } - - private static void AddPoseKey(PoseCurves curves, float time, MixedRealityPose pose) - { - AddFloatKey(curves.PositionX, time, pose.Position.x); - AddFloatKey(curves.PositionY, time, pose.Position.y); - AddFloatKey(curves.PositionZ, time, pose.Position.z); - - AddFloatKey(curves.RotationX, time, pose.Rotation.x); - AddFloatKey(curves.RotationY, time, pose.Rotation.y); - AddFloatKey(curves.RotationZ, time, pose.Rotation.z); - AddFloatKey(curves.RotationW, time, pose.Rotation.w); - } - - /// Add a pose keyframe to an animation curve. - /// Keys are only added if the value changes sufficiently. - private static void AddPoseKeyFiltered(PoseCurves curves, float time, MixedRealityPose pose, float positionThreshold, float rotationThreshold) - { - AddPositionKeyFiltered(curves.PositionX, curves.PositionY, curves.PositionZ, time, pose.Position, positionThreshold); - AddRotationKeyFiltered(curves.RotationX, curves.RotationY, curves.RotationZ, curves.RotationW, time, pose.Rotation, rotationThreshold); - } - - // Add a vector keyframe to animation curve if the threshold distance to the previous value is exceeded. - // Otherwise replace the last keyframe instead of adding a new one. - private static void AddPositionKeyFiltered(AnimationCurve curveX, AnimationCurve curveY, AnimationCurve curveZ, float time, Vector3 position, float threshold) - { - float sqrThreshold = threshold * threshold; - - int iX = FindKeyframeInterval(curveX, time); - int iY = FindKeyframeInterval(curveY, time); - int iZ = FindKeyframeInterval(curveZ, time); - if (iX > 0 && iY > 0 && iZ > 0) - { - Vector3 v0 = new Vector3(curveX.keys[iX - 1].value, curveY.keys[iY - 1].value, curveZ.keys[iZ - 1].value); - Vector3 v1 = new Vector3(curveX.keys[iX].value, curveY.keys[iY].value, curveZ.keys[iZ].value); - - // Merge the preceding two intervals if difference is small enough - if ((v1 - v0).sqrMagnitude <= sqrThreshold && (position - v1).sqrMagnitude <= sqrThreshold) - { - curveX.RemoveKey(iX); - curveY.RemoveKey(iY); - curveZ.RemoveKey(iZ); - } - } - - AddFloatKey(curveX, time, position.x); - AddFloatKey(curveY, time, position.y); - AddFloatKey(curveZ, time, position.z); - } - - // Add a quaternion keyframe to animation curve if the threshold angular distance to the previous value is exceeded. - // Otherwise replace the last keyframe instead of adding a new one. - private static void AddRotationKeyFiltered(AnimationCurve curveX, AnimationCurve curveY, AnimationCurve curveZ, AnimationCurve curveW, float time, Quaternion rotation, float threshold) - { - float sqrThreshold = threshold * threshold; - - int iX = FindKeyframeInterval(curveX, time); - int iY = FindKeyframeInterval(curveY, time); - int iZ = FindKeyframeInterval(curveZ, time); - int iW = FindKeyframeInterval(curveW, time); - if (iX > 0 && iY > 0 && iZ > 0 && iW > 0) - { - Quaternion q0 = new Quaternion(curveX.keys[iX - 1].value, curveY.keys[iY - 1].value, curveZ.keys[iZ - 1].value, curveW.keys[iW - 1].value); - Quaternion q1 = new Quaternion(curveX.keys[iX].value, curveY.keys[iY].value, curveZ.keys[iZ].value, curveW.keys[iW].value); - - // Merge the preceding two intervals if difference is small enough - (q0 * Quaternion.Inverse(q1)).ToAngleAxis(out float angle0, out Vector3 axis0); - (rotation * Quaternion.Inverse(q0)).ToAngleAxis(out float angle1, out Vector3 axis1); - if (angle0 <= sqrThreshold && angle1 <= sqrThreshold) - { - curveX.RemoveKey(iX); - curveY.RemoveKey(iY); - curveZ.RemoveKey(iZ); - curveW.RemoveKey(iW); - } - } - - AddFloatKey(curveX, time, rotation.x); - AddFloatKey(curveY, time, rotation.y); - AddFloatKey(curveZ, time, rotation.z); - AddFloatKey(curveW, time, rotation.w); - } - - /// Add a float value to an animation curve. - /// Returns the index of the newly added keyframe. - private static int AddFloatKey(AnimationCurve curve, float time, float value) - { - // Use linear interpolation by setting tangents and weights to zero. - var keyframe = new Keyframe(time, value, 0.0f, 0.0f, 0.0f, 0.0f); - keyframe.weightedMode = WeightedMode.Both; - return curve.AddKey(keyframe); - } - - /// Arbitrarily large weight for representing a boolean value in float curves. - const float boolOutWeight = 1.0e6f; - - /// Utility function that creates a non-interpolated keyframe suitable for boolean values. - /// Returns the index of the newly added keyframe. - private static int AddBoolKey(AnimationCurve curve, float time, bool value) - { - float fvalue = value ? 1.0f : 0.0f; - // Set tangents and weights such than the input value is cut off and out tangent is constant. - var keyframe = new Keyframe(time, fvalue, 0.0f, 0.0f, 0.0f, boolOutWeight); - keyframe.weightedMode = WeightedMode.Both; - - return curve.AddKey(keyframe); - } - - /// Utility function that creates a non-interpolated keyframe suitable for boolean values. - /// Keys are only added if the value changes. - /// Returns the index of the newly added keyframe, or -1 if no keyframe has been added. - private static int AddBoolKeyFiltered(AnimationCurve curve, float time, bool value) - { - float fvalue = value ? 1.0f : 0.0f; - // Set tangents and weights such than the input value is cut off and out tangent is constant. - var keyframe = new Keyframe(time, fvalue, 0.0f, 0.0f, 0.0f, boolOutWeight); - keyframe.weightedMode = WeightedMode.Both; - - int insertAfter = FindKeyframeInterval(curve, time); - if (insertAfter >= 0 && curve.keys[insertAfter].value == fvalue) - { - // Value unchanged from previous key, ignore - return -1; - } - - int insertBefore = insertAfter + 1; - if (insertBefore < curve.keys.Length && curve.keys[insertBefore].value == fvalue) - { - // Same value as next key, replace next key - return curve.MoveKey(insertBefore, keyframe); - } - - return curve.AddKey(keyframe); - } - - /// - /// Remove all keyframes from all animation curves with time values before the given cutoff time. - /// - /// - /// If keyframes exists before the cutoff time then one preceding keyframe will be retained, - /// so that interpolation at the cutoff time yields the same result. - /// - public void CutoffBeforeTime(float time) - { - foreach (var curve in AnimationCurves) - { - CutoffBeforeTime(curve, time); - } - } - - private void CutoffBeforeTime(AnimationCurve curve, float time) - { - // Keep the keyframe before the cutoff time to ensure correct value at the beginning - int idx0 = FindKeyframeInterval(curve, time); - if (idx0 > 0) - { - Keyframe[] newKeys = new Keyframe[curve.keys.Length - idx0]; - for (int i = 0; i < newKeys.Length; ++i) - { - newKeys[i] = curve.keys[idx0 + i]; - } - curve.keys = newKeys; - } - } - - /// - /// Remove all keyframes from all animation curves. - /// - public void Clear() - { - foreach (var curve in AnimationCurves) - { - curve.keys = new Keyframe[0]; - } - } - - // Helper class to enumerate all curves in the input animation - internal class AnimationCurveEnumerable : IEnumerable - { - private InputAnimation animation; - - public AnimationCurveEnumerable(InputAnimation animation) - { - this.animation = animation; - } - - public IEnumerator GetEnumerator() - { - yield return animation.handTrackedCurveLeft; - yield return animation.handTrackedCurveRight; - yield return animation.handPinchCurveLeft; - yield return animation.handPinchCurveRight; - foreach (var curves in animation.handJointCurvesLeft.Values) - { - yield return curves.PositionX; - yield return curves.PositionY; - yield return curves.PositionZ; - yield return curves.RotationX; - yield return curves.RotationY; - yield return curves.RotationZ; - yield return curves.RotationW; - } - foreach (var curves in animation.handJointCurvesRight.Values) - { - yield return curves.PositionX; - yield return curves.PositionY; - yield return curves.PositionZ; - yield return curves.RotationX; - yield return curves.RotationY; - yield return curves.RotationZ; - yield return curves.RotationW; - } - yield return animation.cameraCurves.PositionX; - yield return animation.cameraCurves.PositionY; - yield return animation.cameraCurves.PositionZ; - yield return animation.cameraCurves.RotationX; - yield return animation.cameraCurves.RotationY; - yield return animation.cameraCurves.RotationZ; - yield return animation.cameraCurves.RotationW; - } - - IEnumerator IEnumerable.GetEnumerator() - { - return this.GetEnumerator(); - } - } - - private IEnumerable AnimationCurves => new AnimationCurveEnumerable(this); - - /// - /// Find an index i in the sorted events list, such that events[i].time <= time < events[i+1].time. - /// - /// - /// 0 <= i < eventCount if a full interval could be found. - /// -1 if time is less than the first event time. - /// eventCount-1 if time is greater than the last event time. - /// - /// - /// Uses binary search. - /// - private static int FindKeyframeInterval(AnimationCurve curve, float time) - { - var keys = curve.keys; - int lowIdx = -1; - int highIdx = keys.Length; - while (lowIdx < highIdx - 1) - { - int midIdx = (lowIdx + highIdx) >> 1; - if (time >= keys[midIdx].time) - { - lowIdx = midIdx; - } - else - { - highIdx = midIdx; - } - } - return lowIdx; - } - - /// - /// Add a user-defined marker. - /// - public void AddMarker(InputAnimationMarker marker) - { - int index = FindMarkerInterval(marker.time) + 1; - markers.Insert(index, marker); - } - - /// - /// Remove the user-defined marker at the given index. - /// - public void RemoveMarker(int index) - { - markers.RemoveAt(index); - } - - /// - /// Change the time of the marker at the given index. - /// - public void SetMarkerTime(int index, float time) - { - InputAnimationMarker marker = markers[index]; - markers.RemoveAt(index); - - int newIndex = FindMarkerInterval(time) + 1; - marker.time = time; - markers.Insert(newIndex, marker); - } - - /// - /// Evaluate hand tracking state at the given time. - /// - public void EvaluateHandState(float time, Handedness handedness, out bool isTracked, out bool isPinching) - { - if (handedness == Handedness.Left) - { - EvaluateHandState(time, handTrackedCurveLeft, handPinchCurveLeft, out isTracked, out isPinching); - } - else if (handedness == Handedness.Right) - { - EvaluateHandState(time, handTrackedCurveRight, handPinchCurveRight, out isTracked, out isPinching); - } - else - { - isTracked = false; - isPinching = false; - } - } - - /// Evaluate hand tracking state at the given time. - private void EvaluateHandState(float time, AnimationCurve trackedCurve, AnimationCurve pinchCurve, out bool isTracked, out bool isPinching) - { - isTracked = (trackedCurve.Evaluate(time) > 0.5f); - isPinching = (pinchCurve.Evaluate(time) > 0.5f); - } - - /// - /// Evaluate joint pose at the given time. - /// - public MixedRealityPose EvaluateHandJoint(float time, Handedness handedness, TrackedHandJoint joint) - { - if (handedness == Handedness.Left) - { - return EvaluateHandJoint(time, joint, handJointCurvesLeft); - } - else if (handedness == Handedness.Right) - { - return EvaluateHandJoint(time, joint, handJointCurvesRight); - } - else - { - return MixedRealityPose.ZeroIdentity; - } - } - - /// Evaluate joint pose at the given time. - private MixedRealityPose EvaluateHandJoint(float time, TrackedHandJoint joint, Dictionary jointCurves) - { - if (jointCurves.TryGetValue(joint, out PoseCurves curves)) - { - return EvaluatePose(curves, time); - } - else - { - return MixedRealityPose.ZeroIdentity; - } - } - - /// - /// Evaluate the camera transform at the given time. - /// - public MixedRealityPose EvaluateCameraPose(float time) - { - return EvaluatePose(cameraCurves, time); - } - - private static MixedRealityPose EvaluatePose(PoseCurves curves, float time) - { - float px = curves.PositionX.Evaluate(time); - float py = curves.PositionY.Evaluate(time); - float pz = curves.PositionZ.Evaluate(time); - float rx = curves.RotationX.Evaluate(time); - float ry = curves.RotationY.Evaluate(time); - float rz = curves.RotationZ.Evaluate(time); - float rw = curves.RotationW.Evaluate(time); - - var pose = new MixedRealityPose(); - pose.Position = new Vector3(px, py, pz); - pose.Rotation = new Quaternion(rx, ry, rz, rw); - pose.Rotation.Normalize(); - return pose; - } - - /// - /// Get the marker at the given index. - /// - public InputAnimationMarker GetMarker(int index) - { - return markers[index]; - } - - /// - /// Find an index i in the sorted events list, such that events[i].time <= time < events[i+1].time. - /// - /// - /// 0 <= i < eventCount if a full interval could be found. - /// -1 if time is less than the first event time. - /// eventCount-1 if time is greater than the last event time. - /// - /// - /// Uses binary search. - /// - public int FindMarkerInterval(float time) - { - int lowIdx = -1; - int highIdx = markers.Count; - while (lowIdx < highIdx - 1) - { - int midIdx = (lowIdx + highIdx) >> 1; - if (time >= markers[midIdx].time) - { - lowIdx = midIdx; - } - else - { - highIdx = midIdx; - } - } - return lowIdx; - } - - private void ComputeDuration() - { - duration = 0.0f; - foreach (var curve in AnimationCurves) - { - float curveDuration = (curve.length > 0 ? curve.keys[curve.length - 1].time : 0.0f); - duration = Mathf.Max(duration, curveDuration); - } - } - - /// - /// Serialize animation data into a stream. - /// - public void ToStream(Stream stream, float startTime) - { - PoseCurves defaultCurves = new PoseCurves(); - - var writer = new BinaryWriter(stream); - - InputAnimationSerializationUtils.WriteHeader(writer); - - PoseCurvesToStream(writer, cameraCurves, startTime); - - InputAnimationSerializationUtils.WriteBoolCurve(writer, handTrackedCurveLeft, startTime); - InputAnimationSerializationUtils.WriteBoolCurve(writer, handTrackedCurveRight, startTime); - InputAnimationSerializationUtils.WriteBoolCurve(writer, handPinchCurveLeft, startTime); - InputAnimationSerializationUtils.WriteBoolCurve(writer, handPinchCurveRight, startTime); - - for (int i = 0; i < jointCount; ++i) - { - if (!handJointCurvesLeft.TryGetValue((TrackedHandJoint)i, out PoseCurves curves)) - { - curves = defaultCurves; - } - PoseCurvesToStream(writer, curves, startTime); - } - for (int i = 0; i < jointCount; ++i) - { - if (!handJointCurvesRight.TryGetValue((TrackedHandJoint)i, out PoseCurves curves)) - { - curves = defaultCurves; - } - PoseCurvesToStream(writer, curves, startTime); - } - - InputAnimationSerializationUtils.WriteMarkerList(writer, markers, startTime); - } - - /// - /// Deserialize animation data from a stream. - /// - public void FromStream(Stream stream) - { - var reader = new BinaryReader(stream); - - InputAnimationSerializationUtils.ReadHeader(reader, out int versionMajor, out int versionMinor); - if (versionMajor != 1 || versionMinor != 0) - { - Debug.LogError("Only version 1.0 of input animation file format is supported."); - return; - } - - PoseCurvesFromStream(reader, cameraCurves); - - InputAnimationSerializationUtils.ReadBoolCurve(reader, handTrackedCurveLeft); - InputAnimationSerializationUtils.ReadBoolCurve(reader, handTrackedCurveRight); - InputAnimationSerializationUtils.ReadBoolCurve(reader, handPinchCurveLeft); - InputAnimationSerializationUtils.ReadBoolCurve(reader, handPinchCurveRight); - - for (int i = 0; i < jointCount; ++i) - { - if (!handJointCurvesLeft.TryGetValue((TrackedHandJoint)i, out PoseCurves curves)) - { - curves = new PoseCurves(); - handJointCurvesLeft.Add((TrackedHandJoint)i, curves); - } - PoseCurvesFromStream(reader, curves); - } - for (int i = 0; i < jointCount; ++i) - { - if (!handJointCurvesRight.TryGetValue((TrackedHandJoint)i, out PoseCurves curves)) - { - curves = new PoseCurves(); - handJointCurvesRight.Add((TrackedHandJoint)i, curves); - } - PoseCurvesFromStream(reader, curves); - } - - InputAnimationSerializationUtils.ReadMarkerList(reader, markers); - - ComputeDuration(); - } - - private static void PoseCurvesToStream(BinaryWriter writer, PoseCurves curves, float startTime) - { - InputAnimationSerializationUtils.WriteFloatCurve(writer, curves.PositionX, startTime); - InputAnimationSerializationUtils.WriteFloatCurve(writer, curves.PositionY, startTime); - InputAnimationSerializationUtils.WriteFloatCurve(writer, curves.PositionZ, startTime); - - InputAnimationSerializationUtils.WriteFloatCurve(writer, curves.RotationX, startTime); - InputAnimationSerializationUtils.WriteFloatCurve(writer, curves.RotationY, startTime); - InputAnimationSerializationUtils.WriteFloatCurve(writer, curves.RotationZ, startTime); - InputAnimationSerializationUtils.WriteFloatCurve(writer, curves.RotationW, startTime); - } - - private static void PoseCurvesFromStream(BinaryReader reader, PoseCurves curves) - { - InputAnimationSerializationUtils.ReadFloatCurve(reader, curves.PositionX); - InputAnimationSerializationUtils.ReadFloatCurve(reader, curves.PositionY); - InputAnimationSerializationUtils.ReadFloatCurve(reader, curves.PositionZ); - - InputAnimationSerializationUtils.ReadFloatCurve(reader, curves.RotationX); - InputAnimationSerializationUtils.ReadFloatCurve(reader, curves.RotationY); - InputAnimationSerializationUtils.ReadFloatCurve(reader, curves.RotationZ); - InputAnimationSerializationUtils.ReadFloatCurve(reader, curves.RotationW); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs.meta deleted file mode 100644 index 45189ca52..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimation.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d10d2be728aca3d44bcec2e352b4fdf4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs deleted file mode 100644 index cae92af26..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using System; -using System.Collections.Generic; -using System.IO; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Functions for serializing input animation data to and from binary files. - /// - public static class InputAnimationSerializationUtils - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - public const string Extension = "bin"; - - const long Magic = 0x6a8faf6e0f9e42c6; - - public const int VersionMajor = 1; - public const int VersionMinor = 0; - - /// - /// Generate a file name for export. - /// - public static string GetOutputFilename(string baseName = "InputAnimation", bool appendTimestamp = true) - { - string filename; - if (appendTimestamp) - { - filename = String.Format("{0}-{1}.{2}", baseName, DateTime.UtcNow.ToString("yyyyMMdd-HHmmss"), InputAnimationSerializationUtils.Extension); - } - else - { - filename = baseName; - } - return filename; - } - - /// - /// Write a header for the input animation file format into the stream. - /// - public static void WriteHeader(BinaryWriter writer) - { - writer.Write(Magic); - writer.Write(VersionMajor); - writer.Write(VersionMinor); - } - - /// - /// Write a header for the input animation file format into the stream. - /// - public static void ReadHeader(BinaryReader reader, out int fileVersionMajor, out int fileVersionMinor) - { - long fileMagic = reader.ReadInt64(); - if (fileMagic != Magic) - { - throw new Exception("File is not an input animation file"); - } - - fileVersionMajor = reader.ReadInt32(); - fileVersionMinor = reader.ReadInt32(); - } - - /// - /// Serialize an animation curve with tangents as binary data. - /// - public static void WriteFloatCurve(BinaryWriter writer, AnimationCurve curve, float startTime) - { - writer.Write((int)curve.preWrapMode); - writer.Write((int)curve.postWrapMode); - - writer.Write(curve.length); - for (int i = 0; i < curve.length; ++i) - { - var keyframe = curve.keys[i]; - writer.Write(keyframe.time - startTime); - writer.Write(keyframe.value); - writer.Write(keyframe.inTangent); - writer.Write(keyframe.outTangent); - writer.Write(keyframe.inWeight); - writer.Write(keyframe.outWeight); - writer.Write((int)keyframe.weightedMode); - } - } - - /// - /// Deserialize an animation curve with tangents from binary data. - /// - public static void ReadFloatCurve(BinaryReader reader, AnimationCurve curve) - { - curve.preWrapMode = (WrapMode)reader.ReadInt32(); - curve.postWrapMode = (WrapMode)reader.ReadInt32(); - - int keyframeCount = reader.ReadInt32(); - - Keyframe[] keys = new Keyframe[keyframeCount]; - for (int i = 0; i < keyframeCount; ++i) - { - keys[i].time = reader.ReadSingle(); - keys[i].value = reader.ReadSingle(); - keys[i].inTangent = reader.ReadSingle(); - keys[i].outTangent = reader.ReadSingle(); - keys[i].inWeight = reader.ReadSingle(); - keys[i].outWeight = reader.ReadSingle(); - keys[i].weightedMode = (WeightedMode)reader.ReadInt32(); - } - - curve.keys = keys; - } - - /// - /// Serialize an animation curve as binary data, ignoring tangents. - /// - public static void WriteBoolCurve(BinaryWriter writer, AnimationCurve curve, float startTime) - { - writer.Write((int)curve.preWrapMode); - writer.Write((int)curve.postWrapMode); - - writer.Write(curve.length); - for (int i = 0; i < curve.length; ++i) - { - var keyframe = curve.keys[i]; - writer.Write(keyframe.time - startTime); - writer.Write(keyframe.value); - } - } - - /// - /// Deserialize an animation curve from binary data, ignoring tangents. - /// - public static void ReadBoolCurve(BinaryReader reader, AnimationCurve curve) - { - curve.preWrapMode = (WrapMode)reader.ReadInt32(); - curve.postWrapMode = (WrapMode)reader.ReadInt32(); - - int keyframeCount = reader.ReadInt32(); - - Keyframe[] keys = new Keyframe[keyframeCount]; - for (int i = 0; i < keyframeCount; ++i) - { - keys[i].time = reader.ReadSingle(); - keys[i].value = reader.ReadSingle(); - keys[i].inTangent = 0.0f; - keys[i].outTangent = 0.0f; - keys[i].inWeight = 0.0f; - keys[i].outWeight = 1.0e6f; - keys[i].weightedMode = WeightedMode.Both; - } - - curve.keys = keys; - } - - /// - /// Serialize an array of animation curves with tangents as binary data. - /// - public static void WriteFloatCurveArray(BinaryWriter writer, AnimationCurve[] curves, float startTime) - { - foreach (AnimationCurve curve in curves) - { - InputAnimationSerializationUtils.WriteFloatCurve(writer, curve, startTime); - } - } - - /// - /// Deserialize an array of animation curves with tangents from binary data. - /// - public static void ReadFloatCurveArray(BinaryReader reader, AnimationCurve[] curves) - { - foreach (AnimationCurve curve in curves) - { - InputAnimationSerializationUtils.ReadFloatCurve(reader, curve); - } - } - - /// - /// Serialize an array of animation curves as binary data, ignoring tangents. - /// - public static void WriteBoolCurveArray(BinaryWriter writer, AnimationCurve[] curves, float startTime) - { - foreach (AnimationCurve curve in curves) - { - InputAnimationSerializationUtils.WriteBoolCurve(writer, curve, startTime); - } - } - - /// - /// Deserialize an array of animation curves from binary data, ignoring tangents. - /// - public static void ReadBoolCurveArray(BinaryReader reader, AnimationCurve[] curves) - { - foreach (AnimationCurve curve in curves) - { - InputAnimationSerializationUtils.ReadBoolCurve(reader, curve); - } - } - - /// - /// Serialize a list of markers. - /// - public static void WriteMarkerList(BinaryWriter writer, List markers, float startTime) - { - writer.Write(markers.Count); - foreach (var marker in markers) - { - writer.Write(marker.time - startTime); - writer.Write(marker.name); - } - } - - /// - /// Deserialize a list of markers. - /// - public static void ReadMarkerList(BinaryReader reader, List markers) - { - markers.Clear(); - int count = reader.ReadInt32(); - markers.Capacity = count; - for (int i = 0; i < count; ++i) - { - var marker = new InputAnimationMarker(); - marker.time = reader.ReadSingle(); - marker.name = reader.ReadString(); - markers.Add(marker); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs.meta deleted file mode 100644 index 32bdff3d9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputAnimationSerializationUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 643485320d476524390993a12ff9aa71 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs deleted file mode 100644 index 4a82d68dc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.IO; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Provides input recording into an internal buffer and exporting to files. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - (SupportedPlatforms)(-1), // Supported on all platforms - "Input Recording Service", - "Profiles/DefaultMixedRealityInputRecordingProfile.asset", - "MixedRealityToolkit.SDK", - true)] - public class InputRecordingService : - BaseInputDeviceManager, - IMixedRealityInputRecordingService - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - public event Action OnRecordingStarted; - public event Action OnRecordingStopped; - - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public InputRecordingService( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public InputRecordingService( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) - { } - - /// - /// Return the service profile and ensure that the type is correct. - /// - public MixedRealityInputRecordingProfile InputRecordingProfile - { - get - { - var profile = ConfigurationProfile as MixedRealityInputRecordingProfile; - if (!profile) - { - Debug.LogError("Profile for Input Recording Service must be a MixedRealityInputRecordingProfile"); - } - return profile; - } - } - - /// - /// Service has been enabled. - /// - public bool IsEnabled { get; private set; } = false; - - /// - public bool IsRecording { get; private set; } = false; - - private bool useBufferTimeLimit = true; - /// - public bool UseBufferTimeLimit - { - get { return useBufferTimeLimit; } - set - { - if (useBufferTimeLimit && !value) - { - // Start at buffer limit when making buffer unlimited - unlimitedRecordingStartTime = StartTime; - } - - useBufferTimeLimit = value; - if (useBufferTimeLimit) - { - PruneBuffer(); - } - } - } - - private float recordingBufferTimeLimit = 30.0f; - /// - public float RecordingBufferTimeLimit - { - get { return recordingBufferTimeLimit; } - set - { - recordingBufferTimeLimit = Mathf.Max(value, 0.0f); - if (useBufferTimeLimit) - { - PruneBuffer(); - } - } - } - - private InputAnimation recordingBuffer = null; - - // Start time of recording if buffer is unlimited. - // Nullable to determine when time needs to be reset. - private float? unlimitedRecordingStartTime = null; - public float StartTime - { - get - { - if (unlimitedRecordingStartTime.HasValue) - { - if (useBufferTimeLimit) - { - return Mathf.Max(unlimitedRecordingStartTime.Value, Time.time - recordingBufferTimeLimit); - } - else - { - return unlimitedRecordingStartTime.Value; - } - } - return Time.time; - } - } - - private void ResetStartTime() - { - if (IsRecording) - { - unlimitedRecordingStartTime = Time.time; - } - else - { - unlimitedRecordingStartTime = null; - } - } - - /// - public override void Enable() - { - IsEnabled = true; - recordingBuffer = new InputAnimation(); - } - - /// - public override void Disable() - { - IsEnabled = false; - recordingBuffer = null; - ResetStartTime(); - } - - /// - public void StartRecording() - { - IsRecording = true; - if (UseBufferTimeLimit) - { - PruneBuffer(); - } - if (!unlimitedRecordingStartTime.HasValue) - { - unlimitedRecordingStartTime = Time.time; - } - - OnRecordingStarted?.Invoke(); - } - - /// - public void StopRecording() - { - IsRecording = false; - - OnRecordingStopped?.Invoke(); - } - - /// - public override void LateUpdate() - { - if (IsEnabled) - { - if (IsRecording) - { - if (UseBufferTimeLimit) - { - PruneBuffer(); - } - - RecordKeyframe(); - } - } - } - - /// - public void DiscardRecordedInput() - { - if (IsEnabled) - { - recordingBuffer.Clear(); - ResetStartTime(); - } - } - - /// - /// Record a keyframe at the given time for the main camera and tracked input devices. - /// - private void RecordKeyframe() - { - float time = Time.time; - var profile = InputRecordingProfile; - - RecordInputHandData(Handedness.Left); - RecordInputHandData(Handedness.Right); - if (CameraCache.Main) - { - var cameraPose = new MixedRealityPose(CameraCache.Main.transform.position, CameraCache.Main.transform.rotation); - recordingBuffer.AddCameraPoseKey(time, cameraPose, profile.CameraPositionThreshold, profile.CameraRotationThreshold); - } - } - - /// - /// Record a keyframe at the given time for a hand with the given handedness it is tracked. - /// - private bool RecordInputHandData(Handedness handedness) - { - float time = Time.time; - var profile = InputRecordingProfile; - - var hand = HandJointUtils.FindHand(handedness); - if (hand == null) - { - recordingBuffer.AddHandStateKey(time, handedness, false, false); - return false; - } - - bool isTracked = (hand.TrackingState == TrackingState.Tracked); - - // Extract extra information from current interactions - bool isPinching = false; - for (int i = 0; i < hand.Interactions?.Length; i++) - { - var interaction = hand.Interactions[i]; - switch (interaction.InputType) - { - case DeviceInputType.Select: - isPinching = interaction.BoolData; - break; - } - } - - recordingBuffer.AddHandStateKey(time, handedness, isTracked, isPinching); - - if (isTracked) - { - for (int i = 0; i < jointCount; ++i) - { - if (hand.TryGetJoint((TrackedHandJoint)i, out MixedRealityPose jointPose)) - { - recordingBuffer.AddHandJointKey(time, handedness, (TrackedHandJoint)i, jointPose, profile.JointPositionThreshold, profile.JointRotationThreshold); - } - } - } - - return true; - } - - /// - public string SaveInputAnimation(string directory = null) - { - return SaveInputAnimation(InputAnimationSerializationUtils.GetOutputFilename(), directory); - } - - /// - public string SaveInputAnimation(string filename, string directory = null) - { - if (IsEnabled) - { - string path = Path.Combine(directory ?? Application.persistentDataPath, filename); - - try - { - using (Stream fileStream = File.Open(path, FileMode.Create)) - { - PruneBuffer(); - recordingBuffer.ToStream(fileStream, StartTime); - Debug.Log($"Recorded input animation exported to {path}"); - } - return path; - } - catch (IOException ex) - { - Debug.LogWarning(ex.Message); - } - } - return ""; - } - - /// Discard keyframes before the cutoff time. - private void PruneBuffer() - { - recordingBuffer.CutoffBeforeTime(StartTime); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs.meta deleted file mode 100644 index b146b51e1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/InputRecordingService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4271e7f13785c54469a775deedc2f574 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef deleted file mode 100644 index f186ef9aa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Services.InputAnimation", - "references": [ - "Microsoft.MixedReality.Toolkit" - ], - "optionalUnityReferences": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef.meta deleted file mode 100644 index beac6e5aa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MRTK.InputAnimation.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 87dbb45dda42fa0428897b9eba042910 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs deleted file mode 100644 index 1a1c37b7f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Settings for recording input animation assets. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Input Recording Profile", fileName = "MixedRealityInputRecordingProfile", order = (int)CreateProfileMenuItemIndices.Input)] - [MixedRealityServiceProfile(typeof(IMixedRealityInputRecordingService))] - public class MixedRealityInputRecordingProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("Minimum movement of hand joints to record a keyframe")] - private float jointPositionThreshold = 0.001f; - public float JointPositionThreshold => jointPositionThreshold; - - [SerializeField] - [Tooltip("Minimum movement of hand joints to record a keyframe")] - private float jointRotationThreshold = 0.02f; - public float JointRotationThreshold => jointRotationThreshold; - - [SerializeField] - [Tooltip("Minimum movement of the camera to record a keyframe")] - private float cameraPositionThreshold = 0.002f; - public float CameraPositionThreshold => cameraPositionThreshold; - - [SerializeField] - [Tooltip("Minimum rotation angle of the camera to record a keyframe")] - private float cameraRotationThreshold = 0.02f; - public float CameraRotationThreshold => cameraRotationThreshold; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs.meta deleted file mode 100644 index 50d30c515..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputAnimation/MixedRealityInputRecordingProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3e721f74104fc5e498856a7c337d6632 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation.meta deleted file mode 100644 index 6be199eb6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a854e662cd7262c498b16ad19f51d59b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses.meta deleted file mode 100644 index adbc91376..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ce2d5adf3957ec7479e5462d15e43936 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json deleted file mode 100644 index 16645ce7a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.0470723882317543, - "y": -0.18403607606887818, - "z": -0.5408412218093872 - }, - "rotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.06179157271981239, - "y": -0.15333214402198792, - "z": -0.0469515398144722 - }, - "rotation": { - "x": -0.5501163005828857, - "y": -0.11712269484996796, - "z": 0.001836930401623249, - "w": 0.8265576958656311 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.05801215022802353, - "y": -0.1058567613363266, - "z": -0.02556976117193699 - }, - "rotation": { - "x": -0.5501163005828857, - "y": -0.11712269484996796, - "z": 0.001836930401623249, - "w": 0.8265576958656311 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.03695414960384369, - "y": -0.1407443881034851, - "z": -0.03328647091984749 - }, - "rotation": { - "x": -0.5855690240859985, - "y": -0.10429229587316513, - "z": 0.5890942811965942, - "w": 0.547493577003479 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": 0.00045104348100721836, - "y": -0.11720659583806992, - "z": -0.01997363194823265 - }, - "rotation": { - "x": -0.5386121273040772, - "y": 0.04485885053873062, - "z": 0.5422580242156982, - "w": 0.6437124609947205 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": -0.016296127811074258, - "y": -0.09359179437160492, - "z": -0.006718119606375694 - }, - "rotation": { - "x": -0.6040476560592651, - "y": -0.08891747146844864, - "z": 0.5752687454223633, - "w": 0.5448194742202759 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": -0.03216664865612984, - "y": -0.08244754374027252, - "z": -0.001603197306394577 - }, - "rotation": { - "x": -0.6040476560592651, - "y": -0.08891747146844864, - "z": 0.5752687454223633, - "w": 0.5448194742202759 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.04794362187385559, - "y": -0.13700048625469209, - "z": -0.03438100963830948 - }, - "rotation": { - "x": -0.534980297088623, - "y": -0.28449201583862307, - "z": -0.061086010187864307, - "w": 0.7931764721870422 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": 0.023209279403090478, - "y": -0.08038382232189179, - "z": -0.017351558431982995 - }, - "rotation": { - "x": -0.599485456943512, - "y": -0.1474478840827942, - "z": 0.04840812832117081, - "w": 0.7852058410644531 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": 0.009743190370500088, - "y": -0.03727291524410248, - "z": -0.006295463070273399 - }, - "rotation": { - "x": -0.6344203948974609, - "y": -0.08629350364208222, - "z": 0.11939872056245804, - "w": 0.7588865756988525 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": 0.0026917937211692335, - "y": -0.013759316876530648, - "z": -0.0017971978522837163 - }, - "rotation": { - "x": -0.6451734304428101, - "y": -0.12336783856153488, - "z": 0.00809548981487751, - "w": 0.7542511224746704 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": -0.0002534952946007252, - "y": 0.0007631087210029364, - "z": 0.0002575620310381055 - }, - "rotation": { - "x": -0.6451734304428101, - "y": -0.12336783856153488, - "z": 0.00809548981487751, - "w": 0.7542511224746704 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.056570135056972507, - "y": -0.13634957373142243, - "z": -0.03486650064587593 - }, - "rotation": { - "x": -0.6017327308654785, - "y": -0.1049300879240036, - "z": 0.008752312511205674, - "w": 0.7917264699935913 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.045069482177495959, - "y": -0.07444917410612107, - "z": -0.018345370888710023 - }, - "rotation": { - "x": -0.5885983109474182, - "y": -0.10035836696624756, - "z": 0.025189023464918138, - "w": 0.8017893433570862 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.035030756145715716, - "y": -0.025001518428325654, - "z": -0.0032290546223521234 - }, - "rotation": { - "x": -0.6631931662559509, - "y": -0.09005288034677506, - "z": -0.0027521485462784769, - "w": 0.7431085109710693 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.031546302139759067, - "y": 0.0013798222644254566, - "z": -0.0004363078624010086 - }, - "rotation": { - "x": -0.6468731164932251, - "y": -0.11953263729810715, - "z": -0.06937266886234284, - "w": 0.7504633665084839 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.030048875138163568, - "y": 0.017790958285331727, - "z": 0.0018172836862504483 - }, - "rotation": { - "x": -0.6468731164932251, - "y": -0.11953263729810715, - "z": -0.06937266886234284, - "w": 0.7504633665084839 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.06806596368551254, - "y": -0.13525664806365968, - "z": -0.034837257117033008 - }, - "rotation": { - "x": -0.5803540945053101, - "y": 0.014031633734703064, - "z": 0.05480925738811493, - "w": 0.8123965859413147 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.06544187664985657, - "y": -0.07453925907611847, - "z": -0.013881120830774308 - }, - "rotation": { - "x": -0.6466344594955444, - "y": -0.03600946068763733, - "z": 0.02467469871044159, - "w": 0.7615609765052795 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.06159381568431854, - "y": -0.03093438223004341, - "z": -0.006733019836246967 - }, - "rotation": { - "x": -0.6550348401069641, - "y": -0.06099399924278259, - "z": -0.04121965169906616, - "w": 0.7520787715911865 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.06070023775100708, - "y": -0.007464663125574589, - "z": -0.003544492181390524 - }, - "rotation": { - "x": -0.6712727546691895, - "y": -0.05777180939912796, - "z": -0.05727298930287361, - "w": 0.7370488047599793 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.060552775859832767, - "y": 0.010114867240190506, - "z": -0.0019072332652285696 - }, - "rotation": { - "x": -0.6712727546691895, - "y": -0.05777180939912796, - "z": -0.05727298930287361, - "w": 0.7370488047599793 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.07710164040327072, - "y": -0.13650110363960267, - "z": -0.032643478363752368 - }, - "rotation": { - "x": -0.5344982147216797, - "y": 0.1545339822769165, - "z": 0.10820292681455612, - "w": 0.8238464593887329 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.08530370891094208, - "y": -0.08254323154687882, - "z": -0.010162543505430222 - }, - "rotation": { - "x": -0.6702333688735962, - "y": 0.05704934149980545, - "z": 0.006686835549771786, - "w": 0.7399358749389648 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.08779342472553253, - "y": -0.049793362617492679, - "z": -0.0070251524448394779 - }, - "rotation": { - "x": -0.6393072605133057, - "y": 0.030266048386693, - "z": -0.15569603443145753, - "w": 0.7524937987327576 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.09219621121883393, - "y": -0.03264733776450157, - "z": -0.0037694787606596948 - }, - "rotation": { - "x": -0.6555882692337036, - "y": -0.0018634665757417679, - "z": -0.09289215505123139, - "w": 0.7497090101242065 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.09392204880714417, - "y": -0.018381092697381974, - "z": -0.0017222119495272637 - }, - "rotation": { - "x": -0.6555882692337036, - "y": -0.0018634665757417679, - "z": -0.09289215505123139, - "w": 0.7497090101242065 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json.meta deleted file mode 100644 index 06c81debf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Flat.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e7d04f951437f78409ca4c7a29bf4f4d -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json deleted file mode 100644 index 9fff898b8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.08690944314002991, - "y": 0.013536587357521057, - "z": -0.3781388998031616 - }, - "rotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.059647563844919208, - "y": -0.018170714378356935, - "z": -0.07320141047239304 - }, - "rotation": { - "x": -0.44069746136665347, - "y": -0.3151600956916809, - "z": -0.029152734205126764, - "w": 0.8398429155349731 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.040150947868824008, - "y": 0.022433746606111528, - "z": -0.04928050562739372 - }, - "rotation": { - "x": -0.44069746136665347, - "y": -0.3151600956916809, - "z": -0.029152734205126764, - "w": 0.8398429155349731 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.033823080360889438, - "y": -0.014000600203871727, - "z": -0.06483504176139832 - }, - "rotation": { - "x": 0.46251192688941958, - "y": 0.15892137587070466, - "z": -0.748396635055542, - "w": -0.44902268052101138 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": -0.0048112208023667339, - "y": -0.005827075336128473, - "z": -0.04063580185174942 - }, - "rotation": { - "x": 0.32614850997924807, - "y": -0.017511412501335145, - "z": -0.7735356688499451, - "w": -0.5439797639846802 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": -0.02188277430832386, - "y": 0.0075818500481545929, - "z": -0.01290540024638176 - }, - "rotation": { - "x": 0.22856087982654572, - "y": -0.09300848096609116, - "z": -0.7769821286201477, - "w": -0.5795565247535706 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": -0.026505667716264726, - "y": 0.015197398141026497, - "z": 0.0034610535949468614 - }, - "rotation": { - "x": 0.22856087982654572, - "y": -0.09300848096609116, - "z": -0.7769821286201477, - "w": -0.5795565247535706 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.04238410294055939, - "y": -0.007463002577424049, - "z": -0.06319385766983032 - }, - "rotation": { - "x": -0.420803427696228, - "y": -0.44982725381851199, - "z": -0.04907778277993202, - "w": 0.7862387895584106 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": -0.0008817678317427635, - "y": 0.03838954120874405, - "z": -0.04752813279628754 - }, - "rotation": { - "x": 0.004830620251595974, - "y": 0.18448397517204286, - "z": -0.1560613363981247, - "w": -0.9703620672225952 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": -0.014839660376310349, - "y": 0.03651837632060051, - "z": -0.01135229505598545 - }, - "rotation": { - "x": -0.5098936557769775, - "y": 0.03039226494729519, - "z": -0.30394697189331057, - "w": -0.8042332530021668 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": -0.008270945399999619, - "y": 0.015406630001962185, - "z": 0.0006891884841024876 - }, - "rotation": { - "x": -0.7222777009010315, - "y": -0.08202659338712692, - "z": -0.2391108274459839, - "w": -0.6440979242324829 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": -0.0009594520088285208, - "y": 0.000933439121581614, - "z": -0.00021468542399816215 - }, - "rotation": { - "x": -0.7222777009010315, - "y": -0.08202659338712692, - "z": -0.2391108274459839, - "w": -0.6440979242324829 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.04958740621805191, - "y": -0.004707379266619682, - "z": -0.06129273772239685 - }, - "rotation": { - "x": -0.5128890872001648, - "y": -0.29369285702705386, - "z": 0.018453821539878846, - "w": 0.8064419627189636 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.020074930042028428, - "y": 0.04420189931988716, - "z": -0.04323747381567955 - }, - "rotation": { - "x": -0.07308150827884674, - "y": 0.17278942465782166, - "z": -0.10241489112377167, - "w": -0.9769001603126526 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.005748542491346598, - "y": 0.0362907275557518, - "z": -0.001959702931344509 - }, - "rotation": { - "x": -0.7482351660728455, - "y": 0.06403420120477677, - "z": -0.2061866670846939, - "w": -0.6274414658546448 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.012452101334929467, - "y": 0.007901951670646668, - "z": -0.0057104239240288738 - }, - "rotation": { - "x": -0.9225407838821411, - "y": -0.07818678766489029, - "z": -0.1428528130054474, - "w": -0.3514384627342224 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.01802952028810978, - "y": -0.003061514813452959, - "z": -0.01820256933569908 - }, - "rotation": { - "x": -0.9225407838821411, - "y": -0.07818678766489029, - "z": -0.1428528130054474, - "w": -0.3514384627342224 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.05912885442376137, - "y": -0.0009383354336023331, - "z": -0.05809984356164932 - }, - "rotation": { - "x": -0.49521127343177798, - "y": -0.17924758791923524, - "z": 0.07874160259962082, - "w": 0.846425473690033 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.038666337728500369, - "y": 0.04252086579799652, - "z": -0.03421220928430557 - }, - "rotation": { - "x": -0.1513676941394806, - "y": 0.15960678458213807, - "z": -0.05129222199320793, - "w": -0.9741657376289368 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.02693704515695572, - "y": 0.030163494870066644, - "z": 0.0016453623538836837 - }, - "rotation": { - "x": -0.8552912473678589, - "y": 0.0920121893286705, - "z": -0.11032526195049286, - "w": -0.4979609251022339 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.029263043776154519, - "y": 0.009234108030796051, - "z": -0.009864533320069313 - }, - "rotation": { - "x": -0.9685380458831787, - "y": -0.018125316128134729, - "z": -0.094183549284935, - "w": -0.23075833916664124 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.032915160059928897, - "y": 0.0007288604974746704, - "z": -0.02667597308754921 - }, - "rotation": { - "x": -0.9685380458831787, - "y": -0.018125316128134729, - "z": -0.094183549284935, - "w": -0.23075833916664124 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.0675557404756546, - "y": -0.0004099104553461075, - "z": -0.05376683175563812 - }, - "rotation": { - "x": -0.44121748208999636, - "y": -0.05341072380542755, - "z": 0.14569664001464845, - "w": 0.8838818073272705 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.05575947463512421, - "y": 0.04002845287322998, - "z": -0.02176406979560852 - }, - "rotation": { - "x": -0.2122899889945984, - "y": 0.1802181601524353, - "z": 0.03122050315141678, - "w": -0.959945559501648 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.046450983732938769, - "y": 0.029760107398033143, - "z": 0.0001273825764656067 - }, - "rotation": { - "x": -0.8192430138587952, - "y": 0.16303858160972596, - "z": -0.0602981373667717, - "w": -0.5465834140777588 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.044868819415569308, - "y": 0.011532457545399666, - "z": -0.007741663604974747 - }, - "rotation": { - "x": -0.9710148572921753, - "y": 0.04234015569090843, - "z": 0.042903631925582889, - "w": -0.23259779810905457 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.04328276216983795, - "y": 0.004625056870281696, - "z": -0.0214386023581028 - }, - "rotation": { - "x": -0.9710148572921753, - "y": 0.04234015569090843, - "z": 0.042903631925582889, - "w": -0.23259779810905457 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json.meta deleted file mode 100644 index 979892924..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Grab.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 26804200b794ba145a05c73b28c1134d -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json deleted file mode 100644 index b63a2e641..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.0780251994729042, - "y": -0.05990780144929886, - "z": -0.3291178047657013 - }, - "rotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.07397598028182984, - "y": -0.1239677220582962, - "z": -0.05636374652385712 - }, - "rotation": { - "x": -0.5306746959686279, - "y": -0.24036270380020142, - "z": -0.0010364949703216553, - "w": 0.8126773834228516 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.06148417666554451, - "y": -0.08249785006046295, - "z": -0.04003134369850159 - }, - "rotation": { - "x": -0.5306746959686279, - "y": -0.24036270380020142, - "z": -0.0010364949703216553, - "w": 0.8126773834228516 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.05004027485847473, - "y": -0.1168040931224823, - "z": -0.046657364815473559 - }, - "rotation": { - "x": -0.5606539249420166, - "y": -0.098196841776371, - "z": 0.670694887638092, - "w": 0.4761941432952881 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": 0.014790681190788746, - "y": -0.1000247374176979, - "z": -0.031946491450071338 - }, - "rotation": { - "x": -0.5155644416809082, - "y": -0.0010041594505310059, - "z": 0.6619959473609924, - "w": 0.5445378422737122 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": -0.0062080565840005878, - "y": -0.0828109011054039, - "z": -0.01753186620771885 - }, - "rotation": { - "x": -0.5490170121192932, - "y": -0.08343470841646195, - "z": 0.6728134751319885, - "w": 0.48939600586891177 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": -0.02095535211265087, - "y": -0.07516473531723023, - "z": -0.010627731680870057 - }, - "rotation": { - "x": -0.5490170121192932, - "y": -0.08343470841646195, - "z": 0.6728134751319885, - "w": 0.48939600586891177 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.058891069144010547, - "y": -0.11150021106004715, - "z": -0.047359079122543338 - }, - "rotation": { - "x": -0.5242606997489929, - "y": -0.3638727068901062, - "z": 0.0003723353147506714, - "w": 0.7699006795883179 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": 0.025922514498233796, - "y": -0.06404880434274674, - "z": -0.036451879888772967 - }, - "rotation": { - "x": -0.5153175592422485, - "y": -0.13684964179992677, - "z": 0.0975230410695076, - "w": 0.840372622013092 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": 0.012116845697164536, - "y": -0.028988275676965715, - "z": -0.0184309259057045 - }, - "rotation": { - "x": -0.5083625912666321, - "y": -0.08690404891967774, - "z": 0.1772240400314331, - "w": 0.8382880687713623 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": 0.0047910469584167, - "y": -0.01052884478121996, - "z": -0.007911253720521927 - }, - "rotation": { - "x": -0.4986042380332947, - "y": -0.10437075048685074, - "z": 0.07316453754901886, - "w": 0.8577484488487244 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": 0.0011067038867622614, - "y": 0.0017288230592384935, - "z": -0.0008905145805329084 - }, - "rotation": { - "x": -0.4986042380332947, - "y": -0.10437075048685074, - "z": 0.07316453754901886, - "w": 0.8577484488487244 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.06627093255519867, - "y": -0.1093648374080658, - "z": -0.04731958359479904 - }, - "rotation": { - "x": -0.5980523824691773, - "y": -0.19373856484889985, - "z": 0.061999037861824039, - "w": 0.7752125859260559 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.04579643905162811, - "y": -0.05998942255973816, - "z": -0.035861626267433169 - }, - "rotation": { - "x": 0.07707051932811737, - "y": 0.09493987262248993, - "z": -0.06967925280332566, - "w": -0.9900561571121216 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.03759719431400299, - "y": -0.054239436984062198, - "z": 0.004158938303589821 - }, - "rotation": { - "x": -0.5364435911178589, - "y": 0.035090312361717227, - "z": -0.1292860358953476, - "w": -0.8333183526992798 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.039636775851249698, - "y": -0.07725092768669129, - "z": 0.014920881018042565 - }, - "rotation": { - "x": -0.7898687720298767, - "y": -0.05351902171969414, - "z": -0.050689004361629489, - "w": -0.6095116138458252 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.04198702797293663, - "y": -0.09284322708845139, - "z": 0.010831182822585106 - }, - "rotation": { - "x": -0.7898687720298767, - "y": -0.05351902171969414, - "z": -0.050689004361629489, - "w": -0.6095116138458252 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.07596171647310257, - "y": -0.10612225532531738, - "z": -0.04667811840772629 - }, - "rotation": { - "x": -0.5675100088119507, - "y": -0.08019199222326279, - "z": 0.10617346316576004, - "w": 0.8125444054603577 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.06377431005239487, - "y": -0.06213853880763054, - "z": -0.030012063682079316 - }, - "rotation": { - "x": -0.03975258022546768, - "y": 0.09559198468923569, - "z": -0.024301081895828248, - "w": -0.9943375587463379 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.056988153606653216, - "y": -0.06515654176473618, - "z": 0.005276134237647057 - }, - "rotation": { - "x": -0.7588484287261963, - "y": 0.0701710507273674, - "z": -0.045488141477108, - "w": -0.6459669470787048 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.05652663856744766, - "y": -0.08611556887626648, - "z": 0.0018516592681407929 - }, - "rotation": { - "x": -0.9129649996757507, - "y": -0.005179869011044502, - "z": -0.007560268044471741, - "w": -0.408629447221756 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.056841082870960239, - "y": -0.09943331778049469, - "z": -0.010053567588329316 - }, - "rotation": { - "x": -0.9129649996757507, - "y": -0.005179869011044502, - "z": -0.007560268044471741, - "w": -0.408629447221756 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.08423660695552826, - "y": -0.10567539930343628, - "z": -0.044220417737960818 - }, - "rotation": { - "x": -0.5077040791511536, - "y": 0.04072892665863037, - "z": 0.1517779380083084, - "w": 0.8470779657363892 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.0801829993724823, - "y": -0.06412312388420105, - "z": -0.021305494010448457 - }, - "rotation": { - "x": -0.08299122005701065, - "y": 0.1249239444732666, - "z": 0.04155319184064865, - "w": -0.9878235459327698 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.07411551475524903, - "y": -0.0677957683801651, - "z": 0.0015332028269767762 - }, - "rotation": { - "x": -0.715654730796814, - "y": 0.1371033787727356, - "z": 0.001321159303188324, - "w": -0.6849520206451416 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.07075578719377518, - "y": -0.08515383303165436, - "z": 0.00044181570410728455 - }, - "rotation": { - "x": -0.8999292254447937, - "y": 0.06855495274066925, - "z": 0.11455988883972168, - "w": -0.41592133045196535 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.0670883059501648, - "y": -0.09537018835544586, - "z": -0.008319821208715439 - }, - "rotation": { - "x": -0.8999292254447937, - "y": 0.06855495274066925, - "z": 0.11455988883972168, - "w": -0.41592133045196535 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json.meta deleted file mode 100644 index 72fc1f71e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Open.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 09df9528e8b9f6549a5f0989692b84ed -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json deleted file mode 100644 index 37c50cc96..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.0681008753599599, - "y": -0.023189845320302993, - "z": -0.32335868163499981 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "w": 0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.083900304394774139, - "y": -0.087249765929300338, - "z": -0.050604623393155634 - }, - "rotation": { - "x": -0.53067469596862793, - "y": -0.24036270380020142, - "z": -0.0010364949703216553, - "w": 0.81267738342285156 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.071408500778488815, - "y": -0.045779893931467086, - "z": -0.034272220567800105 - }, - "rotation": { - "x": -0.53067469596862793, - "y": -0.24036270380020142, - "z": -0.0010364949703216553, - "w": 0.81267738342285156 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.059964598971419036, - "y": -0.080086136993486434, - "z": -0.040898241684772074 - }, - "rotation": { - "x": -0.5606539249420166, - "y": -0.098196841776371, - "z": 0.670694887638092, - "w": 0.47619414329528809 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": 0.024715005303733051, - "y": -0.063306781288702041, - "z": -0.026187368319369853 - }, - "rotation": { - "x": -0.5155644416809082, - "y": -0.0010041594505310059, - "z": 0.66199594736099243, - "w": 0.54453784227371216 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": 0.0037162675289437175, - "y": -0.046092944976408035, - "z": -0.011772743077017367 - }, - "rotation": { - "x": -0.54901701211929321, - "y": -0.083434708416461945, - "z": 0.67281347513198853, - "w": 0.48939600586891174 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": -0.011031027999706566, - "y": -0.038446779188234359, - "z": -0.0048686085501685739 - }, - "rotation": { - "x": -0.54901701211929321, - "y": -0.083434708416461945, - "z": 0.67281347513198853, - "w": 0.48939600586891174 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.068815393256954849, - "y": -0.074782254931051284, - "z": -0.041599955991841853 - }, - "rotation": { - "x": -0.52426069974899292, - "y": -0.3638727068901062, - "z": 0.00037233531475067139, - "w": 0.76990067958831787 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": 0.0358468386111781, - "y": -0.027330848213750869, - "z": -0.030692756758071482 - }, - "rotation": { - "x": -0.51531755924224854, - "y": -0.13684964179992676, - "z": 0.0975230410695076, - "w": 0.840372622013092 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": 0.02204116981010884, - "y": 0.0077296804520301521, - "z": -0.012671802775003016 - }, - "rotation": { - "x": -0.50836259126663208, - "y": -0.086904048919677734, - "z": 0.17722404003143311, - "w": 0.8382880687713623 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": 0.014715371071361005, - "y": 0.026189111347775906, - "z": -0.0021521305898204446 - }, - "rotation": { - "x": -0.49860423803329468, - "y": -0.10437075048685074, - "z": 0.07316453754901886, - "w": 0.85774844884872437 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": 0.011031027999706566, - "y": 0.038446779188234359, - "z": 0.0048686085501685739 - }, - "rotation": { - "x": -0.49860423803329468, - "y": -0.10437075048685074, - "z": 0.07316453754901886, - "w": 0.85774844884872437 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.076195256668142974, - "y": -0.07264688127906993, - "z": -0.041560460464097559 - }, - "rotation": { - "x": -0.59805238246917725, - "y": -0.19373856484889984, - "z": 0.061999037861824036, - "w": 0.77521258592605591 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.055720763164572418, - "y": -0.023271466430742294, - "z": -0.030102503136731684 - }, - "rotation": { - "x": 0.077070519328117371, - "y": 0.094939872622489929, - "z": -0.069679252803325653, - "w": -0.99005615711212158 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.047521518426947296, - "y": -0.017521480855066329, - "z": 0.0099180614342913032 - }, - "rotation": { - "x": -0.53644359111785889, - "y": 0.035090312361717224, - "z": -0.1292860358953476, - "w": -0.83331835269927979 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.049561099964194, - "y": -0.040532971557695419, - "z": 0.020680004148744047 - }, - "rotation": { - "x": -0.78986877202987671, - "y": -0.053519021719694138, - "z": -0.050689004361629486, - "w": -0.6095116138458252 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.051911352085880935, - "y": -0.05612527095945552, - "z": 0.016590305953286588 - }, - "rotation": { - "x": -0.78986877202987671, - "y": -0.053519021719694138, - "z": -0.050689004361629486, - "w": -0.6095116138458252 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.085886040586046875, - "y": -0.069404299196321517, - "z": -0.040918995277024806 - }, - "rotation": { - "x": -0.56751000881195068, - "y": -0.080191992223262787, - "z": 0.10617346316576004, - "w": 0.81254440546035767 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.073698634165339172, - "y": -0.025420582678634673, - "z": -0.024252940551377833 - }, - "rotation": { - "x": -0.039752580225467682, - "y": 0.095591984689235687, - "z": -0.024301081895828247, - "w": -0.99433755874633789 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.066912477719597518, - "y": -0.02843858563574031, - "z": 0.011035257368348539 - }, - "rotation": { - "x": -0.75884842872619629, - "y": 0.0701710507273674, - "z": -0.045488141477108, - "w": -0.64596694707870483 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.066450962680391967, - "y": -0.049397612747270614, - "z": 0.0076107823988422751 - }, - "rotation": { - "x": -0.91296499967575073, - "y": -0.0051798690110445023, - "z": -0.0075602680444717407, - "w": -0.408629447221756 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.066765406983904541, - "y": -0.062715361651498824, - "z": -0.0042944444576278329 - }, - "rotation": { - "x": -0.91296499967575073, - "y": -0.0051798690110445023, - "z": -0.0075602680444717407, - "w": -0.408629447221756 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.094160931068472564, - "y": -0.068957443174440414, - "z": -0.038461294607259333 - }, - "rotation": { - "x": -0.50770407915115356, - "y": 0.040728926658630371, - "z": 0.15177793800830841, - "w": 0.84707796573638916 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.0901073234854266, - "y": -0.027405167755205184, - "z": -0.015546370879746974 - }, - "rotation": { - "x": -0.082991220057010651, - "y": 0.1249239444732666, - "z": 0.041553191840648651, - "w": -0.98782354593276978 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.084039838868193328, - "y": -0.031077812251169235, - "z": 0.0072923259576782584 - }, - "rotation": { - "x": -0.715654730796814, - "y": 0.1371033787727356, - "z": 0.001321159303188324, - "w": -0.6849520206451416 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.080680111306719482, - "y": -0.048435876902658492, - "z": 0.0062009388348087668 - }, - "rotation": { - "x": -0.8999292254447937, - "y": 0.06855495274066925, - "z": 0.11455988883972168, - "w": -0.41592133045196533 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.0770126300631091, - "y": -0.058652232226449996, - "z": -0.0025606980780139565 - }, - "rotation": { - "x": -0.8999292254447937, - "y": 0.06855495274066925, - "z": 0.11455988883972168, - "w": -0.41592133045196533 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json.meta deleted file mode 100644 index 7bbcc6f9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_OpenSteadyGrabPoint.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 6460a0fe729c4914cb23ec7d88cd700f -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json deleted file mode 100644 index 8b8d89324..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.055795830441638827, - "y": -0.050494263647124171, - "z": -0.31160801439546049 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "w": 0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.094970445381477475, - "y": -0.071920572547242045, - "z": -0.043240679195150733 - }, - "rotation": { - "x": -0.57126933336257935, - "y": -0.40886738896369934, - "z": -0.11714609712362289, - "w": 0.70179426670074463 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.078446935163810849, - "y": -0.025236195651814342, - "z": -0.038608604809269309 - }, - "rotation": { - "x": -0.57126933336257935, - "y": -0.40886738896369934, - "z": -0.11714609712362289, - "w": 0.70179426670074463 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.0704388425219804, - "y": -0.063463031081482768, - "z": -0.0446559542324394 - }, - "rotation": { - "x": 0.59957319498062134, - "y": 0.056990712881088257, - "z": -0.661469042301178, - "w": -0.44784826040267944 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": 0.030931103276088834, - "y": -0.041895947186276317, - "z": -0.03173214360140264 - }, - "rotation": { - "x": 0.48144450783729553, - "y": -0.077987000346183777, - "z": -0.66726517677307129, - "w": -0.56365346908569336 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": 0.011377685004845262, - "y": -0.0191096484195441, - "z": -0.013179950183257461 - }, - "rotation": { - "x": 0.48974254727363586, - "y": -0.04340343177318573, - "z": -0.678149402141571, - "w": -0.54698729515075684 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": -0.00054007698781788349, - "y": -0.0076306506525725126, - "z": -0.0031634948682039976 - }, - "rotation": { - "x": 0.48974254727363586, - "y": -0.04340343177318573, - "z": -0.678149402141571, - "w": -0.54698729515075684 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.079071666346862912, - "y": -0.057821920840069652, - "z": -0.042442125966772437 - }, - "rotation": { - "x": -0.54839807748794556, - "y": -0.5408281683921814, - "z": -0.10956580191850662, - "w": 0.6282992959022522 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": 0.042313426034525037, - "y": -0.0047555731143802404, - "z": -0.054694456746801734 - }, - "rotation": { - "x": 0.33803752064704895, - "y": 0.34615525603294373, - "z": -0.075356766581535339, - "w": -0.87192034721374512 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": 0.015641395235434175, - "y": 0.0171373023185879, - "z": -0.033025106182321906 - }, - "rotation": { - "x": 0.011520777828991413, - "y": 0.23532292246818543, - "z": -0.26723867654800415, - "w": -0.93442928791046143 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": 0.0043656446505337954, - "y": 0.014503426151350141, - "z": -0.01055326103232801 - }, - "rotation": { - "x": -0.18848013877868652, - "y": 0.1752738356590271, - "z": -0.23216751217842102, - "w": -0.938201367855072 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": 0.0011067038867622614, - "y": 0.0017288230592384935, - "z": -0.0008905145805329084 - }, - "rotation": { - "x": -0.4986042380332947, - "y": -0.10437075048685074, - "z": 0.07316453754901886, - "w": 0.8577484488487244 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.085573996650055051, - "y": -0.055481004295870662, - "z": -0.039088224759325385 - }, - "rotation": { - "x": -0.64046329259872437, - "y": -0.373137503862381, - "z": -0.082113638520240784, - "w": 0.66620767116546631 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.061702992068603635, - "y": 0.00021764193661510944, - "z": -0.04510785429738462 - }, - "rotation": { - "x": 0.1714177131652832, - "y": 0.3295632004737854, - "z": -0.056909773498773575, - "w": -0.92670679092407227 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.033647007541731, - "y": 0.01268923026509583, - "z": -0.012882571434602141 - }, - "rotation": { - "x": -0.52955335378646851, - "y": 0.20503298938274384, - "z": -0.28541553020477295, - "w": -0.77215194702148438 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.033218997763469815, - "y": -0.014666470466181636, - "z": -0.00248397677205503 - }, - "rotation": { - "x": -0.80611693859100342, - "y": 0.037188127636909485, - "z": -0.25478187203407288, - "w": -0.5337793231010437 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.039724528091028333, - "y": -0.030166196404024959, - "z": -0.0077722163405269384 - }, - "rotation": { - "x": -0.80611693859100342, - "y": 0.037188127636909485, - "z": -0.25478187203407288, - "w": -0.5337793231010437 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.094046983169391751, - "y": -0.05198403331451118, - "z": -0.034078513970598578 - }, - "rotation": { - "x": -0.63099503517150879, - "y": -0.25767973065376282, - "z": -0.040025528520345688, - "w": 0.73064666986465454 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.076233054744079709, - "y": -0.00047668232582509518, - "z": -0.030205076327547431 - }, - "rotation": { - "x": 0.061521425843238831, - "y": 0.32744783163070679, - "z": -0.026347285136580467, - "w": -0.94250476360321045 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.051643508719280362, - "y": 0.003435472259297967, - "z": 0.00062574469484388828 - }, - "rotation": { - "x": -0.7006344199180603, - "y": 0.22492779791355133, - "z": -0.23193849623203278, - "w": -0.63627457618713379 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.0525671869982034, - "y": -0.0204183969181031, - "z": -0.0013549791183322668 - }, - "rotation": { - "x": -0.88947725296020508, - "y": 0.068172931671142578, - "z": -0.23703967034816742, - "w": -0.38538727164268494 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.0596969083417207, - "y": -0.034293188480660319, - "z": -0.0127856710460037 - }, - "rotation": { - "x": -0.88947725296020508, - "y": 0.068172931671142578, - "z": -0.23703967034816742, - "w": -0.38538727164268494 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.10081055318005383, - "y": -0.050989105133339763, - "z": -0.027507969876751304 - }, - "rotation": { - "x": -0.58761417865753174, - "y": -0.13647006452083588, - "z": 0.010980717837810516, - "w": 0.79747408628463745 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.088435876416042447, - "y": -0.00084916572086513042, - "z": -0.01290042488835752 - }, - "rotation": { - "x": -0.015533886849880219, - "y": 0.36132562160491943, - "z": 0.044756371527910233, - "w": -0.9312441349029541 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.071086059557273984, - "y": -0.000761339208111167, - "z": 0.0060971176717430353 - }, - "rotation": { - "x": -0.6863744854927063, - "y": 0.30161058902740479, - "z": -0.18428879976272583, - "w": -0.63567912578582764 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.068500611232593656, - "y": -0.02024311083368957, - "z": 0.0036448633763939142 - }, - "rotation": { - "x": -0.93071597814559937, - "y": 0.13045383989810944, - "z": -0.11257931590080261, - "w": -0.32351988554000854 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.070451776729896665, - "y": -0.030086855171248317, - "z": -0.00828781514428556 - }, - "rotation": { - "x": -0.93071597814559937, - "y": 0.13045383989810944, - "z": -0.11257931590080261, - "w": -0.32351988554000854 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json.meta deleted file mode 100644 index 8f2233d57..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Pinch.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 00711cdd19e18a74db7fc25c63d9a0bf -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json deleted file mode 100644 index 627c670e6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.06115446984767914, - "y": -0.09662134945392609, - "z": -0.2845369577407837 - }, - "rotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.09835253655910492, - "y": -0.13776640594005586, - "z": -0.039533719420433047 - }, - "rotation": { - "x": -0.5504903793334961, - "y": -0.3628506064414978, - "z": 0.009051494300365448, - "w": 0.7516400218009949 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.0762285590171814, - "y": -0.0935618057847023, - "z": -0.03025330975651741 - }, - "rotation": { - "x": -0.5504903793334961, - "y": -0.3628506064414978, - "z": 0.009051494300365448, - "w": 0.7516400218009949 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.0726172998547554, - "y": -0.13283079862594605, - "z": -0.03489827364683151 - }, - "rotation": { - "x": 0.5268919467926025, - "y": 0.07137523591518402, - "z": -0.7376347184181213, - "w": -0.4172084629535675 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": 0.033425573259592059, - "y": -0.11720558255910874, - "z": -0.01445704698562622 - }, - "rotation": { - "x": 0.434413880109787, - "y": -0.0821000337600708, - "z": -0.7344200611114502, - "w": -0.5157689452171326 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": 0.014360085129737854, - "y": -0.09762166440486908, - "z": 0.006609674543142319 - }, - "rotation": { - "x": 0.4773363769054413, - "y": 0.019135713577270509, - "z": -0.7483649849891663, - "w": -0.4610738456249237 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": -0.00011064158752560616, - "y": -0.08949866145849228, - "z": 0.017393887042999269 - }, - "rotation": { - "x": 0.4773363769054413, - "y": 0.019135713577270509, - "z": -0.7483649849891663, - "w": -0.4610738456249237 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.08073623478412628, - "y": -0.125896617770195, - "z": -0.034658633172512057 - }, - "rotation": { - "x": -0.5162340998649597, - "y": -0.5017301440238953, - "z": 0.006298713386058807, - "w": 0.6940672993659973 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": 0.03474228084087372, - "y": -0.0794244259595871, - "z": -0.03704426437616348 - }, - "rotation": { - "x": 0.24844542145729066, - "y": 0.2553045451641083, - "z": -0.1957876831293106, - "w": -0.9136616587638855 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": 0.011708781123161316, - "y": -0.06496208906173706, - "z": -0.006560325622558594 - }, - "rotation": { - "x": -0.07294681668281555, - "y": 0.11601599305868149, - "z": -0.3479400873184204, - "w": -0.9274918437004089 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": 0.007551820017397404, - "y": -0.07041776180267334, - "z": 0.017747312784194948 - }, - "rotation": { - "x": -0.23120707273483277, - "y": 0.04230353981256485, - "z": -0.283862441778183, - "w": -0.9298091530799866 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": 0.008366326801478863, - "y": -0.07753925025463104, - "z": 0.03171003982424736 - }, - "rotation": { - "x": -0.23120707273483277, - "y": 0.04230353981256485, - "z": -0.283862441778183, - "w": -0.9298091530799866 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.08751480281352997, - "y": -0.12250128388404846, - "z": -0.03293202817440033 - }, - "rotation": { - "x": -0.6167790293693543, - "y": -0.3379325270652771, - "z": 0.047245174646377566, - "w": 0.7093328237533569 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.05473826080560684, - "y": -0.07110955566167832, - "z": -0.03227551281452179 - }, - "rotation": { - "x": 0.14497825503349305, - "y": 0.23276910185813905, - "z": -0.15017877519130708, - "w": -0.9498769640922546 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.03288401663303375, - "y": -0.061863791197538379, - "z": 0.005947750061750412 - }, - "rotation": { - "x": -0.529046893119812, - "y": 0.08228799700737, - "z": -0.27945762872695925, - "w": -0.7971096038818359 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.03765859827399254, - "y": -0.08771546185016632, - "z": 0.018359089270234109 - }, - "rotation": { - "x": -0.7883356809616089, - "y": -0.06667964905500412, - "z": -0.20251651108264924, - "w": -0.5779290795326233 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.044593729078769687, - "y": -0.10324498265981674, - "z": 0.013978719711303711 - }, - "rotation": { - "x": -0.7883356809616089, - "y": -0.06667964905500412, - "z": -0.20251651108264924, - "w": -0.5779290795326233 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.09642073512077332, - "y": -0.11764736473560333, - "z": -0.03004951775074005 - }, - "rotation": { - "x": -0.6103544235229492, - "y": -0.2158902883529663, - "z": 0.09254944324493408, - "w": 0.756500780582428 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.07221101969480515, - "y": -0.06899281591176987, - "z": -0.021143771708011628 - }, - "rotation": { - "x": 0.05531589314341545, - "y": 0.22126297652721406, - "z": -0.10504759848117829, - "w": -0.9679690599441528 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.05479241907596588, - "y": -0.06659357994794846, - "z": 0.014326661825180054 - }, - "rotation": { - "x": -0.7176058888435364, - "y": 0.09858439117670059, - "z": -0.19834160804748536, - "w": -0.6603801846504211 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.05848679319024086, - "y": -0.09022481739521027, - "z": 0.013152096420526505 - }, - "rotation": { - "x": -0.902705729007721, - "y": -0.04138700291514397, - "z": -0.16108426451683045, - "w": -0.39749816060066225 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.0647393986582756, - "y": -0.10384124517440796, - "z": 0.000916551798582077 - }, - "rotation": { - "x": -0.902705729007721, - "y": -0.04138700291514397, - "z": -0.16108426451683045, - "w": -0.39749816060066225 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.10431554913520813, - "y": -0.11550788581371308, - "z": -0.02525215595960617 - }, - "rotation": { - "x": -0.5731514096260071, - "y": -0.08393544703722, - "z": 0.14239011704921723, - "w": 0.8026066422462463 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.08813987672328949, - "y": -0.06685832887887955, - "z": -0.0073963552713394169 - }, - "rotation": { - "x": 0.004650826565921307, - "y": 0.2523718476295471, - "z": -0.022669829428195955, - "w": -0.967362105846405 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.07569940388202667, - "y": -0.066920705139637, - "z": 0.014825716614723206 - }, - "rotation": { - "x": -0.6876563429832459, - "y": 0.1765523999929428, - "z": -0.14831064641475678, - "w": -0.6885376572608948 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.0749262273311615, - "y": -0.08663906902074814, - "z": 0.014672402292490006 - }, - "rotation": { - "x": -0.927348792552948, - "y": 0.0344926156103611, - "z": -0.02340996265411377, - "w": -0.37271565198898318 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.07520446181297302, - "y": -0.09743660688400269, - "z": 0.0034288540482521059 - }, - "rotation": { - "x": -0.927348792552948, - "y": 0.0344926156103611, - "z": -0.02340996265411377, - "w": -0.37271565198898318 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json.meta deleted file mode 100644 index 18266f401..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_PinchSteadyWrist.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 6bcf1fd0588649141811cbcb8135da00 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json deleted file mode 100644 index 20ad07b8d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.0002162586897611618, - "y": -0.07638707756996155, - "z": -0.5826087594032288 - }, - "rotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.042526353150606158, - "y": -0.05274807661771774, - "z": -0.002824799157679081 - }, - "rotation": { - "x": -0.3676998019218445, - "y": -0.23572500050067902, - "z": -0.11507342755794525, - "w": 0.8920522332191467 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.03201436251401901, - "y": -0.019188636913895608, - "z": 0.02868746407330036 - }, - "rotation": { - "x": -0.3676998019218445, - "y": -0.23572500050067902, - "z": -0.11507342755794525, - "w": 0.8920522332191467 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.020570117980241777, - "y": -0.04709470272064209, - "z": 0.006985310930758715 - }, - "rotation": { - "x": 0.3615202307701111, - "y": 0.20331884920597077, - "z": -0.6839582324028015, - "w": -0.6008830666542053 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": -0.009850621223449707, - "y": -0.04070408642292023, - "z": 0.034042149782180789 - }, - "rotation": { - "x": 0.21800242364406587, - "y": 0.02305757999420166, - "z": -0.7068297266960144, - "w": -0.673233151435852 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": -0.02049688994884491, - "y": -0.03254491835832596, - "z": 0.06248035654425621 - }, - "rotation": { - "x": 0.258157342672348, - "y": 0.0635419636964798, - "z": -0.7039065957069397, - "w": -0.6593562960624695 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": -0.028410332277417184, - "y": -0.028122693300247194, - "z": 0.07770571112632752 - }, - "rotation": { - "x": 0.258157342672348, - "y": 0.0635419636964798, - "z": -0.7039065957069397, - "w": -0.6593562960624695 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.029027197510004045, - "y": -0.042809583246707919, - "z": 0.009094133973121643 - }, - "rotation": { - "x": -0.3631853759288788, - "y": -0.3677399158477783, - "z": -0.1473514586687088, - "w": 0.8432979583740234 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": -0.0017803632654249669, - "y": 0.0004678480327129364, - "z": 0.03705211728811264 - }, - "rotation": { - "x": -0.27657586336135867, - "y": -0.15855258703231812, - "z": 0.0009860674617812038, - "w": 0.947831392288208 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": -0.014122002758085728, - "y": 0.021943308413028718, - "z": 0.06970683485269547 - }, - "rotation": { - "x": -0.2553846836090088, - "y": -0.12617842853069306, - "z": 0.09538201987743378, - "w": 0.9538831114768982 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": -0.020550768822431566, - "y": 0.0322258397936821, - "z": 0.08830686658620835 - }, - "rotation": { - "x": -0.30963119864463808, - "y": -0.11118883639574051, - "z": -0.031351685523986819, - "w": 0.9441277980804443 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": -0.02332291379570961, - "y": 0.04081675410270691, - "z": 0.09968645870685578 - }, - "rotation": { - "x": -0.30963119864463808, - "y": -0.11118883639574051, - "z": -0.031351685523986819, - "w": 0.9441277980804443 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.035866666585206988, - "y": -0.041708216071128848, - "z": 0.010740639641880989 - }, - "rotation": { - "x": -0.43399062752723696, - "y": -0.2068476676940918, - "z": -0.05406999588012695, - "w": 0.8751816153526306 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.018060242757201196, - "y": 0.002479703165590763, - "z": 0.04112553596496582 - }, - "rotation": { - "x": 0.005038086324930191, - "y": 0.1527022123336792, - "z": 0.021530797705054284, - "w": -0.9880359768867493 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.005449346732348204, - "y": 0.0031707696616649629, - "z": 0.08099328726530075 - }, - "rotation": { - "x": -0.49786925315856936, - "y": 0.13922974467277528, - "z": -0.07507844269275665, - "w": -0.8527824878692627 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.0013555703917518259, - "y": -0.01869615726172924, - "z": 0.09269960224628449 - }, - "rotation": { - "x": -0.7163864970207214, - "y": 0.07041004300117493, - "z": -0.030646607279777528, - "w": -0.6939578652381897 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.0004728742642328143, - "y": -0.03479576110839844, - "z": 0.09213778376579285 - }, - "rotation": { - "x": -0.7163864970207214, - "y": 0.07041004300117493, - "z": -0.030646607279777528, - "w": -0.6939578652381897 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.044932689517736438, - "y": -0.04016602039337158, - "z": 0.013597620651125908 - }, - "rotation": { - "x": -0.3939853310585022, - "y": -0.10114617645740509, - "z": 0.016117071732878686, - "w": 0.9133923053741455 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.03491469845175743, - "y": -0.003818823955953121, - "z": 0.047541361302137378 - }, - "rotation": { - "x": -0.11738020181655884, - "y": 0.15373656153678895, - "z": 0.05639626830816269, - "w": -0.9795019030570984 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.023768775165081025, - "y": -0.01135534793138504, - "z": 0.08033758401870728 - }, - "rotation": { - "x": -0.7923092842102051, - "y": 0.16401034593582154, - "z": -0.02978098951280117, - "w": -0.5869977474212647 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.02067880891263485, - "y": -0.031320542097091678, - "z": 0.0737735852599144 - }, - "rotation": { - "x": -0.9346709847450256, - "y": 0.0874316394329071, - "z": -0.023773543536663057, - "w": -0.344605952501297 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.020386409014463426, - "y": -0.04289411008358002, - "z": 0.06018315628170967 - }, - "rotation": { - "x": -0.9346709847450256, - "y": 0.0874316394329071, - "z": -0.023773543536663057, - "w": -0.344605952501297 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.05288681760430336, - "y": -0.041848354041576388, - "z": 0.01654883660376072 - }, - "rotation": { - "x": -0.33144858479499819, - "y": 0.002071807160973549, - "z": 0.085218146443367, - "w": 0.9396145343780518 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.050300415605306628, - "y": -0.011202438734471798, - "z": 0.054917603731155398 - }, - "rotation": { - "x": -0.16419324278831483, - "y": 0.1696346402168274, - "z": 0.12252454459667206, - "w": -0.9639865159988403 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.04166591167449951, - "y": -0.017666997388005258, - "z": 0.07580538094043732 - }, - "rotation": { - "x": -0.7474591135978699, - "y": 0.20672142505645753, - "z": 0.04626481607556343, - "w": -0.6297129392623901 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.03587989881634712, - "y": -0.03386271744966507, - "z": 0.0722469910979271 - }, - "rotation": { - "x": -0.928327202796936, - "y": 0.13445810973644257, - "z": 0.1272566169500351, - "w": -0.3232197165489197 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.03135494887828827, - "y": -0.04178089275956154, - "z": 0.06164591759443283 - }, - "rotation": { - "x": -0.928327202796936, - "y": 0.13445810973644257, - "z": 0.1272566169500351, - "w": -0.3232197165489197 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json.meta deleted file mode 100644 index b926042f6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Poke.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 22b97ff789b664c4f9b9ee223c29eee7 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json deleted file mode 100644 index 4909c61ad..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": -0.01725071482360363, - "y": -0.08121182024478913, - "z": -0.47676876187324526 - }, - "rotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.08615099638700485, - "y": -0.024168234318494798, - "z": 0.034818120300769809 - }, - "rotation": { - "x": -0.24332590401172639, - "y": 0.6052875518798828, - "z": 0.5141062140464783, - "w": -0.5566452741622925 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.03520287200808525, - "y": -0.010816145688295365, - "z": 0.04648737236857414 - }, - "rotation": { - "x": -0.24332590401172639, - "y": 0.6052875518798828, - "z": 0.5141062140464783, - "w": -0.5566452741622925 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.06692907959222794, - "y": -0.0030839829705655576, - "z": 0.020349422469735147 - }, - "rotation": { - "x": 0.39406728744506838, - "y": 0.7213952541351318, - "z": 0.33115363121032717, - "w": -0.46385547518730166 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": 0.048644911497831348, - "y": 0.034663256257772449, - "z": 0.004639927297830582 - }, - "rotation": { - "x": 0.34302714467048647, - "y": 0.719179630279541, - "z": 0.2980014383792877, - "w": -0.5261238217353821 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": 0.030924495309591295, - "y": 0.05998371168971062, - "z": -0.004000300541520119 - }, - "rotation": { - "x": 0.4403221607208252, - "y": 0.6942930817604065, - "z": 0.3865111470222473, - "w": -0.4186002314090729 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": 0.02607334591448307, - "y": 0.07819978147745133, - "z": -0.011070644482970238 - }, - "rotation": { - "x": 0.4403221607208252, - "y": 0.6942930817604065, - "z": 0.3865111470222473, - "w": -0.4186002314090729 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.06430374830961228, - "y": -0.01019766554236412, - "z": 0.02929815649986267 - }, - "rotation": { - "x": -0.22792501747608186, - "y": 0.6316274404525757, - "z": 0.5866482257843018, - "w": -0.45270389318466189 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": 0.011573880910873413, - "y": 0.02339656837284565, - "z": 0.03546718880534172 - }, - "rotation": { - "x": 0.3942926526069641, - "y": -0.7424762845039368, - "z": -0.21414896845817567, - "w": 0.49741214513778689 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": -0.021892068907618524, - "y": 0.020658958703279496, - "z": 0.020219745114445688 - }, - "rotation": { - "x": 0.5834210515022278, - "y": -0.7061115503311157, - "z": 0.3634859323501587, - "w": 0.17027443647384644 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": -0.017463261261582376, - "y": 0.00348295527510345, - "z": 0.0038637774996459486 - }, - "rotation": { - "x": 0.6371655464172363, - "y": -0.4360961318016052, - "z": 0.6206539869308472, - "w": -0.13840782642364503 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": -0.001938387518748641, - "y": -0.0027357139624655248, - "z": 0.0005815188633278012 - }, - "rotation": { - "x": 0.6371655464172363, - "y": -0.4360961318016052, - "z": 0.6206539869308472, - "w": -0.13840782642364503 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.06397924572229386, - "y": -0.016921602189540864, - "z": 0.03521520271897316 - }, - "rotation": { - "x": -0.16760338842868806, - "y": 0.5928976535797119, - "z": 0.5015624761581421, - "w": -0.6073026657104492 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.01083554606884718, - "y": 0.006482137367129326, - "z": 0.049619730561971667 - }, - "rotation": { - "x": 0.5027921199798584, - "y": -0.7059369087219238, - "z": -0.16476257145404817, - "w": 0.4708792269229889 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": -0.025254713371396066, - "y": -0.003984889946877956, - "z": 0.02779259905219078 - }, - "rotation": { - "x": 0.6809582710266113, - "y": -0.6233372688293457, - "z": 0.3824990391731262, - "w": -0.039771441370248798 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": -0.00917090568691492, - "y": -0.015904264524579049, - "z": 0.007921875454485417 - }, - "rotation": { - "x": 0.6229440569877625, - "y": -0.2391648292541504, - "z": 0.642637312412262, - "w": -0.37781840562820437 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.008252275176346302, - "y": -0.013008372858166695, - "z": 0.009888304397463799 - }, - "rotation": { - "x": 0.6229440569877625, - "y": -0.2391648292541504, - "z": 0.642637312412262, - "w": -0.37781840562820437 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.06303475052118302, - "y": -0.02612213045358658, - "z": 0.04269380867481232 - }, - "rotation": { - "x": -0.18103565275669099, - "y": 0.5941647887229919, - "z": 0.39771339297294619, - "w": -0.6752913594245911 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.010207276791334153, - "y": -0.013390008360147477, - "z": 0.055441394448280337 - }, - "rotation": { - "x": 0.5632884502410889, - "y": -0.6713510751724243, - "z": -0.15870888531208039, - "w": 0.45477786660194399 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": -0.01994304731488228, - "y": -0.024818312376737596, - "z": 0.03496982902288437 - }, - "rotation": { - "x": 0.7331446409225464, - "y": -0.5462665557861328, - "z": 0.3692132830619812, - "w": -0.16697438061237336 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": -0.0031065356452018024, - "y": -0.028507214039564134, - "z": 0.019337791949510576 - }, - "rotation": { - "x": 0.6351615786552429, - "y": -0.23133434355258943, - "z": 0.5935887098312378, - "w": -0.43731656670570376 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.015546157956123352, - "y": -0.023027585819363595, - "z": 0.021024812012910844 - }, - "rotation": { - "x": 0.6351615786552429, - "y": -0.23133434355258943, - "z": 0.5935887098312378, - "w": -0.43731656670570376 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.06254640221595764, - "y": -0.034929849207401279, - "z": 0.04593820124864578 - }, - "rotation": { - "x": -0.19249169528484345, - "y": 0.581859290599823, - "z": 0.2601516842842102, - "w": -0.7461285591125488 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.009921858087182045, - "y": -0.03408779203891754, - "z": 0.05945640057325363 - }, - "rotation": { - "x": 0.6286200881004334, - "y": -0.6190594434738159, - "z": -0.18423764407634736, - "w": 0.43321672081947329 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": -0.007876850664615631, - "y": -0.041423700749874118, - "z": 0.04655241593718529 - }, - "rotation": { - "x": 0.7744045257568359, - "y": -0.5470465421676636, - "z": 0.2698802649974823, - "w": -0.1682688444852829 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.0036155348643660547, - "y": -0.042087383568286899, - "z": 0.03132062032818794 - }, - "rotation": { - "x": 0.7368069291114807, - "y": -0.19751593470573426, - "z": 0.4435950815677643, - "w": -0.47120407223701479 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.016652610152959825, - "y": -0.034032851457595828, - "z": 0.02879030816257 - }, - "rotation": { - "x": 0.7368069291114807, - "y": -0.19751593470573426, - "z": 0.4435950815677643, - "w": -0.47120407223701479 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json.meta deleted file mode 100644 index 3361cb673..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_ThumbsUp.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 71175c7404cbaee408470b929ff3ae1f -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json deleted file mode 100644 index 52e498ec9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "items": [ - { - "joint": "None", - "pose": { - "position": { - "x": 0.0021753902547061445, - "y": -0.13046418130397798, - "z": -0.45588064193725588 - }, - "rotation": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } - } - }, - { - "joint": "Wrist", - "pose": { - "position": { - "x": 0.07915662229061127, - "y": -0.13887012004852296, - "z": -0.010340530425310135 - }, - "rotation": { - "x": -0.5914298295974731, - "y": -0.2676140367984772, - "z": -0.06283169984817505, - "w": 0.7577439546585083 - } - } - }, - { - "joint": "Palm", - "pose": { - "position": { - "x": 0.06830108910799027, - "y": -0.09366560727357865, - "z": -0.0000256318598985672 - }, - "rotation": { - "x": -0.5914298295974731, - "y": -0.2676140367984772, - "z": -0.06283169984817505, - "w": 0.7577439546585083 - } - } - }, - { - "joint": "ThumbMetacarpalJoint", - "pose": { - "position": { - "x": 0.05787024274468422, - "y": -0.12883375585079194, - "z": -0.005382232367992401 - }, - "rotation": { - "x": 0.4801919758319855, - "y": -0.04491055756807327, - "z": -0.7443504333496094, - "w": -0.4627794027328491 - } - } - }, - { - "joint": "ThumbProximalJoint", - "pose": { - "position": { - "x": 0.030012525618076326, - "y": -0.10770050436258316, - "z": 0.016813457012176515 - }, - "rotation": { - "x": 0.312323659658432, - "y": -0.2742984890937805, - "z": -0.6935320496559143, - "w": -0.5894817113876343 - } - } - }, - { - "joint": "ThumbDistalJoint", - "pose": { - "position": { - "x": 0.026396021246910096, - "y": -0.08305369317531586, - "z": 0.03835996612906456 - }, - "rotation": { - "x": 0.26157766580581667, - "y": -0.3302468955516815, - "z": -0.6686716675758362, - "w": -0.6136223673820496 - } - } - }, - { - "joint": "ThumbTip", - "pose": { - "position": { - "x": 0.027343440800905229, - "y": -0.07000578194856644, - "z": 0.04939644783735275 - }, - "rotation": { - "x": 0.26157766580581667, - "y": -0.3302468955516815, - "z": -0.6686716675758362, - "w": -0.6136223673820496 - } - } - }, - { - "joint": "IndexMetacarpal", - "pose": { - "position": { - "x": 0.06611358374357224, - "y": -0.12426556646823883, - "z": -0.0055283233523368839 - }, - "rotation": { - "x": -0.5613270998001099, - "y": -0.42208683490753176, - "z": -0.06766947358846665, - "w": 0.7086432576179504 - } - } - }, - { - "joint": "IndexKnuckle", - "pose": { - "position": { - "x": 0.034438081085681918, - "y": -0.0725482851266861, - "z": -0.004708992317318916 - }, - "rotation": { - "x": -0.6286489963531494, - "y": -0.2787279188632965, - "z": 0.040076885372400287, - "w": 0.7249277830123901 - } - } - }, - { - "joint": "IndexMiddleJoint", - "pose": { - "position": { - "x": 0.015563697554171086, - "y": -0.03562714159488678, - "z": -0.0024565430358052255 - }, - "rotation": { - "x": -0.6645650863647461, - "y": -0.2075067013502121, - "z": 0.10458821058273316, - "w": 0.7102522253990173 - } - } - }, - { - "joint": "IndexDistalJoint", - "pose": { - "position": { - "x": 0.005756473168730736, - "y": -0.015270628966391087, - "z": -0.0017626225017011166 - }, - "rotation": { - "x": -0.6223592162132263, - "y": -0.24349386990070344, - "z": 0.01842544600367546, - "w": 0.7439839839935303 - } - } - }, - { - "joint": "IndexTip", - "pose": { - "position": { - "x": 0.00011674128472805023, - "y": -0.0018588211387395859, - "z": -0.00020025699632242322 - }, - "rotation": { - "x": -0.6223592162132263, - "y": -0.24349386990070344, - "z": 0.01842544600367546, - "w": 0.7439839839935303 - } - } - }, - { - "joint": "MiddleMetacarpal", - "pose": { - "position": { - "x": 0.07268297672271729, - "y": -0.12254584580659867, - "z": -0.004201311618089676 - }, - "rotation": { - "x": -0.6534333825111389, - "y": -0.22906279563903809, - "z": -0.018352244049310685, - "w": 0.7212615013122559 - } - } - }, - { - "joint": "MiddleKnuckle", - "pose": { - "position": { - "x": 0.054447855800390246, - "y": -0.06595612317323685, - "z": -0.0017550308257341385 - }, - "rotation": { - "x": -0.5899049043655396, - "y": -0.16088859736919404, - "z": -0.018363818526268007, - "w": 0.7910826206207275 - } - } - }, - { - "joint": "MiddleMiddleJoint", - "pose": { - "position": { - "x": 0.04355549067258835, - "y": -0.022029317915439607, - "z": 0.010043984279036522 - }, - "rotation": { - "x": -0.6020974516868591, - "y": -0.14070262014865876, - "z": -0.036361001431941989, - "w": 0.7852000594139099 - } - } - }, - { - "joint": "MiddleDistalJoint", - "pose": { - "position": { - "x": 0.03923114016652107, - "y": 0.0012873951345682145, - "z": 0.015791211277246476 - }, - "rotation": { - "x": -0.5366969108581543, - "y": -0.17153941094875337, - "z": -0.09987709671258927, - "w": 0.8206644058227539 - } - } - }, - { - "joint": "MiddleTip", - "pose": { - "position": { - "x": 0.03647539019584656, - "y": 0.015714645385742189, - "z": 0.021557386964559556 - }, - "rotation": { - "x": -0.5366969108581543, - "y": -0.17153941094875337, - "z": -0.09987709671258927, - "w": 0.8206644058227539 - } - } - }, - { - "joint": "RingMetacarpal", - "pose": { - "position": { - "x": 0.08137646317481995, - "y": -0.11985518038272858, - "z": -0.00190657377243042 - }, - "rotation": { - "x": -0.6267969012260437, - "y": -0.10518965870141983, - "z": 0.02498382329940796, - "w": 0.7716453075408936 - } - } - }, - { - "joint": "RingKnuckle", - "pose": { - "position": { - "x": 0.07067620009183884, - "y": -0.06669728457927704, - "z": 0.008708799257874489 - }, - "rotation": { - "x": 0.40646883845329287, - "y": 0.1807955503463745, - "z": 0.030094729736447336, - "w": -0.8951042294502258 - } - } - }, - { - "joint": "RingMiddleJoint", - "pose": { - "position": { - "x": 0.060088954865932468, - "y": -0.04056686535477638, - "z": 0.03008754923939705 - }, - "rotation": { - "x": -0.2107616662979126, - "y": 0.18913404643535615, - "z": -0.04620787873864174, - "w": -0.9580028653144836 - } - } - }, - { - "joint": "RingDistalJoint", - "pose": { - "position": { - "x": 0.0528024360537529, - "y": -0.0495174415409565, - "z": 0.047927625477313998 - }, - "rotation": { - "x": -0.449715256690979, - "y": 0.15903393924236298, - "z": -0.020673276856541635, - "w": -0.8789007067680359 - } - } - }, - { - "joint": "RingTip", - "pose": { - "position": { - "x": 0.048170287162065509, - "y": -0.06364263594150543, - "z": 0.05758979544043541 - }, - "rotation": { - "x": -0.449715256690979, - "y": 0.15903393924236298, - "z": -0.020673276856541635, - "w": -0.8789007067680359 - } - } - }, - { - "joint": "PinkyMetacarpal", - "pose": { - "position": { - "x": 0.08909709751605988, - "y": -0.11985252797603607, - "z": 0.001964922994375229 - }, - "rotation": { - "x": -0.5780324339866638, - "y": -0.0013396204449236394, - "z": 0.06318691372871399, - "w": 0.8135625720024109 - } - } - }, - { - "joint": "PinkyKnuckle", - "pose": { - "position": { - "x": 0.0851951465010643, - "y": -0.07107751816511154, - "z": 0.019172409549355508 - }, - "rotation": { - "x": 0.31776368618011477, - "y": 0.2502634525299072, - "z": 0.05463750660419464, - "w": -0.9129235744476318 - } - } - }, - { - "joint": "PinkyMiddleJoint", - "pose": { - "position": { - "x": 0.07433749735355377, - "y": -0.055455759167671207, - "z": 0.03647337108850479 - }, - "rotation": { - "x": -0.17528946697711945, - "y": 0.2344343513250351, - "z": 0.019245747476816179, - "w": -0.9560556411743164 - } - } - }, - { - "joint": "PinkyDistalJoint", - "pose": { - "position": { - "x": 0.06645255535840988, - "y": -0.06111001968383789, - "z": 0.050835996866226199 - }, - "rotation": { - "x": -0.4488738477230072, - "y": 0.26990553736686709, - "z": 0.08396486192941666, - "w": -0.8479632139205933 - } - } - }, - { - "joint": "PinkyTip", - "pose": { - "position": { - "x": 0.05911727994680405, - "y": -0.07095448672771454, - "z": 0.05705229192972183 - }, - "rotation": { - "x": -0.4488738477230072, - "y": 0.26990553736686709, - "z": 0.08396486192941666, - "w": -0.8479632139205933 - } - } - } - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json.meta deleted file mode 100644 index ad4947113..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ArticulatedHandPoses/ArticulatedHandPose_Victory.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 21f98e595bbf7294c96c87c187f41196 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs.meta deleted file mode 100644 index 878e11f0f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2150c16ab6f2c494bab1428d878815a7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs deleted file mode 100644 index 313510861..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Base class for services that create simulated input devices. - /// - public abstract class BaseInputSimulationService : BaseInputDeviceManager - { - /// - /// Dictionary to capture all active controllers detected - /// - private readonly Dictionary trackedControllers = new Dictionary(); - - /// - /// Active controllers - /// - private IMixedRealityController[] activeControllers = System.Array.Empty(); - - /// - public override IMixedRealityController[] GetActiveControllers() - { - return activeControllers; - } - - #region BaseInputDeviceManager Implementation - - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - protected BaseInputSimulationService( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - protected BaseInputSimulationService( - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : base(inputSystem, name, priority, profile) - { } - - #endregion BaseInputDeviceManager Implementation - - // Register input sources for controllers based on controller data - protected void UpdateControllerDevice(ControllerSimulationMode simulationMode, Handedness handedness, object controllerData) - { - if (controllerData != null) - { - if(controllerData is SimulatedHandData handData && handData.IsTracked) - { - - SimulatedHand hand = GetOrAddControllerDevice(handedness, simulationMode) as SimulatedHand; - hand.UpdateState(handData); - return; - - } - else if (controllerData is SimulatedMotionControllerData motionControllerData && motionControllerData.IsTracked) - { - SimulatedMotionController motionController = GetOrAddControllerDevice(handedness, simulationMode) as SimulatedMotionController; - motionController.UpdateState(motionControllerData); - return; - } - } - - RemoveControllerDevice(handedness); - - } - - public BaseController GetControllerDevice(Handedness handedness) - { - if (trackedControllers.TryGetValue(handedness, out BaseController controller)) - { - return controller; - } - return null; - } - - protected BaseController GetOrAddControllerDevice(Handedness handedness, ControllerSimulationMode simulationMode) - { - var controller = GetControllerDevice(handedness); - if (controller != null) - { - if (controller is SimulatedHand hand && hand.SimulationMode == simulationMode) - { - return controller; - } - else if (controller is SimulatedMotionController && simulationMode == ControllerSimulationMode.MotionController) - { - return controller; - } - else - { - // Remove and recreate controller device if simulation mode doesn't match - RemoveControllerDevice(handedness); - } - } - - DebugUtilities.LogVerboseFormat("GetOrAddControllerDevice: Adding a new simulated controller of handedness {0} and simulation mode {1}", handedness, simulationMode); - System.Type controllerType = null; - - SupportedControllerType st; - IMixedRealityInputSource inputSource; - switch (simulationMode) - { - case ControllerSimulationMode.HandGestures: - st = SupportedControllerType.GGVHand; - inputSource = Service?.RequestNewGenericInputSource($"{handedness} Hand", RequestPointers(st, handedness), InputSourceType.Hand); - controller = new SimulatedGestureHand(TrackingState.Tracked, handedness, inputSource); - controllerType = typeof(SimulatedGestureHand); - break; - case ControllerSimulationMode.ArticulatedHand: - st = SupportedControllerType.ArticulatedHand; - inputSource = Service?.RequestNewGenericInputSource($"{handedness} Hand", RequestPointers(st, handedness), InputSourceType.Hand); - controller = new SimulatedArticulatedHand(TrackingState.Tracked, handedness, inputSource); - controllerType = typeof(SimulatedArticulatedHand); - break; - case ControllerSimulationMode.MotionController: - st = SupportedControllerType.WindowsMixedReality; - inputSource = Service?.RequestNewGenericInputSource($"{handedness} MotionController", RequestPointers(st, handedness), InputSourceType.Controller); - controller = new SimulatedMotionController(TrackingState.Tracked, handedness, inputSource); - controllerType = typeof(SimulatedMotionController); - break; - default: - controller = null; - break; - } - - if (controller == null || !controller.Enabled) - { - // Controller failed to be setup correctly. - Debug.LogError($"Failed to create {controllerType} controller"); - // Return null so we don't raise the source detected. - return null; - } - - for (int i = 0; i < controller.InputSource?.Pointers?.Length; i++) - { - controller.InputSource.Pointers[i].Controller = controller; - } - - Service?.RaiseSourceDetected(controller.InputSource, controller); - - trackedControllers.Add(handedness, controller); - UpdateActiveControllers(); - - return controller; - } - - protected void RemoveControllerDevice(Handedness handedness) - { - var controller = GetControllerDevice(handedness); - if (controller != null) - { - DebugUtilities.LogVerboseFormat("RemoveHandDevice: Removing simulated controller of handedness", handedness); - - Service?.RaiseSourceLost(controller.InputSource, controller); - - RecyclePointers(controller.InputSource); - - trackedControllers.Remove(handedness); - UpdateActiveControllers(); - } - } - - protected void RemoveAllControllerDevices() - { - foreach (var controller in trackedControllers.Values) - { - Service?.RaiseSourceLost(controller.InputSource, controller); - - RecyclePointers(controller.InputSource); - } - - trackedControllers.Clear(); - UpdateActiveControllers(); - } - - private void UpdateActiveControllers() - { - activeControllers = trackedControllers.Values.ToArray(); - } - - #region Obsolete Methods - - // Register input sources for hands based on hand data - [Obsolete("Use UpdateControllerDevice instead.")] - protected void UpdateHandDevice(ControllerSimulationMode simulationMode, Handedness handedness, SimulatedHandData handData) - { - UpdateControllerDevice(simulationMode, handedness, handData); - } - - [Obsolete("Use GetControllerDevice instead.")] - public SimulatedHand GetHandDevice(Handedness handedness) - { - return GetControllerDevice(handedness) as SimulatedHand; - } - - [Obsolete("Use GetOrAddControllerDevice instead.")] - protected SimulatedHand GetOrAddHandDevice(Handedness handedness, ControllerSimulationMode simulationMode) - { - return GetOrAddControllerDevice(handedness, simulationMode) as SimulatedHand; - } - - [Obsolete("Use RemoveControllerDevice instead.")] - protected void RemoveHandDevice(Handedness handedness) - { - RemoveControllerDevice(handedness); - } - - [Obsolete("Use RemoveAllControllerDevices instead.")] - protected void RemoveAllHandDevices() - { - RemoveAllControllerDevices(); - } - - #endregion - - - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs.meta deleted file mode 100644 index 47d4fd080..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/BaseInputSimulationService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ca3059555b884c946976bf3fc39db8de -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor.meta deleted file mode 100644 index bcf8a7307..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5c75fc3d434a9bd498ec103b3ee4f0fd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index f3f7bf946..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3742c08a52fb2a7439c2a81138b367c8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs deleted file mode 100644 index 9ee8d8d18..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs +++ /dev/null @@ -1,477 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Tools for simulating and recording input as well as playing back input animation in the Unity editor. - /// - public class InputSimulationWindow : EditorWindow - { - private InputAnimation Animation - { - get { return PlaybackService?.Animation; } - set { if (PlaybackService != null) PlaybackService.Animation = value; } - } - - private string loadedFilePath = ""; - - private IInputSimulationService simulationService = null; - private IInputSimulationService SimulationService - { - get - { - if (simulationService == null) - { - simulationService = CoreServices.GetInputSystemDataProvider(); - } - - return simulationService; - } - } - - private IMixedRealityInputRecordingService recordingService = null; - private IMixedRealityInputRecordingService RecordingService - { - get - { - if (recordingService == null) - { - recordingService = CoreServices.GetInputSystemDataProvider(); - } - - return recordingService; - } - } - - private IMixedRealityInputPlaybackService playbackService = null; - private IMixedRealityInputPlaybackService PlaybackService - { - get - { - if (playbackService == null) - { - playbackService = CoreServices.GetInputSystemDataProvider(); - } - - return playbackService; - } - } - - public enum ToolMode - { - /// - /// Record input animation and store in the asset. - /// - Record, - /// - /// Play back input animation as simulated input. - /// - Playback, - } - - public ToolMode Mode { get; private set; } = ToolMode.Record; - - /// Icon textures - private Texture2D iconPlay = null; - private Texture2D iconPause = null; - private Texture2D iconRecord = null; - private Texture2D iconRecordActive = null; - private Texture2D iconStepFwd = null; - private Texture2D iconJumpBack = null; - private Texture2D iconJumpFwd = null; - - [MenuItem("Mixed Reality Toolkit/Utilities/Input Simulation")] - private static void ShowWindow() - { - InputSimulationWindow window = GetWindow(); - window.titleContent = new GUIContent("Input Simulation"); - window.Show(); - } - - private void OnGUI() - { - LoadIcons(); - - if (!Application.isPlaying) - { - EditorGUILayout.HelpBox("Input simulation is only available in play mode", MessageType.Info); - return; - } - - DrawSimulationGUI(); - - EditorGUILayout.Separator(); - - string[] modeStrings = Enum.GetNames(typeof(ToolMode)); - Mode = (ToolMode)GUILayout.SelectionGrid((int)Mode, modeStrings, modeStrings.Length); - - switch (Mode) - { - case ToolMode.Record: - DrawRecordingGUI(); - break; - case ToolMode.Playback: - DrawPlaybackGUI(); - break; - } - - - // XXX Reloading the scene is currently not supported, - // due to the life cycle of the MRTK "instance" object (see #4530). - // Enable the button below once scene reloading is supported! -#if false - using (new GUIEnabledWrapper(Application.isPlaying)) - { - bool reloadScene = GUILayout.Button("Reload Scene"); - if (reloadScene) - { - Scene activeScene = SceneManager.GetActiveScene(); - if (activeScene.IsValid()) - { - SceneManager.LoadScene(activeScene.name); - return; - } - } - } -#endif - } - - private void DrawSimulationGUI() - { - if (SimulationService == null) - { - EditorGUILayout.HelpBox("No input simulation service found", MessageType.Info); - return; - } - - DrawHeadGUI(); - DrawHandsGUI(); - } - - private void DrawHeadGUI() - { - if (!CameraCache.Main) - { - return; - } - - using (new GUILayout.VerticalScope(EditorStyles.helpBox)) - { - GUILayout.Label($"Head:"); - - Transform headTransform = CameraCache.Main.transform; - Vector3 newPosition = EditorGUILayout.Vector3Field("Position", headTransform.position); - Vector3 newRotation = DrawRotationGUI("Rotation", headTransform.rotation.eulerAngles); - bool resetHand = GUILayout.Button("Reset"); - - if (newPosition != headTransform.position) - { - headTransform.position = newPosition; - } - if (newRotation != headTransform.rotation.eulerAngles) - { - headTransform.rotation = Quaternion.Euler(newRotation); - } - if (resetHand) - { - headTransform.position = Vector3.zero; - headTransform.rotation = Quaternion.identity; - } - } - } - - private void DrawHandsGUI() - { - ControllerSimulationMode newHandSimMode = (ControllerSimulationMode)EditorGUILayout.EnumPopup("Hand Simulation Mode", SimulationService.ControllerSimulationMode); - - if (newHandSimMode != SimulationService.ControllerSimulationMode) - { - SimulationService.ControllerSimulationMode = newHandSimMode; - } - - using (new GUILayout.HorizontalScope()) - { - DrawHandGUI( - "Left", - SimulationService.IsAlwaysVisibleControllerLeft, v => SimulationService.IsAlwaysVisibleControllerLeft = v, - SimulationService.ControllerPositionLeft, v => SimulationService.ControllerPositionLeft = v, - SimulationService.ControllerRotationLeft, v => SimulationService.ControllerRotationLeft = v, - SimulationService.ResetControllerLeft); - - DrawHandGUI( - "Right", - SimulationService.IsAlwaysVisibleControllerRight, v => SimulationService.IsAlwaysVisibleControllerRight = v, - SimulationService.ControllerPositionRight, v => SimulationService.ControllerPositionRight = v, - SimulationService.ControllerRotationRight, v => SimulationService.ControllerRotationRight = v, - SimulationService.ResetControllerRight); - } - } - - private void DrawHandGUI(string name, - bool isAlwaysVisible, Action setAlwaysVisible, - Vector3 position, Action setPosition, - Vector3 rotation, Action setRotation, - Action reset) - { - using (new GUILayout.VerticalScope(EditorStyles.helpBox)) - { - GUILayout.Label($"{name} Hand:"); - - bool newIsAlwaysVisible = EditorGUILayout.Toggle("Always Visible", isAlwaysVisible); - Vector3 newPosition = EditorGUILayout.Vector3Field("Position", position); - Vector3 newRotation = DrawRotationGUI("Rotation", rotation); - bool resetHand = GUILayout.Button("Reset"); - - if (newIsAlwaysVisible != isAlwaysVisible) - { - setAlwaysVisible(newIsAlwaysVisible); - } - if (newPosition != position) - { - setPosition(newPosition); - } - if (newRotation != rotation) - { - setRotation(newRotation); - } - if (resetHand) - { - reset(); - } - } - } - - private void DrawRecordingGUI() - { - if (RecordingService == null) - { - EditorGUILayout.HelpBox("No input recording service found", MessageType.Info); - return; - } - - using (new GUILayout.HorizontalScope()) - { - bool newUseTimeLimit = GUILayout.Toggle(RecordingService.UseBufferTimeLimit, "Use buffer time limit"); - if (newUseTimeLimit != RecordingService.UseBufferTimeLimit) - { - RecordingService.UseBufferTimeLimit = newUseTimeLimit; - } - - using (new EditorGUI.DisabledGroupScope(!RecordingService.UseBufferTimeLimit)) - { - float newTimeLimit = EditorGUILayout.FloatField(RecordingService.RecordingBufferTimeLimit); - if (newTimeLimit != RecordingService.RecordingBufferTimeLimit) - { - RecordingService.RecordingBufferTimeLimit = newTimeLimit; - } - } - } - - bool wasRecording = RecordingService.IsRecording; - var recordButtonContent = wasRecording - ? new GUIContent(iconRecordActive, "Stop recording input animation") - : new GUIContent(iconRecord, "Record new input animation"); - bool record = GUILayout.Toggle(wasRecording, recordButtonContent, "Button"); - - if (record != wasRecording) - { - if (record) - { - RecordingService.StartRecording(); - } - else - { - RecordingService.StopRecording(); - - SaveAnimation(true); - } - } - - DrawAnimationInfo(); - } - - private void DrawPlaybackGUI() - { - DrawAnimationInfo(); - - using (new GUILayout.HorizontalScope()) - { - if (GUILayout.Button("Load ...")) - { - string filepath = EditorUtility.OpenFilePanel( - "Select input animation file", - "", - InputAnimationSerializationUtils.Extension); - - LoadAnimation(filepath); - } - } - - using (new EditorGUI.DisabledGroupScope(PlaybackService == null)) - { - bool wasPlaying = PlaybackService.IsPlaying; - - bool play, stepFwd, jumpBack, jumpFwd; - using (new GUILayout.HorizontalScope()) - { - jumpBack = GUILayout.Button(new GUIContent(iconJumpBack, "Jump to the start of the input animation"), "Button"); - var playButtonContent = wasPlaying - ? new GUIContent(iconPause, "Stop playing input animation") - : new GUIContent(iconPlay, "Play back input animation"); - play = GUILayout.Toggle(wasPlaying, playButtonContent, "Button"); - stepFwd = GUILayout.Button(new GUIContent(iconStepFwd, "Step forward one frame"), "Button"); - jumpFwd = GUILayout.Button(new GUIContent(iconJumpFwd, "Jump to the end of the input animation"), "Button"); - } - - float time = PlaybackService.LocalTime; - float duration = (Animation != null ? Animation.Duration : 0.0f); - float newTimeField = EditorGUILayout.FloatField("Current time", time); - float newTimeSlider = GUILayout.HorizontalSlider(time, 0.0f, duration); - - if (play != wasPlaying) - { - if (play) - { - PlaybackService.Play(); - } - else - { - PlaybackService.Pause(); - } - } - if (jumpBack) - { - PlaybackService.LocalTime = 0.0f; - } - if (jumpFwd) - { - PlaybackService.LocalTime = duration; - } - if (stepFwd) - { - PlaybackService.LocalTime += Time.deltaTime; - } - if (newTimeField != time) - { - PlaybackService.LocalTime = newTimeField; - } - if (newTimeSlider != time) - { - PlaybackService.LocalTime = newTimeSlider; - } - - // Repaint while playing to update the timeline - if (PlaybackService.IsPlaying) - { - Repaint(); - } - } - } - - private void DrawAnimationInfo() - { - using (new GUILayout.VerticalScope(EditorStyles.helpBox)) - { - GUILayout.Label("Animation Info:", EditorStyles.boldLabel); - - if (Animation != null) - { - GUILayout.Label($"File Path: {loadedFilePath}"); - GUILayout.Label($"Duration: {Animation.Duration} seconds"); - } - else - { - GUILayout.Label("No animation loaded"); - } - } - } - - private Vector3 DrawRotationGUI(string label, Vector3 rotation) - { - Vector3 newRotation = EditorGUILayout.Vector3Field(label, rotation); - - return newRotation; - } - - private void SaveAnimation(bool loadAfterExport) - { - string outputPath; - if (loadedFilePath.Length > 0) - { - string loadedDirectory = Path.GetDirectoryName(loadedFilePath); - outputPath = EditorUtility.SaveFilePanel( - "Select output path", - loadedDirectory, - InputAnimationSerializationUtils.GetOutputFilename(), - InputAnimationSerializationUtils.Extension); - } - else - { - outputPath = EditorUtility.SaveFilePanelInProject( - "Select output path", - InputAnimationSerializationUtils.GetOutputFilename(), - InputAnimationSerializationUtils.Extension, - "Enter filename for exporting input animation"); - } - - if (outputPath.Length > 0) - { - string filename = Path.GetFileName(outputPath); - string directory = Path.GetDirectoryName(outputPath); - - string result = RecordingService.SaveInputAnimation(filename, directory); - RecordingService.DiscardRecordedInput(); - - if (loadAfterExport) - { - LoadAnimation(result); - } - } - } - - private void LoadAnimation(string filepath) - { - if (PlaybackService.LoadInputAnimation(filepath)) - { - loadedFilePath = filepath; - } - else - { - loadedFilePath = ""; - } - } - - private void LoadIcons() - { - // MRTK_TimelinePlay.png - LoadTexture(ref iconPlay, "474f3f21b48daea4f8617806305769ff"); - // MRTK_TimelinePause.png - LoadTexture(ref iconPause, "1bfd4df7e86b18640b9fa1af5713bfb9"); - // MRTK_TimelineRecord.png - LoadTexture(ref iconRecord, "c079cf55f13c1dc4db7d09053a51a40d"); - // MRTK_TimelineRecordActive.png - LoadTexture(ref iconRecordActive, "6752387ee2181ee4fbef5cc74691b6ac"); - // MRTK_TimelineStepFwd.png - LoadTexture(ref iconStepFwd, "230b98155638e544892c123d8d674737"); - // MRTK_TimelineJumpFwd.png - LoadTexture(ref iconJumpFwd, "3afb597cbd6ec44439ea7b8ce92d957a"); - // MRTK_TimelineJumpBack.png - LoadTexture(ref iconJumpBack, "a5d8e80a54741dc459e4f116e1d477f2"); - } - - private static void LoadTexture(ref Texture2D tex, string fileGuid) - { - if (tex == null) - { - tex = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(fileGuid)); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs.meta deleted file mode 100644 index 70177ac11..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/InputSimulationWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 51a705c87f917a846bc2d6d22071f950 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs deleted file mode 100644 index 617578667..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; -using System; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Inspector for KeyBindings. - /// This shows a simple dropdown list for selecting a binding, as well as a button for binding keys by pressing them. - /// - [CustomPropertyDrawer(typeof(KeyBinding))] - public class KeyBindingInspector : PropertyDrawer - { - // Draw the property inside the given rect - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty bindingType = property.FindPropertyRelative("bindingType"); - SerializedProperty code = property.FindPropertyRelative("code"); - - // Using BeginProperty / EndProperty on the parent property means that - // prefab override logic works on the entire property. - EditorGUI.BeginProperty(position, label, property); - - // Draw label - position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); - Rect autoBindPosition = new Rect(position.x + position.width - 20.0f, position.y, 20.0f, position.height); - Rect codePosition = new Rect(position.x, position.y, position.width - 22.0f, position.height); - - // Don't make child fields be indented - var indent = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - - // Show the traditional long dropdown list for selecting a key binding. - if (KeyBinding.KeyBindingToEnumMap.TryGetValue(Tuple.Create((KeyBinding.KeyType)bindingType.intValue, code.intValue), out int index)) - { - int newIndex = EditorGUI.Popup(codePosition, index, KeyBinding.AllCodeNames); - - if (newIndex != index) - { - if (KeyBinding.EnumToKeyBindingMap.TryGetValue(newIndex, out var kb)) - { - bindingType.intValue = (int)kb.Item1; - code.intValue = kb.Item2; - } - } - } - - // Show a popup for binding by pressing a key or mouse button. - // Note that this method does not work for shift keys (Unity event limitation) - if (GUI.Button(autoBindPosition, "")) - { - KeyBindingPopupWindow.Show(property); - } - - // Set indent back to what it was - EditorGUI.indentLevel = indent; - - EditorGUI.EndProperty(); - - property.serializedObject.ApplyModifiedProperties(); - } - } - - /// - /// Utility window that listens to input events to set a key binding. - /// Pressing a key or mouse button will define the binding and then immediately close the popup. - /// - /// - /// The shift keys don't raise input events on their own, so this popup does not work for shift keys. - /// These have to be bound by selecting from the traditional dropdown list. - /// - public class KeyBindingPopupWindow : EditorWindow - { - private static KeyBindingPopupWindow window; - - private SerializedProperty keyBindingProp; - private SerializedProperty bindingTypeProp; - private SerializedProperty codeProp; - - /// - /// Create a new popup. - /// - public static void Show(SerializedProperty keyBinding) - { - if (window != null) - { - window.Close(); - } - - window = null; - - window = CreateInstance(); - window.titleContent = new GUIContent($"Key Binding : {keyBinding.name}"); - window.keyBindingProp = keyBinding; - window.bindingTypeProp = keyBinding.FindPropertyRelative("bindingType"); - window.codeProp = keyBinding.FindPropertyRelative("code"); - - var windowSize = new Vector2(256f, 128f); - window.maxSize = windowSize; - window.minSize = windowSize; - window.CenterOnMainWin(); - window.ShowUtility(); - } - - private void OnGUI() - { - Event evt = Event.current; - switch (evt.type) - { - case EventType.KeyUp: - ApplyKeyCode(evt.keyCode); - break; - - case EventType.MouseUp: - ApplyMouseButton(evt.button); - break; - } - } - - // Set the binding based on a keyboard key - private void ApplyKeyCode(KeyCode keyCode) - { - bindingTypeProp.intValue = (int)KeyBinding.KeyType.Key; - codeProp.intValue = (int)keyCode; - keyBindingProp.serializedObject.ApplyModifiedProperties(); - - Close(); - } - - // Set the binding based on a mouse button - private void ApplyMouseButton(int button) - { - bindingTypeProp.intValue = (int)KeyBinding.KeyType.Mouse; - codeProp.intValue = button; - keyBindingProp.serializedObject.ApplyModifiedProperties(); - - Close(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs.meta deleted file mode 100644 index 758739b22..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/KeyBindingInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e85e97339813a2f4ead7067ecee43f16 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef deleted file mode 100644 index db9f5d68b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Services.InputSimulation.Editor", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.Editor.Utilities", - "Microsoft.MixedReality.Toolkit.Services.InputAnimation", - "Microsoft.MixedReality.Toolkit.Services.InputSystem", - "Microsoft.MixedReality.Toolkit.Services.InputSimulation" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef.meta deleted file mode 100644 index 7d1174008..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MRTK.InputSimulation.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 69755a58367f21b4eac0fb359bd8f990 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs deleted file mode 100644 index 70c9fc9da..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs +++ /dev/null @@ -1,230 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CustomEditor(typeof(MixedRealityInputSimulationProfile))] - public class MixedRealityInputSimulationProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private SerializedProperty indicatorsPrefab; - private SerializedProperty doublePressTime; - - private SerializedProperty isCameraControlEnabled; - private SerializedProperty isHandsFreeInputEnabled; - - private SerializedProperty mouseLookSpeed; - private SerializedProperty mouseRotationSensitivity; - private SerializedProperty mouseLookButton; - private SerializedProperty mouseLookToggle; - private SerializedProperty isControllerLookInverted; - private SerializedProperty cameraOriginOffset; - private SerializedProperty currentControlMode; - private SerializedProperty fastControlKey; - private SerializedProperty controlSlowSpeed; - private SerializedProperty controlFastSpeed; - private SerializedProperty moveHorizontal; - private SerializedProperty moveVertical; - private SerializedProperty moveUpDown; - private SerializedProperty mouseX; - private SerializedProperty mouseY; - private SerializedProperty mouseScroll; - private SerializedProperty lookHorizontal; - private SerializedProperty lookVertical; - - private SerializedProperty defaultControllerSimulationMode; - - private SerializedProperty defaultEyeGazeSimulationMode; - - private SerializedProperty toggleLeftControllerKey; - private SerializedProperty toggleRightControllerKey; - private SerializedProperty controllerHideTimeout; - private SerializedProperty leftControllerManipulationKey; - private SerializedProperty rightControllerManipulationKey; - private SerializedProperty mouseControllerRotationSpeed; - private SerializedProperty controllerRotateButton; - - private SerializedProperty defaultHandGesture; - private SerializedProperty leftMouseHandGesture; - private SerializedProperty middleMouseHandGesture; - private SerializedProperty rightMouseHandGesture; - private SerializedProperty handGestureAnimationSpeed; - - private SerializedProperty defaultControllerDistance; - private SerializedProperty controllerDepthMultiplier; - private SerializedProperty controllerJitterAmount; - - private SerializedProperty motionControllerTriggerKey; - private SerializedProperty motionControllerGrabKey; - private SerializedProperty motionControllerMenuKey; - - private SerializedProperty holdStartDuration; - private SerializedProperty navigationStartThreshold; - - private const string ProfileTitle = "Input Simulation Settings"; - private const string ProfileDescription = "Settings for simulating input devices in the editor."; - - protected override void OnEnable() - { - base.OnEnable(); - - indicatorsPrefab = serializedObject.FindProperty("indicatorsPrefab"); - doublePressTime = serializedObject.FindProperty("doublePressTime"); - - isCameraControlEnabled = serializedObject.FindProperty("isCameraControlEnabled"); - isHandsFreeInputEnabled = serializedObject.FindProperty("isHandsFreeInputEnabled"); - - mouseLookSpeed = serializedObject.FindProperty("mouseLookSpeed"); - mouseRotationSensitivity = serializedObject.FindProperty("mouseRotationSensitivity"); - mouseLookButton = serializedObject.FindProperty("mouseLookButton"); - mouseLookToggle = serializedObject.FindProperty("mouseLookToggle"); - isControllerLookInverted = serializedObject.FindProperty("isControllerLookInverted"); - cameraOriginOffset = serializedObject.FindProperty("cameraOriginOffset"); - currentControlMode = serializedObject.FindProperty("currentControlMode"); - fastControlKey = serializedObject.FindProperty("fastControlKey"); - controlSlowSpeed = serializedObject.FindProperty("controlSlowSpeed"); - controlFastSpeed = serializedObject.FindProperty("controlFastSpeed"); - moveHorizontal = serializedObject.FindProperty("moveHorizontal"); - moveVertical = serializedObject.FindProperty("moveVertical"); - moveUpDown = serializedObject.FindProperty("moveUpDown"); - mouseX = serializedObject.FindProperty("mouseX"); - mouseY = serializedObject.FindProperty("mouseY"); - mouseScroll = serializedObject.FindProperty("mouseScroll"); - lookHorizontal = serializedObject.FindProperty("lookHorizontal"); - lookVertical = serializedObject.FindProperty("lookVertical"); - - defaultEyeGazeSimulationMode = serializedObject.FindProperty("defaultEyeGazeSimulationMode"); - defaultControllerSimulationMode = serializedObject.FindProperty("defaultControllerSimulationMode"); - - toggleLeftControllerKey = serializedObject.FindProperty("toggleLeftControllerKey"); - toggleRightControllerKey = serializedObject.FindProperty("toggleRightControllerKey"); - controllerHideTimeout = serializedObject.FindProperty("controllerHideTimeout"); - leftControllerManipulationKey = serializedObject.FindProperty("leftControllerManipulationKey"); - rightControllerManipulationKey = serializedObject.FindProperty("rightControllerManipulationKey"); - mouseControllerRotationSpeed = serializedObject.FindProperty("mouseControllerRotationSpeed"); - controllerRotateButton = serializedObject.FindProperty("controllerRotateButton"); - - defaultHandGesture = serializedObject.FindProperty("defaultHandGesture"); - leftMouseHandGesture = serializedObject.FindProperty("leftMouseHandGesture"); - middleMouseHandGesture = serializedObject.FindProperty("middleMouseHandGesture"); - rightMouseHandGesture = serializedObject.FindProperty("rightMouseHandGesture"); - handGestureAnimationSpeed = serializedObject.FindProperty("handGestureAnimationSpeed"); - - holdStartDuration = serializedObject.FindProperty("holdStartDuration"); - navigationStartThreshold = serializedObject.FindProperty("navigationStartThreshold"); - - defaultControllerDistance = serializedObject.FindProperty("defaultControllerDistance"); - controllerDepthMultiplier = serializedObject.FindProperty("controllerDepthMultiplier"); - controllerJitterAmount = serializedObject.FindProperty("controllerJitterAmount"); - - motionControllerTriggerKey = serializedObject.FindProperty("motionControllerTriggerKey"); - motionControllerGrabKey = serializedObject.FindProperty("motionControllerGrabKey"); - motionControllerMenuKey = serializedObject.FindProperty("motionControllerMenuKey"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.Input)) - { - return; - } - - serializedObject.Update(); - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - EditorGUILayout.PropertyField(indicatorsPrefab); - - EditorGUILayout.Space(); - EditorGUILayout.BeginVertical("Label"); - EditorGUILayout.PropertyField(mouseRotationSensitivity); - EditorGUILayout.PropertyField(mouseX); - EditorGUILayout.PropertyField(mouseY); - EditorGUILayout.PropertyField(mouseScroll); - EditorGUILayout.PropertyField(doublePressTime); - EditorGUILayout.PropertyField(isHandsFreeInputEnabled); - EditorGUILayout.EndVertical(); - - EditorGUILayout.PropertyField(isCameraControlEnabled); - { - EditorGUILayout.BeginVertical("Label"); - using (new EditorGUI.DisabledGroupScope(!isCameraControlEnabled.boolValue)) - { - EditorGUILayout.PropertyField(mouseLookSpeed); - EditorGUILayout.PropertyField(mouseLookButton); - EditorGUILayout.PropertyField(mouseLookToggle); - EditorGUILayout.PropertyField(isControllerLookInverted); - EditorGUILayout.PropertyField(cameraOriginOffset); - EditorGUILayout.PropertyField(currentControlMode); - EditorGUILayout.PropertyField(fastControlKey); - EditorGUILayout.PropertyField(controlSlowSpeed); - EditorGUILayout.PropertyField(controlFastSpeed); - EditorGUILayout.PropertyField(moveHorizontal); - EditorGUILayout.PropertyField(moveVertical); - EditorGUILayout.PropertyField(moveUpDown); - EditorGUILayout.PropertyField(lookHorizontal); - EditorGUILayout.PropertyField(lookVertical); - - EditorGUILayout.EndVertical(); - } - } - - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(defaultEyeGazeSimulationMode); - - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(defaultControllerSimulationMode); - { - EditorGUILayout.BeginVertical("Label"); - - EditorGUILayout.PropertyField(toggleLeftControllerKey); - EditorGUILayout.PropertyField(toggleRightControllerKey); - EditorGUILayout.PropertyField(controllerHideTimeout); - EditorGUILayout.PropertyField(leftControllerManipulationKey); - EditorGUILayout.PropertyField(rightControllerManipulationKey); - EditorGUILayout.PropertyField(mouseControllerRotationSpeed); - EditorGUILayout.PropertyField(controllerRotateButton); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(defaultControllerDistance); - EditorGUILayout.PropertyField(controllerDepthMultiplier); - EditorGUILayout.PropertyField(controllerJitterAmount); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(defaultHandGesture); - EditorGUILayout.PropertyField(leftMouseHandGesture); - EditorGUILayout.PropertyField(middleMouseHandGesture); - EditorGUILayout.PropertyField(rightMouseHandGesture); - EditorGUILayout.PropertyField(handGestureAnimationSpeed); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(holdStartDuration); - EditorGUILayout.PropertyField(navigationStartThreshold); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(motionControllerTriggerKey); - EditorGUILayout.PropertyField(motionControllerGrabKey); - EditorGUILayout.PropertyField(motionControllerMenuKey); - EditorGUILayout.Space(); - - EditorGUILayout.EndVertical(); - } - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.DataProviderConfigurations != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.DataProviderConfigurations.Any(s => profile == s.DeviceManagerProfile); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs.meta deleted file mode 100644 index aa086b89c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/Editor/MixedRealityInputSimulationProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 83fe8bf6cf5f9d64f98e221fcdf7b388 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs deleted file mode 100644 index ad84d12f7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public interface IInputSimulationService : IMixedRealityInputDeviceManager - { - /// - /// Typed representation of the ConfigurationProfile property. - /// - MixedRealityInputSimulationProfile InputSimulationProfile { get; } - - /// - /// Simulated eye gaze behavior. - /// - EyeGazeSimulationMode EyeGazeSimulationMode { get; set; } - - /// - /// Simulated controller behavior. - /// - ControllerSimulationMode ControllerSimulationMode { get; set; } - - /// - /// Pose data for the left hand. - /// - SimulatedHandData HandDataLeft { get; } - /// - /// Pose data for the right hand. - /// - SimulatedHandData HandDataRight { get; } - - /// - /// Pose data for the left motion controller. - /// - SimulatedMotionControllerData MotionControllerDataLeft { get; } - /// - /// Pose data for the right motion controller. - /// - SimulatedMotionControllerData MotionControllerDataRight { get; } - - /// - /// If true then keyboard and mouse input are used to simulate controllers. - /// - bool UserInputEnabled { get; set; } - - /// - /// The left controller is controlled by user input. - /// - bool IsSimulatingControllerLeft { get; } - /// - /// The right controller is controlled by user input. - /// - bool IsSimulatingControllerRight { get; } - - /// - /// The left controller is always tracking. - /// - bool IsAlwaysVisibleControllerLeft { get; set; } - /// - /// The right controller is always tracking. - /// - bool IsAlwaysVisibleControllerRight { get; set; } - - /// - /// Position of the left controller in view space. - /// - Vector3 ControllerPositionLeft { get; set; } - /// - /// Position of the right controller in view space. - /// - Vector3 ControllerPositionRight { get; set; } - - /// - /// Rotation euler angles of the left controller in view space. - /// - Vector3 ControllerRotationLeft { get; set; } - /// - /// Rotation euler angles of the right controller in view space. - /// - Vector3 ControllerRotationRight { get; set; } - - /// - /// Reset the left controller. - /// - void ResetControllerLeft(); - /// - /// Reset the right controller. - /// - void ResetControllerRight(); - - #region Obsolete Properties - /// - /// Simulated hand behavior. - /// - [Obsolete("Use ControllerSimulationMode instead.")] - HandSimulationMode HandSimulationMode { get; set; } - - /// - /// The left hand is controlled by user input. - /// - [Obsolete("Use IsSimulatingControllerLeft instead.")] - bool IsSimulatingHandLeft { get; } - /// - /// The right hand is controlled by user input. - /// - [Obsolete("Use IsSimulatingControllerRight instead.")] - bool IsSimulatingHandRight { get; } - - /// - /// The left hand is always tracking. - /// - [Obsolete("Use IsAlwaysVisibleControllerLeft instead.")] - bool IsAlwaysVisibleHandLeft { get; set; } - /// - /// The right hand is always tracking. - /// - [Obsolete("Use IsAlwaysVisibleControllerRight instead.")] - bool IsAlwaysVisibleHandRight { get; set; } - - /// - /// Position of the left hand in view space. - /// - [Obsolete("Use ControllerPositionLeft instead.")] - Vector3 HandPositionLeft { get; set; } - /// - /// Position of the right hand in view space. - /// - [Obsolete("Use ControllerPositionRight instead.")] - Vector3 HandPositionRight { get; set; } - - /// - /// Rotation euler angles of the left hand in view space. - /// - [Obsolete("Use ControllerRotationLeft instead.")] - Vector3 HandRotationLeft { get; set; } - /// - /// Rotation euler angles of the right hand in view space. - /// - [Obsolete("Use ControllerRotationRight instead.")] - Vector3 HandRotationRight { get; set; } - - /// - /// Reset the left hand. - /// - [Obsolete("Use ResetControllerLeft instead.")] - void ResetHandLeft(); - /// - /// Reset the right hand. - /// - [Obsolete("Use ResetControllerRight instead.")] - void ResetHandRight(); - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs.meta deleted file mode 100644 index 04dc286ad..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IInputSimulationService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b592fda7bd51d57429daf89ae76ae821 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs deleted file mode 100644 index a4e891144..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Plays back input animation via the input simulation system. - /// - public interface IMixedRealityInputPlaybackService : IMixedRealityInputDeviceManager - { - /// - /// The animation currently being played. - /// - InputAnimation Animation { get; set; } - - /// - /// True if the animation is currently playing. - /// - bool IsPlaying { get; } - - /// - /// The local time in seconds relative to the start of the animation. - /// - float LocalTime { get; set; } - - /// - /// Start playing the animation. - /// - void Play(); - - /// - /// Stop playing the animation and jump to the start. - /// - void Stop(); - - /// - /// Pause playback and keep the current local time. - /// - void Pause(); - - /// - /// Try to load input animation data from the given file. - /// - /// - /// True if loading input animation from the file succeeded. - /// - bool LoadInputAnimation(string filepath); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs.meta deleted file mode 100644 index 96e8286a6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/IMixedRealityInputPlaybackService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6095233c5a34bb744a88af5550b07b7c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs deleted file mode 100644 index 767bc5689..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.IO; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Plays back input animation via the input simulation system. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - (SupportedPlatforms)(-1), // Supported on all platforms - "Input Playback Service")] - public class InputPlaybackService : - BaseInputSimulationService, - IMixedRealityInputPlaybackService - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - /// - /// Pose data for the left hand. - /// - public SimulatedHandData HandDataLeft { get; } = new SimulatedHandData(); - /// - /// Pose data for the right hand. - /// - public SimulatedHandData HandDataRight { get; } = new SimulatedHandData(); - - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public InputPlaybackService( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public InputPlaybackService( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) - { } - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - switch (capability) - { - case MixedRealityCapability.ArticulatedHand: - return true; - case MixedRealityCapability.GGVHand: - return true; - } - - return false; - } - - private InputAnimation animation = null; - /// - public InputAnimation Animation - { - get { return animation; } - set - { - animation = value; - Evaluate(); - } - } - - /// - /// Duration of the played animation. - /// - public float Duration => (animation != null ? animation.Duration : 0.0f); - - private bool isPlaying = false; - /// - public bool IsPlaying => isPlaying; - - private float localTime = 0.0f; - /// - public float LocalTime - { - get { return localTime; } - set - { - localTime = value; - Evaluate(); - } - } - - /// - public void Play() - { - if (animation != null) - { - SetPlaying(true); - } - } - - /// - public void Stop() - { - SetPlaying(false); - localTime = 0.0f; - - Evaluate(); - } - - /// - public void Pause() - { - SetPlaying(false); - } - - /// - public override void Update() - { - if (isPlaying) - { - localTime += Time.deltaTime; - - if (localTime >= Duration) - { - localTime = 0.0f; - SetPlaying(false); - } - - Evaluate(); - } - } - - private void SetPlaying(bool playing) - { - isPlaying = playing; - } - - /// Evaluate the animation and update the simulation service to apply input. - private void Evaluate() - { - if (animation == null) - { - SetPlaying(false); - localTime = 0.0f; - return; - } - - if (CameraCache.Main) - { - var cameraPose = animation.EvaluateCameraPose(localTime); - CameraCache.Main.transform.SetPositionAndRotation(cameraPose.Position, cameraPose.Rotation); - } - - EvaluateHandData(HandDataLeft, Handedness.Left); - EvaluateHandData(HandDataRight, Handedness.Right); - } - - private void EvaluateHandData(SimulatedHandData handData, Handedness handedness) - { - animation.EvaluateHandState(localTime, handedness, out bool isTracked, out bool isPinching); - - if (handData.Update(isTracked, isPinching, - (MixedRealityPose[] joints) => - { - for (int i = 0; i < jointCount; ++i) - { - joints[i] = animation.EvaluateHandJoint(localTime, handedness, (TrackedHandJoint)i); - } - })) - { - UpdateControllerDevice(ControllerSimulationMode.ArticulatedHand, handedness, handData); - } - } - - /// - public bool LoadInputAnimation(string filepath) - { - if (filepath.Length > 0) - { - try - { - using (FileStream fs = new FileStream(filepath, FileMode.Open)) - { - animation = new InputAnimation(); - animation.FromStream(fs); - - Evaluate(); - - return true; - } - } - catch (IOException ex) - { - Debug.LogError(ex.Message); - animation = null; - } - } - return false; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs.meta deleted file mode 100644 index 95c876183..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputPlaybackService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 930a450cc06098348a66371835143ab3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs deleted file mode 100644 index 5b7a4057a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using System; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - - /// - /// Defines for how input simulation handles movement - /// - public enum InputSimulationControlMode - { - /// - /// Move in the main camera forward direction - /// - Fly, - - /// - /// Move on a X/Z plane - /// - Walk, - } - - - /// - /// Defines for how input simulation handles eye gaze - /// - public enum EyeGazeSimulationMode - { - /// - /// Disable eye gaze simulation - /// - Disabled, - - /// - /// Eye gaze follows the camera forward axis - /// - CameraForwardAxis, - - /// - /// Eye gaze follows the mouse - /// - Mouse, - } - - /// - /// Defines for how input simulation handles controllers - /// - public enum ControllerSimulationMode - { - - /// - /// Disable controller simulation - /// - Disabled, - - /// - /// Raises hand gesture events only - /// - HandGestures, - - /// - /// Provide a fully articulated hand controller - /// - ArticulatedHand, - - /// - /// Provide a 6DoF motion controller - /// - MotionController, - } - - #region Obsolete Enum - /// - /// Defines for how input simulation handles controllers - /// - [Obsolete("Use ControllerSimulationMode instead.")] - public enum HandSimulationMode - { - - /// - /// Disable controller simulation - /// - Disabled = ControllerSimulationMode.Disabled, - - /// - /// Raises hand gesture events only - /// - Gestures = ControllerSimulationMode.HandGestures, - - /// - /// Provide a fully articulated hand controller - /// - Articulated = ControllerSimulationMode.ArticulatedHand, - - /// - /// Provide a 6DoF motion controller - /// - MotionController = ControllerSimulationMode.MotionController, - } - #endregion - -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs.meta deleted file mode 100644 index bbbbefe29..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationEnum.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e18ea6f8f5f471a4a80af1af25700d24 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs deleted file mode 100644 index 27ee5c412..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using System.Collections.Generic; -using Microsoft.MixedReality.Toolkit.Input; -using TMPro; - -namespace Microsoft.MixedReality.Toolkit.Examples -{ - /// - /// Class which handles displaying and hiding the input simulation help guide - /// - public class InputSimulationHelpGuide : MonoBehaviour - { - [SerializeField] - [Tooltip("Keys required to bring up the input display tips")] - public List HelpGuideShortcutKeys; - - [SerializeField] - [Tooltip("The gameobject that displays the shortcut for bringing up the input simulation help guide")] - public GameObject HelpGuideShortcutTip = null; - - [SerializeField] - [Tooltip("Whether or not to show the help guide shortcut on startup")] - public bool DisplayHelpGuideShortcutTipOnStart = true; - - [SerializeField] - [Tooltip("The game object containing the input simulation help guide")] - public GameObject HelpGuideVisual = null; - - // Start is called before the first frame update - void Start() - { - string HelpGuideShortcutString = ""; - for(int i = 0; i < HelpGuideShortcutKeys.Count; i++) - { - string key = HelpGuideShortcutKeys[i].ToString(); - if (i > 0) - HelpGuideShortcutString += " + "; - HelpGuideShortcutString += key; - } - - HelpGuideShortcutTip.GetComponentInChildren().text = "Press " + HelpGuideShortcutString + " to open up the input simulation guide"; - if (DisplayHelpGuideShortcutTipOnStart) - { - HelpGuideShortcutTip.SetActive(true); - } - HelpGuideVisual.SetActive(false); - } - - // Update is called once per frame - void Update() - { - bool shortcutPressed = true; - bool shortcutDown = false; - - // Checks to make sure that all keys are pressed and that one of the required shortcut keys was pressed on this frame - // before bringing up the shortcut - foreach (KeyCode key in HelpGuideShortcutKeys) - { - shortcutPressed &= KeyInputSystem.GetKey(KeyBinding.FromKey(key)); - shortcutDown |= KeyInputSystem.GetKeyDown(KeyBinding.FromKey(key)); - } - - if (shortcutPressed && shortcutDown) - { - HelpGuideVisual.SetActive(!HelpGuideVisual.activeSelf); - HelpGuideShortcutTip.SetActive(false); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs.meta deleted file mode 100644 index 5441c9955..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationHelpGuide.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b468aa5b7f931c140adaa4a3e66d718e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs deleted file mode 100644 index 8507d88f6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs +++ /dev/null @@ -1,680 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Utility struct that provides mouse delta in pixels (screen space), normalized viewport coordinates, and world units. - /// - public class MouseDelta - { - public Vector3 screenDelta = Vector3.zero; - public Vector3 viewportDelta = Vector3.zero; - public Vector3 worldDelta = Vector3.zero; - - /// - /// Resets all vector contents to zero vector values - /// - public void Reset() - { - screenDelta = Vector3.zero; - viewportDelta = Vector3.zero; - worldDelta = Vector3.zero; - } - } - - /// - /// Service that provides simulated mixed reality input information based on mouse and keyboard input in editor - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsEditor | SupportedPlatforms.MacEditor | SupportedPlatforms.LinuxEditor, - "Input Simulation Service", - "Profiles/DefaultMixedRealityInputSimulationProfile.asset", - "MixedRealityToolkit.SDK", - true)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/InputSimulation/InputSimulationService.html")] - public class InputSimulationService : - BaseInputSimulationService, - IInputSimulationService, - IMixedRealityEyeGazeDataProvider, - IMixedRealityCapabilityCheck - { - private ManualCameraControl cameraControl = null; - private SimulatedControllerDataProvider dataProvider = null; - - /// - public ControllerSimulationMode ControllerSimulationMode { get; set; } - - /// - public SimulatedHandData HandDataLeft { get; } = new SimulatedHandData(); - /// - public SimulatedHandData HandDataRight { get; } = new SimulatedHandData(); - /// - private SimulatedHandData HandDataGaze { get; } = new SimulatedHandData(); - /// - public SimulatedMotionControllerData MotionControllerDataLeft { get; } = new SimulatedMotionControllerData(); - /// - public SimulatedMotionControllerData MotionControllerDataRight { get; } = new SimulatedMotionControllerData(); - - /// - public bool IsSimulatingControllerLeft => (dataProvider != null ? dataProvider.IsSimulatingLeft : false); - /// - public bool IsSimulatingControllerRight => (dataProvider != null ? dataProvider.IsSimulatingRight : false); - - /// - public bool IsAlwaysVisibleControllerLeft - { - get { return dataProvider != null ? dataProvider.IsAlwaysVisibleLeft : false; } - set { if (dataProvider != null) { dataProvider.IsAlwaysVisibleLeft = value; } } - } - - /// - public bool IsAlwaysVisibleControllerRight - { - get { return dataProvider != null ? dataProvider.IsAlwaysVisibleRight : false; } - set { if (dataProvider != null) { dataProvider.IsAlwaysVisibleRight = value; } } - } - - /// - public Vector3 ControllerPositionLeft - { - get { return dataProvider != null ? dataProvider.InputStateLeft.ViewportPosition : Vector3.zero; } - set { if (dataProvider != null) { dataProvider.InputStateLeft.ViewportPosition = value; } } - } - - /// - public Vector3 ControllerPositionRight - { - get { return dataProvider != null ? dataProvider.InputStateRight.ViewportPosition : Vector3.zero; } - set { if (dataProvider != null) { dataProvider.InputStateRight.ViewportPosition = value; } } - } - - /// - public Vector3 ControllerRotationLeft - { - get { return dataProvider != null ? dataProvider.InputStateLeft.ViewportRotation : Vector3.zero; } - set { if (dataProvider != null) { dataProvider.InputStateLeft.ViewportRotation = value; } } - } - - /// - public Vector3 ControllerRotationRight - { - get { return dataProvider != null ? dataProvider.InputStateRight.ViewportRotation : Vector3.zero; } - set { if (dataProvider != null) { dataProvider.InputStateRight.ViewportRotation = value; } } - } - - /// - public void ResetControllerLeft() - { - if (dataProvider != null) - { - dataProvider.ResetInput(Handedness.Left); - } - } - - /// - public void ResetControllerRight() - { - if (dataProvider != null) - { - dataProvider.ResetInput(Handedness.Right); - } - } - - /// - /// If true then camera forward direction is used to simulate eye tracking data. - /// - [Obsolete("Check the EyeGazeSimulationMode instead")] - public bool SimulateEyePosition - { - get - { - return EyeGazeSimulationMode != EyeGazeSimulationMode.Disabled; - } - set - { - EyeGazeSimulationMode = value ? EyeGazeSimulationMode.CameraForwardAxis : EyeGazeSimulationMode.Disabled; - } - } - - /// - public EyeGazeSimulationMode EyeGazeSimulationMode { get; set; } - - /// - /// If true then keyboard and mouse input are used to simulate controllers. - /// - public bool UserInputEnabled { get; set; } = true; - - /// - /// Timestamp of the last controller device update - /// - private long lastControllerUpdateTimestamp = 0; - - /// - /// Indicators to show input simulation state in the viewport. - /// - private GameObject indicators; - - /// - /// Tracks mouse movement delta information in different coordinate system spaces between updates - /// - private MouseDelta mouseDelta = new MouseDelta(); - - private Vector3 lastMousePosition; - private bool wasFocused; - private bool wasCursorLocked; - - #region BaseInputDeviceManager Implementation - - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public InputSimulationService( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public InputSimulationService( - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : base(inputSystem, name, priority, profile) { } - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - switch (capability) - { - case MixedRealityCapability.ArticulatedHand: - return (ControllerSimulationMode == ControllerSimulationMode.ArticulatedHand); - - case MixedRealityCapability.GGVHand: - // If any hand simulation is enabled, GGV interactions are supported. - return (ControllerSimulationMode != ControllerSimulationMode.Disabled); - - case MixedRealityCapability.EyeTracking: - return EyeGazeSimulationMode != EyeGazeSimulationMode.Disabled; - - case MixedRealityCapability.MotionController: - return ControllerSimulationMode == ControllerSimulationMode.MotionController; - } - - return false; - } - - /// - public override void Initialize() - { - base.Initialize(); - - ControllerSimulationMode = InputSimulationProfile.DefaultControllerSimulationMode; - EyeGazeSimulationMode = InputSimulationProfile.DefaultEyeGazeSimulationMode; - } - - /// - public override void Destroy() - { - base.Destroy(); - } - - /// - public override void Enable() - { - base.Enable(); - - var profile = InputSimulationProfile; - - if (indicators == null && profile.IndicatorsPrefab) - { - indicators = GameObject.Instantiate(profile.IndicatorsPrefab); - } - - ResetMouseDelta(); - } - - /// - public override void Disable() - { - base.Disable(); - - if (indicators) - { - GameObject.Destroy(indicators); - } - - DisableCameraControl(); - DisableControllerSimulation(); - } - - /// - public override void Update() - { - base.Update(); - - var profile = InputSimulationProfile; - - switch (ControllerSimulationMode) - { - case ControllerSimulationMode.Disabled: - DisableControllerSimulation(); - break; - - case ControllerSimulationMode.ArticulatedHand: - case ControllerSimulationMode.HandGestures: - EnableHandSimulation(); - break; - - case ControllerSimulationMode.MotionController: - EnableMotionControllerSimulation(); - break; - } - - // If an XRDevice is present, the user will not be able to control the camera - // as it is controlled by the device. We therefore disable camera controls in - // this case. - // This was causing issues while simulating in editor for VR, as the UpDown - // camera movement is mapped to controller AXIS_3, which happens to be the - // select trigger for WMR controllers. - if (profile.IsCameraControlEnabled && !DeviceUtility.IsPresent) - { - EnableCameraControl(); - } - else - { - DisableCameraControl(); - } - - UpdateMouseDelta(); - - if (UserInputEnabled) - { - if (dataProvider != null) - { - if (dataProvider is SimulatedHandDataProvider handDataProvider) - { - handDataProvider.UpdateHandData(HandDataLeft, HandDataRight, HandDataGaze, mouseDelta); - } - else if (dataProvider is SimulatedMotionControllerDataProvider controllerDataProvider) - { - controllerDataProvider.UpdateControllerData(MotionControllerDataLeft, MotionControllerDataRight, mouseDelta); - } - - } - - if (cameraControl != null && CameraCache.Main != null) - { - cameraControl.UpdateTransform(CameraCache.Main.transform, mouseDelta); - } - } - - switch (EyeGazeSimulationMode) - { - case EyeGazeSimulationMode.Disabled: - break; - case EyeGazeSimulationMode.CameraForwardAxis: - // In the simulated eye gaze condition, let's set the eye tracking calibration status automatically to true - Service?.EyeGazeProvider?.UpdateEyeTrackingStatus(this, true); - Service?.EyeGazeProvider?.UpdateEyeGaze(this, new Ray(CameraCache.Main.transform.position, CameraCache.Main.transform.forward), DateTime.UtcNow); - break; - case EyeGazeSimulationMode.Mouse: - // In the simulated eye gaze condition, let's set the eye tracking calibration status automatically to true - Service?.EyeGazeProvider?.UpdateEyeTrackingStatus(this, true); - Service?.EyeGazeProvider?.UpdateEyeGaze(this, CameraCache.Main.ScreenPointToRay(UnityEngine.Input.mousePosition), DateTime.UtcNow); - break; - } - } - - /// - public override void LateUpdate() - { - base.LateUpdate(); - - var profile = InputSimulationProfile; - - // Apply hand data in LateUpdate to ensure external changes are applied. - // HandDataLeft/Right can be modified after the services Update() call. - if (ControllerSimulationMode == ControllerSimulationMode.Disabled) - { - RemoveAllControllerDevices(); - } - else - { - DateTime currentTime = DateTime.UtcNow; - double msSinceLastControllerUpdate = currentTime.Subtract(new DateTime(lastControllerUpdateTimestamp)).TotalMilliseconds; - // TODO implement custom hand device update frequency here, use 1000/fps instead of 0 - if (msSinceLastControllerUpdate > 0) - { - object controllerDataLeft = null; - object controllerDataRight = null; - switch (ControllerSimulationMode) - { - case ControllerSimulationMode.ArticulatedHand: - case ControllerSimulationMode.HandGestures: - controllerDataLeft = HandDataLeft; - controllerDataRight = HandDataRight; - break; - - case ControllerSimulationMode.MotionController: - controllerDataLeft = MotionControllerDataLeft; - controllerDataRight = MotionControllerDataRight; - break; - } - UpdateControllerDevice(ControllerSimulationMode, Handedness.Left, controllerDataLeft); - UpdateControllerDevice(ControllerSimulationMode, Handedness.Right, controllerDataRight); - - // HandDataGaze is only enabled if the user is simulating via mouse and keyboard - if (UserInputEnabled && profile.IsHandsFreeInputEnabled) - UpdateControllerDevice(ControllerSimulationMode.HandGestures, Handedness.None, HandDataGaze); - lastControllerUpdateTimestamp = currentTime.Ticks; - } - } - } - - #endregion BaseInputDeviceManager Implementation - - private MixedRealityInputSimulationProfile inputSimulationProfile = null; - - /// - public MixedRealityInputSimulationProfile InputSimulationProfile - { - get - { - if (inputSimulationProfile == null) - { - inputSimulationProfile = ConfigurationProfile as MixedRealityInputSimulationProfile; - } - return inputSimulationProfile; - } - set - { - inputSimulationProfile = value; - } - } - - /// - IMixedRealityEyeSaccadeProvider IMixedRealityEyeGazeDataProvider.SaccadeProvider => null; - - /// - bool IMixedRealityEyeGazeDataProvider.SmoothEyeTracking { get; set; } - - private void EnableCameraControl() - { - if (cameraControl == null) - { - cameraControl = new ManualCameraControl(InputSimulationProfile); - - if (CameraCache.Main != null) - { - cameraControl.SetInitialTransform(CameraCache.Main.transform); - } - } - } - - private void DisableCameraControl() - { - if (cameraControl != null) - { - cameraControl = null; - } - } - - private void EnableHandSimulation() - { - if (dataProvider == null) - { - DebugUtilities.LogVerbose("Creating a new hand simulation data provider"); - dataProvider = new SimulatedHandDataProvider(InputSimulationProfile); - } - else if (dataProvider is SimulatedMotionControllerDataProvider) - { - DebugUtilities.LogVerbose("Replacing motion controller simulation data provider with hand simulation data provider"); - RemoveAllControllerDevices(); - dataProvider = new SimulatedHandDataProvider(InputSimulationProfile); - } - } - - private void EnableMotionControllerSimulation() - { - if (dataProvider == null) - { - DebugUtilities.LogVerbose("Creating a new motion controller simulation data provider"); - dataProvider = new SimulatedMotionControllerDataProvider(InputSimulationProfile); - } - else if (dataProvider is SimulatedHandDataProvider) - { - DebugUtilities.LogVerbose("Replacing hand simulation data provider with motion controller simulation data provider"); - RemoveAllControllerDevices(); - dataProvider = new SimulatedMotionControllerDataProvider(InputSimulationProfile); - } - - } - - private void DisableControllerSimulation() - { - RemoveAllControllerDevices(); - - if (dataProvider != null) - { - DebugUtilities.LogVerbose("Destroying the controller simulation data provider"); - dataProvider = null; - } - } - - private void ResetMouseDelta() - { - lastMousePosition = UnityEngine.Input.mousePosition; - - mouseDelta.Reset(); - } - - private void UpdateMouseDelta() - { - var profile = InputSimulationProfile; - - bool isFocused = Application.isFocused; - bool gainedFocus = !wasFocused && isFocused; - wasFocused = isFocused; - - bool isCursorLocked = UnityEngine.Cursor.lockState != CursorLockMode.None; - bool cursorLockChanged = wasCursorLocked != isCursorLocked; - wasCursorLocked = isCursorLocked; - - // Reset in cases where mouse position is jumping - if (gainedFocus || cursorLockChanged) - { - ResetMouseDelta(); - } - else - { - Vector3 screenDelta; - Vector3 worldDelta; - if (UnityEngine.Cursor.lockState == CursorLockMode.Locked) - { - screenDelta.x = UnityEngine.Input.GetAxis(profile.MouseX); - screenDelta.y = UnityEngine.Input.GetAxis(profile.MouseY); - - worldDelta.z = UnityEngine.Input.GetAxis(profile.MouseScroll); - } - else - { - // Use frame-to-frame mouse delta in pixels to determine mouse rotation. - // The traditional GetAxis("Mouse X") method doesn't work under Remote Desktop. - screenDelta.x = (UnityEngine.Input.mousePosition.x - lastMousePosition.x); - screenDelta.y = (UnityEngine.Input.mousePosition.y - lastMousePosition.y); - - worldDelta.z = UnityEngine.Input.mouseScrollDelta.y; - } - - // Interpret scroll values as world space delta - worldDelta.z *= profile.ControllerDepthMultiplier; - - Vector2 worldDepthDelta = new Vector2(worldDelta.z, 0); - - // Convert world space scroll delta into screen space pixels - screenDelta.z = WorldToScreen(worldDepthDelta).x; - - // Convert screen space x/y delta into world space - Vector2 worldDelta2D = ScreenToWorld(screenDelta); - worldDelta.x = worldDelta2D.x; - worldDelta.y = worldDelta2D.y; - - // Viewport delta x and y can be computed from screen x/y. - // Note that the conversion functions do not change Z, it is expected to always be in world space units. - Vector3 viewportDelta = CameraCache.Main.ScreenToViewportPoint(screenDelta); - // Compute viewport-scale z delta - viewportDelta.z = WorldToViewport(worldDepthDelta).x; - - lastMousePosition = UnityEngine.Input.mousePosition; - - mouseDelta.screenDelta = screenDelta; - mouseDelta.worldDelta = worldDelta; - mouseDelta.viewportDelta = viewportDelta; - } - } - - // Default world-space distance for converting screen/viewport scroll offsets into world space depth offset. - // The pixel-to-world-unit ratio changes with depth, so have to chose a fixed distance for conversion. - // Center of the viewport is at (0.5, 0.5) - private const float mouseWorldDepth = 0.5f; - - private Vector2 ScreenToWorld(Vector3 screenDelta) - { - Vector3 deltaViewport3D = new Vector3( - screenDelta.x / (0.5f * CameraCache.Main.pixelWidth), - screenDelta.y / (0.5f * CameraCache.Main.pixelHeight), - 1) * mouseWorldDepth; - - var invProjMat = Matrix4x4.Inverse(CameraCache.Main.projectionMatrix); - Vector3 deltaWorld3D = invProjMat * deltaViewport3D; - - return new Vector2(deltaWorld3D.x, deltaWorld3D.y); - } - - private Vector2 WorldToScreen(Vector2 deltaWorld) - { - Vector3 deltaWorld3D = new Vector3(deltaWorld.x, deltaWorld.y, mouseWorldDepth); - - Vector4 proj = CameraCache.Main.projectionMatrix * deltaWorld3D; - Vector3 deltaViewport3D = -proj / proj.w; - - return new Vector2( - deltaViewport3D.x * CameraCache.Main.pixelWidth, - deltaViewport3D.y * CameraCache.Main.pixelHeight); - } - - private Vector2 WorldToViewport(Vector2 deltaWorld) - { - Vector3 deltaWorld3D = new Vector3(deltaWorld.x, deltaWorld.y, mouseWorldDepth); - - Vector4 proj = CameraCache.Main.projectionMatrix * deltaWorld3D; - Vector3 deltaViewport3D = -proj / proj.w; - - return new Vector2(deltaViewport3D.x, deltaViewport3D.y); - } - - #region Obsolete Properties and Methods - /// - [Obsolete("Use ControllerSimulationMode instead.")] - public HandSimulationMode HandSimulationMode - { - get => (HandSimulationMode)ControllerSimulationMode; - set - { - ControllerSimulationMode = (ControllerSimulationMode)value; - } - } - - /// - [Obsolete("Use IsSimulatingControllerLeft instead.")] - public bool IsSimulatingHandLeft => IsSimulatingControllerLeft; - /// - [Obsolete("Use IsSimulatingControllerRight instead.")] - public bool IsSimulatingHandRight => IsSimulatingControllerRight; - - /// - [Obsolete("Use IsAlwaysVisibleControllerLeft instead.")] - public bool IsAlwaysVisibleHandLeft - { - get => IsAlwaysVisibleControllerLeft; - set { IsAlwaysVisibleControllerLeft = value; } - } - - /// - [Obsolete("Use IsAlwaysVisibleControllerRight instead.")] - public bool IsAlwaysVisibleHandRight - { - get => IsAlwaysVisibleControllerRight; - set { IsAlwaysVisibleControllerRight = value; } - } - - /// - [Obsolete("Use ControllerPositionLeft instead.")] - public Vector3 HandPositionLeft - { - get => ControllerPositionLeft; - set { ControllerPositionLeft = value; } - } - - /// - [Obsolete("Use ControllerPositionRight instead.")] - public Vector3 HandPositionRight - { - get => ControllerPositionRight; - set { ControllerPositionRight = value; } - } - - /// - [Obsolete("Use ControllerRotationLeft instead.")] - public Vector3 HandRotationLeft - { - get => ControllerRotationLeft; - set { ControllerRotationLeft = value; } - } - - /// - [Obsolete("Use ControllerRotationRight instead.")] - public Vector3 HandRotationRight - { - get => ControllerRotationRight; - set { ControllerRotationRight = value; } - } - - /// - [Obsolete("Use ResetControllerLeft instead.")] - public void ResetHandLeft() - { - ResetControllerLeft(); - } - - /// - [Obsolete("Use ResetControllerRight instead.")] - public void ResetHandRight() - { - ResetControllerRight(); - } - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs.meta deleted file mode 100644 index 8684e1fc1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/InputSimulationService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 132ecf69940dc494ea04bc3e2acb9741 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs deleted file mode 100644 index 54bd31467..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs +++ /dev/null @@ -1,374 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Services.InputSimulation.Editor")] -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Identifier of a key combination or mouse button for generic input binding. - /// - /// - /// This encodes either a KeyCode with optional modifiers or a mouse button index. - /// - [System.Serializable] - public struct KeyBinding - { - /// - /// The type of value encoded in the property. - /// - public enum KeyType : int - { - None = 0, - Mouse = 1, - Key = 2, - } - - /// - /// Enum for interpreting the mouse button integer index. - /// - public enum MouseButton : int - { - Left = 0, - Right = 1, - Middle = 2, - Button3 = 3, - Button4 = 4, - Button5 = 5, - Button6 = 6, - Button7 = 7, - } - - // Array of names to use for a combined enum selection. - internal static readonly string[] AllCodeNames; - // Maps (KeyType, code) combination onto the contiguous index used for enums. - // Value can be used as index in AllCodeNames array. - internal static readonly Dictionary, int> KeyBindingToEnumMap; - // Maps enum index to a KeyBinding, for assignment after selecting an enum value. - internal static readonly Dictionary> EnumToKeyBindingMap; - - // Static constructor to initialize static fields - static KeyBinding() - { - KeyCode[] KeyCodeValues = (KeyCode[])Enum.GetValues(typeof(KeyCode)); - MouseButton[] MouseButtonValues = (MouseButton[])Enum.GetValues(typeof(MouseButton)); - - // Build maps for converting between int enum value and KeyBinding values - { - KeyBindingToEnumMap = new Dictionary, int>(); - EnumToKeyBindingMap = new Dictionary>(); - List names = new List(); - - int index = 0; - Action AddEnumValue = (bindingType, code) => - { - var kb = new KeyBinding() { bindingType = bindingType, code = code }; - names.Add(kb.ToString()); - EnumToKeyBindingMap[index] = Tuple.Create(bindingType, code); - KeyBindingToEnumMap[Tuple.Create(bindingType, code)] = index; - - ++index; - }; - - AddEnumValue(KeyType.None, 0); - - foreach (MouseButton mb in MouseButtonValues) - { - AddEnumValue(KeyType.Mouse, (int)mb); - } - - foreach (KeyCode kc in KeyCodeValues) - { - AddEnumValue(KeyType.Key, (int)kc); - } - - AllCodeNames = names.ToArray(); - } - } - - [SerializeField] - private KeyType bindingType; - /// - /// Type of input this binding maps to. - /// - public KeyType BindingType => bindingType; - - // Internal binding code. - // This can be a KeyCode or mouse button index, depending on the bindingType; - [SerializeField] - private int code; - - /// - public override string ToString() - { - string s = ""; - - s += bindingType.ToString(); - - switch (bindingType) - { - case KeyType.Key: - s += ": " + ((KeyCode)code).ToString(); - break; - case KeyType.Mouse: - s += ": " + ((MouseButton)code).ToString(); - break; - } - return s; - } - - /// - /// Try to convert the binding to a KeyCode. - /// - /// True if the binding is a keyboard key - public bool TryGetKeyCode(out KeyCode keyCode) - { - keyCode = (KeyCode)code; - return bindingType == KeyType.Key; - } - - /// - /// Try to convert the binding to a mouse button. - /// - /// True if the binding is a mouse button - public bool TryGetMouseButton(out int mouseButton) - { - mouseButton = code; - return bindingType == KeyType.Mouse; - } - - /// - /// Try to convert the binding to a mouse button. - /// - /// True if the binding is a mouse button - public bool TryGetMouseButton(out MouseButton mouseButton) - { - if (TryGetMouseButton(out int iMouseButton)) - { - mouseButton = (MouseButton)iMouseButton; - return true; - } - mouseButton = MouseButton.Left; - return false; - } - - - /// - /// Create a default empty binding. - /// - public static KeyBinding Unbound() - { - KeyBinding kb = new KeyBinding(); - kb.bindingType = KeyType.None; - kb.code = 0; - return kb; - } - - /// - /// Create a binding for a keyboard key. - /// - public static KeyBinding FromKey(KeyCode keyCode) - { - KeyBinding kb = new KeyBinding(); - kb.bindingType = KeyType.Key; - kb.code = (int)keyCode; - return kb; - } - - /// - /// Create a binding for a mouse button. - /// - public static KeyBinding FromMouseButton(int mouseButton) - { - KeyBinding kb = new KeyBinding(); - kb.bindingType = KeyType.Mouse; - kb.code = mouseButton; - return kb; - } - - /// - /// Create a binding for a mouse button. - /// - public static KeyBinding FromMouseButton(MouseButton mouseButton) - { - return FromMouseButton((int)mouseButton); - } - } - - /// - /// Utility class to poll input for key bindings and to simulate key presses - /// Need to add mechanisms to poll and simulate input axis: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/7659 - /// - public static class KeyInputSystem - { - private static bool isSimulated; - public static bool SimulatingInput => isSimulated; - - private static HashSet SimulatedMouseDownSet; - private static HashSet SimulatedKeyDownSet; - - private static HashSet SimulatedMouseSet; - private static HashSet SimulatedKeySet; - - private static HashSet SimulatedMouseUpSet; - private static HashSet SimulatedKeyUpSet; - - /// - /// Starts the key input simulation. Inputs can now be simulated via and - /// - public static void StartKeyInputStimulation() - { - ResetKeyInputSimulation(); - isSimulated = true; - } - - /// - /// Stops the key input simulation - /// - public static void StopKeyInputSimulation() - { - isSimulated = false; - } - - /// - /// Resets the key input simulation. All keys will not trigger , , or - /// - public static void ResetKeyInputSimulation() - { - SimulatedMouseDownSet = new HashSet(); - SimulatedKeyDownSet = new HashSet(); - - SimulatedMouseSet = new HashSet(); - SimulatedKeySet = new HashSet(); - - SimulatedMouseUpSet = new HashSet(); - SimulatedKeyUpSet = new HashSet(); - } - - /// - /// Presses a key. and will be true for the keybinding. - /// will no longer be true for the keybinding. - /// - public static void PressKey(KeyBinding kb) - { - if (kb.TryGetMouseButton(out int mouseButton)) - { - SimulatedMouseDownSet.Add(mouseButton); - SimulatedMouseSet.Add(mouseButton); - SimulatedMouseUpSet.Remove(mouseButton); - } - if (kb.TryGetKeyCode(out KeyCode keyCode)) - { - SimulatedKeyDownSet.Add(keyCode); - SimulatedKeySet.Add(keyCode); - SimulatedKeyUpSet.Remove(keyCode); - } - } - /// - /// Releases a key. will be true for the keybinding. - /// and will no longer be true for the keybinding. - /// - public static void ReleaseKey(KeyBinding kb) - { - if (kb.TryGetMouseButton(out int mouseButton)) - { - SimulatedMouseDownSet.Remove(mouseButton); - SimulatedMouseSet.Remove(mouseButton); - SimulatedMouseUpSet.Add(mouseButton); - } - if (kb.TryGetKeyCode(out KeyCode keyCode)) - { - SimulatedKeyDownSet.Remove(keyCode); - SimulatedKeySet.Remove(keyCode); - SimulatedKeyUpSet.Add(keyCode); - } - } - - /// - /// Advances the Key press simulation by 1 frame. Keybindings will no longer trigger or - /// - public static void AdvanceSimulation() - { - // keys that were just pressed are no longer trigger GetKeyDown - SimulatedMouseDownSet = new HashSet(); - SimulatedKeyDownSet = new HashSet(); - - // keys that were just released are no longer trigger GetKeyUp - SimulatedMouseUpSet = new HashSet(); - SimulatedKeyUpSet = new HashSet(); - } - - /// - /// Test if the key is currently pressed. - /// - /// True if the bound key is currently pressed - public static bool GetKey(KeyBinding kb) - { - if (kb.TryGetMouseButton(out int mouseButton)) - { - if (isSimulated) - return SimulatedMouseSet.Contains(mouseButton); - else - return UnityEngine.Input.GetMouseButton(mouseButton); - } - if (kb.TryGetKeyCode(out KeyCode keyCode)) - { - if (isSimulated) - return SimulatedKeySet.Contains(keyCode); - else - return UnityEngine.Input.GetKey(keyCode); - } - return false; - } - - /// - /// Test if the key has been pressed since the last frame. - /// - /// True if the bound key was pressed since the last frame - public static bool GetKeyDown(KeyBinding kb) - { - if (kb.TryGetMouseButton(out int mouseButton)) - { - if (isSimulated) - return SimulatedMouseDownSet.Contains(mouseButton); - else - return UnityEngine.Input.GetMouseButtonDown(mouseButton); - } - if (kb.TryGetKeyCode(out KeyCode keyCode)) - { - if (isSimulated) - return SimulatedKeyDownSet.Contains(keyCode); - else - return UnityEngine.Input.GetKeyDown(keyCode); - } - return false; - } - - /// - /// Test if the key has been released since the last frame. - /// - /// True if the bound key was released since the last frame - public static bool GetKeyUp(KeyBinding kb) - { - if (kb.TryGetMouseButton(out int mouseButton)) - { - if (isSimulated) - return SimulatedMouseUpSet.Contains(mouseButton); - else - return UnityEngine.Input.GetMouseButtonUp(mouseButton); - } - if (kb.TryGetKeyCode(out KeyCode keyCode)) - { - if (isSimulated) - return SimulatedKeyUpSet.Contains(keyCode); - else - return UnityEngine.Input.GetKeyUp(keyCode); - } - return false; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs.meta deleted file mode 100644 index 645c21a68..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/KeyBinding.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 37e005b845bf1174fa8fe31b12eaf3d4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef deleted file mode 100644 index b90b0de36..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Services.InputSimulation", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Services.InputAnimation", - "Unity.TextMeshPro" - ], - "optionalUnityReferences": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef.meta deleted file mode 100644 index 76dd84bd9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MRTK.InputSimulation.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 748bc79f751cd664a945de4f8480e12c -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs deleted file mode 100644 index 747b5a167..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Class for manually controlling the camera in the Unity editor. Used by the Input Simulation Service. - /// - public class ManualCameraControl - { - private MixedRealityInputSimulationProfile profile; - - private bool isGamepadLookEnabled = true; - private bool isFlyKeypressEnabled = true; - private Vector3 lastTrackerToUnityTranslation = Vector3.zero; - private Quaternion lastTrackerToUnityRotation = Quaternion.identity; - - private static readonly KeyBinding cancelRotationKey = KeyBinding.FromKey(KeyCode.Escape); - private readonly MouseRotationProvider mouseRotation = new MouseRotationProvider(); - - public ManualCameraControl(MixedRealityInputSimulationProfile _profile) - { - profile = _profile; - } - - private static float InputCurve(float x) - { - // smoothing input curve, converts from [-1,1] to [-2,2] - return Mathf.Sign(x) * (1.0f - Mathf.Cos(0.5f * Mathf.PI * Mathf.Clamp(x, -1.0f, 1.0f))); - } - - /// - /// Moves the camera transform based on the profile's origin offset - /// - public void SetInitialTransform(Transform transform) - { - transform.Translate(profile.CameraOriginOffset); - } - - /// - /// Translate and rotate the camera transform based on keyboard and mouse input. - /// - public void UpdateTransform(Transform transform, MouseDelta mouseDelta) - { - // Undo the last tracker to Unity transforms applied - transform.Translate(-this.lastTrackerToUnityTranslation, Space.World); - transform.Rotate(-this.lastTrackerToUnityRotation.eulerAngles, Space.World); - - // Calculate and apply the camera control movement this frame - Vector3 rotate = GetCameraControlRotation(mouseDelta); - Vector3 translate = GetCameraControlTranslation(transform); - - transform.Rotate(rotate.x, 0.0f, 0.0f); - transform.Rotate(0.0f, rotate.y, 0.0f, Space.World); - transform.Rotate(0.0f, 0.0f, rotate.z); - transform.Translate(translate, Space.World); - - transform.Rotate(this.lastTrackerToUnityRotation.eulerAngles, Space.World); - transform.Translate(this.lastTrackerToUnityTranslation, Space.World); - } - - private static float GetKeyDir(string neg, string pos) - { - return UnityEngine.Input.GetKey(neg) ? -1.0f : UnityEngine.Input.GetKey(pos) ? 1.0f : 0.0f; - } - - private Vector3 GetCameraControlTranslation(Transform transform) - { - Vector3 deltaPosition = Vector3.zero; - - // Support fly up/down keypresses if the current project maps it. This isn't a standard - // Unity InputManager mapping, so it has to gracefully fail if unavailable. - if (this.isFlyKeypressEnabled) - { - try - { - deltaPosition += InputCurve(UnityEngine.Input.GetAxis("Fly")) * transform.up; - } - catch (System.Exception) - { - this.isFlyKeypressEnabled = false; - } - } - else - { - // use page up/down in this case - deltaPosition += GetKeyDir("page down", "page up") * Vector3.up; - } - - deltaPosition += InputCurve(UnityEngine.Input.GetAxis(profile.MoveHorizontal)) * transform.right; - - Vector3 forward; - Vector3 up; - if (profile.CurrentControlMode == InputSimulationControlMode.Walk) - { - up = Vector3.up; - forward = Vector3.ProjectOnPlane(transform.forward, up).normalized; - } - else - { - forward = transform.forward; - up = transform.up; - } - deltaPosition += InputCurve(UnityEngine.Input.GetAxis(profile.MoveVertical)) * forward; - deltaPosition += InputCurve(UnityEngine.Input.GetAxis(profile.MoveUpDown)) * up; - - float accel = KeyInputSystem.GetKey(profile.FastControlKey) ? profile.ControlFastSpeed : profile.ControlSlowSpeed; - return accel * deltaPosition * Time.deltaTime; - } - - private Vector3 GetCameraControlRotation(MouseDelta mouseDelta) - { - float inversionFactor = profile.IsControllerLookInverted ? -1.0f : 1.0f; - - Vector3 rot = Vector3.zero; - - if (this.isGamepadLookEnabled) - { - try - { - // Get the axes information from the right stick of X360 controller - rot.x += InputCurve(UnityEngine.Input.GetAxis(profile.LookVertical)) * inversionFactor; - rot.y += InputCurve(UnityEngine.Input.GetAxis(profile.LookHorizontal)); - } - catch (System.Exception) - { - this.isGamepadLookEnabled = false; - } - } - - mouseRotation.Update(profile.MouseLookButton, cancelRotationKey, profile.MouseLookToggle); - if (mouseRotation.IsRotating) - { - rot.x += -InputCurve(mouseDelta.screenDelta.y * profile.MouseRotationSensitivity); - rot.y += InputCurve(mouseDelta.screenDelta.x * profile.MouseRotationSensitivity); - rot.z += InputCurve(mouseDelta.screenDelta.z * profile.MouseRotationSensitivity); - } - - rot *= profile.MouseLookSpeed; - - return rot; - } - - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs.meta deleted file mode 100644 index effbe13fd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/ManualCameraControl.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9fa8cbe9ae0e4fa41ac858966a8ed215 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs deleted file mode 100644 index b2d5c04fd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs +++ /dev/null @@ -1,444 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; -using UnityEngine.Serialization; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Simulated Input Profile", fileName = "MixedRealityInputSimulationProfile", order = (int)CreateProfileMenuItemIndices.InputSimulation)] - [MixedRealityServiceProfile(typeof(IInputSimulationService))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/InputSimulation/InputSimulationService.html")] - public class MixedRealityInputSimulationProfile : BaseMixedRealityProfile - { - [SerializeField] - [Tooltip("Indicator buttons to show input simulation state in the viewport")] - private GameObject indicatorsPrefab = null; - /// - /// Indicator buttons to show input simulation state in the viewport - /// - public GameObject IndicatorsPrefab => indicatorsPrefab; - - [Header("Common Input")] - [SerializeField] - [Tooltip("Sensitivity when using the mouse for rotation")] - [FormerlySerializedAs("defaultMouseSensitivity")] - private float mouseRotationSensitivity = 0.1f; - /// - /// Sensitivity when using the mouse for rotation - /// - public float MouseRotationSensitivity => mouseRotationSensitivity; - [SerializeField] - [Tooltip("Mouse Movement X-axis")] - private string mouseX = "Mouse X"; - /// - /// Mouse Movement X-axis - /// - public string MouseX => mouseX; - [SerializeField] - [Tooltip("Mouse Movement Y-axis")] - private string mouseY = "Mouse Y"; - /// - /// Mouse Movement Y-axis - /// - public string MouseY => mouseY; - [SerializeField] - [Tooltip("Mouse Scroll Wheel")] - private string mouseScroll = "Mouse ScrollWheel"; - /// - /// Mouse Scroll Wheel - /// - public string MouseScroll => mouseScroll; - [SerializeField] - [Tooltip("Button pressed to interact with objects")] - [FormerlySerializedAs("Interaction Button")] - private KeyBinding interactionButton = KeyBinding.FromMouseButton(KeyBinding.MouseButton.Left); - /// - /// Button pressed to interact with objects - /// - public KeyBinding InteractionButton => interactionButton; - [SerializeField] - [Tooltip("Maximum time interval for double press")] - private float doublePressTime = 0.4f; - /// - /// Maximum time interval for double press - /// - public float DoublePressTime => doublePressTime; - [SerializeField] - [Tooltip("Enable hands free input")] - private bool isHandsFreeInputEnabled = true; - /// - /// Enable hands free input - /// - public bool IsHandsFreeInputEnabled => isHandsFreeInputEnabled; - - [Header("Camera Control")] - [SerializeField] - [Tooltip("Enable manual camera control")] - private bool isCameraControlEnabled = true; - /// - /// Enable manual camera control - /// - public bool IsCameraControlEnabled => isCameraControlEnabled; - [SerializeField] - [Tooltip("Additional rotation factor after input smoothing has been applied")] - [FormerlySerializedAs("extraMouseSensitivityScale")] - private float mouseLookSpeed = 3.0f; - /// - /// Additional rotation factor after input smoothing has been applied - /// - public float MouseLookSpeed => mouseLookSpeed; - [SerializeField] - [Tooltip("Controls how mouse look control is activated")] - private KeyBinding mouseLookButton = KeyBinding.FromMouseButton(KeyBinding.MouseButton.Right); - /// - /// Controls how mouse look control is activated - /// - public KeyBinding MouseLookButton => mouseLookButton; - [SerializeField] - [Tooltip("Toggle mouse look on with the mouse look button, press escape to release")] - private bool mouseLookToggle = false; - /// - /// Toggle mouse look on with the mouse look button, press escape to release - /// - public bool MouseLookToggle => mouseLookToggle; - [SerializeField] - [Tooltip("Invert the vertical rotation")] - private bool isControllerLookInverted = true; - /// - /// Invert the vertical rotation - /// - public bool IsControllerLookInverted => isControllerLookInverted; - - [SerializeField] - [Tooltip("Amount to offset the starting position of the camera from the origin")] - private Vector3 cameraOriginOffset = Vector3.zero; - /// - /// Amount to offset the starting position of the camera from the origin - /// - public Vector3 CameraOriginOffset => cameraOriginOffset; - - [SerializeField] - [Tooltip("Camera movement mode")] - private InputSimulationControlMode currentControlMode = InputSimulationControlMode.Fly; - /// - /// Camera movement mode - /// - public InputSimulationControlMode CurrentControlMode => currentControlMode; - [SerializeField] - [Tooltip("Key to speed up camera movement")] - private KeyBinding fastControlKey = KeyBinding.FromKey(KeyCode.RightControl); - /// - /// Key to speed up camera movement - /// - public KeyBinding FastControlKey => fastControlKey; - [SerializeField] - [Tooltip("Slow camera translation speed")] - private float controlSlowSpeed = 0.1f; - /// - /// Slow camera translation speed - /// - public float ControlSlowSpeed => controlSlowSpeed; - [SerializeField] - [Tooltip("Fast camera translation speed")] - private float controlFastSpeed = 1.0f; - /// - /// Fast camera translation speed - /// - public float ControlFastSpeed => controlFastSpeed; - - // Input axes to coordinate with the Input Manager (Project Settings -> Input) - - // Horizontal movement string for keyboard and left stick of game controller - [SerializeField] - [Tooltip("Horizontal movement Axis ")] - private string moveHorizontal = "Horizontal"; - /// - /// Horizontal movement Axis - /// - public string MoveHorizontal => moveHorizontal; - // Vertical movement string for keyboard and left stick of game controller - [SerializeField] - [Tooltip("Vertical movement Axis ")] - private string moveVertical = "Vertical"; - /// - /// Vertical movement Axis - /// - public string MoveVertical => moveVertical; - [SerializeField] - [Tooltip("Up/Down movement Axis ")] - private string moveUpDown = "UpDown"; - /// - /// Up/Down movement Axis - /// - public string MoveUpDown => moveUpDown; - // Look horizontal string for right stick of game controller - // The right stick has no default settings in the Input Manager and will need to be setup for a game controller to look - [SerializeField] - [Tooltip("Look Horizontal Axis - Right Stick On Controller")] - private string lookHorizontal = ControllerMappingLibrary.AXIS_4; - /// - /// Look Horizontal Axis - Right Stick On Controller - /// - public string LookHorizontal => lookHorizontal; - // Look vertical string for right stick of game controller - [SerializeField] - [Tooltip("Look Vertical Axis - Right Stick On Controller ")] - private string lookVertical = ControllerMappingLibrary.AXIS_5; - /// - /// Look Vertical Axis - Right Stick On Controller - /// - public string LookVertical => lookVertical; - - /// - /// Enable eye gaze simulation - /// - [Obsolete("Check the EyeGazeSimulationMode instead")] - public bool SimulateEyePosition => defaultEyeGazeSimulationMode != EyeGazeSimulationMode.Disabled; - - [Header("Eye Gaze Simulation")] - [SerializeField] - [Tooltip("Enable eye gaze simulation")] - [FormerlySerializedAs("simulateEyePosition")] - private EyeGazeSimulationMode defaultEyeGazeSimulationMode = EyeGazeSimulationMode.Disabled; - - /// - /// Enable eye gaze simulation - /// - public EyeGazeSimulationMode DefaultEyeGazeSimulationMode => defaultEyeGazeSimulationMode; - - [Header("Controller Simulation")] - [SerializeField] - [Tooltip("Enable controller simulation")] - [FormerlySerializedAs("handSimulationMode")] - [FormerlySerializedAs("defaultHandSimulationMode")] - private ControllerSimulationMode defaultControllerSimulationMode = ControllerSimulationMode.ArticulatedHand; - /// - /// Enable controller simulation - /// - public ControllerSimulationMode DefaultControllerSimulationMode => defaultControllerSimulationMode; - - [Header("Controller Control Settings")] - [SerializeField] - [Tooltip("Key to toggle persistent mode for the left controller")] - [FormerlySerializedAs("toggleLeftHandKey")] - private KeyBinding toggleLeftControllerKey = KeyBinding.FromKey(KeyCode.T); - /// - /// Key to toggle persistent mode for the left controller - /// - public KeyBinding ToggleLeftControllerKey => toggleLeftControllerKey; - [SerializeField] - [Tooltip("Key to toggle persistent mode for the right controller")] - [FormerlySerializedAs("toggleRightHandKey")] - private KeyBinding toggleRightControllerKey = KeyBinding.FromKey(KeyCode.Y); - /// - /// Key to toggle persistent mode for the right controller - /// - public KeyBinding ToggleRightControllerKey => toggleRightControllerKey; - [SerializeField] - [Tooltip("Time after which uncontrolled controllers are hidden")] - [FormerlySerializedAs("handHideTimeout")] - private float controllerHideTimeout = 0.2f; - /// - /// Time after which uncontrolled controllers are hidden - /// - public float ControllerHideTimeout => controllerHideTimeout; - [SerializeField] - [Tooltip("Key to manipulate the left controller")] - [FormerlySerializedAs("leftHandManipulationKey")] - private KeyBinding leftControllerManipulationKey = KeyBinding.FromKey(KeyCode.LeftShift); - /// - /// Key to manipulate the left controller - /// - public KeyBinding LeftControllerManipulationKey => leftControllerManipulationKey; - [SerializeField] - [Tooltip("Key to manipulate the right controller")] - [FormerlySerializedAs("rightHandManipulationKey")] - private KeyBinding rightControllerManipulationKey = KeyBinding.FromKey(KeyCode.Space); - /// - /// Key to manipulate the right controller - /// - public KeyBinding RightControllerManipulationKey => rightControllerManipulationKey; - [SerializeField] - [Tooltip("Additional rotation factor after input smoothing has been applied")] - [FormerlySerializedAs("mouseHandRotationSpeed")] - private float mouseControllerRotationSpeed = 6.0f; - /// - /// Additional rotation factor after input smoothing has been applied - /// - public float MouseControllerRotationSpeed => mouseControllerRotationSpeed; - [SerializeField] - [Tooltip("Controls how controller rotation is activated")] - [FormerlySerializedAs("handRotateButton")] - private KeyBinding controllerRotateButton = KeyBinding.FromKey(KeyCode.LeftControl); - /// - /// Controls how controller rotation is activated - /// - public KeyBinding ControllerRotateButton => controllerRotateButton; - - [Header("Hand Gesture Settings")] - [SerializeField] - [Tooltip("Hand joint pose on first show or reset")] - private ArticulatedHandPose.GestureId defaultHandGesture = ArticulatedHandPose.GestureId.Open; - /// - /// Hand joint pose on first show or reset - /// - public ArticulatedHandPose.GestureId DefaultHandGesture => defaultHandGesture; - [SerializeField] - [Tooltip("Hand joint pose when pressing the left mouse button")] - private ArticulatedHandPose.GestureId leftMouseHandGesture = ArticulatedHandPose.GestureId.Pinch; - /// - /// Hand joint pose when pressing the left mouse button - /// - public ArticulatedHandPose.GestureId LeftMouseHandGesture => leftMouseHandGesture; - [SerializeField] - [Tooltip("Hand joint pose when pressing the middle mouse button")] - private ArticulatedHandPose.GestureId middleMouseHandGesture = ArticulatedHandPose.GestureId.None; - /// - /// Hand joint pose when pressing the middle mouse button - /// - public ArticulatedHandPose.GestureId MiddleMouseHandGesture => middleMouseHandGesture; - [SerializeField] - [Tooltip("Hand joint pose when pressing the right mouse button")] - private ArticulatedHandPose.GestureId rightMouseHandGesture = ArticulatedHandPose.GestureId.None; - /// - /// Hand joint pose when pressing the right mouse button - /// - public ArticulatedHandPose.GestureId RightMouseHandGesture => rightMouseHandGesture; - [SerializeField] - [Tooltip("Gesture interpolation per second")] - private float handGestureAnimationSpeed = 8.0f; - /// - /// Gesture interpolation per second - /// - public float HandGestureAnimationSpeed => handGestureAnimationSpeed; - - [SerializeField] - [Tooltip("Time until hold gesture starts")] - private float holdStartDuration = 0.5f; - /// - /// Time until hold gesture starts - /// - public float HoldStartDuration => holdStartDuration; - [SerializeField] - [Tooltip("The total amount of input source movement that needs to happen to start navigation")] - [UnityEngine.Serialization.FormerlySerializedAs("manipulationStartThreshold")] - private float navigationStartThreshold = 0.03f; - /// - /// The total amount of input source movement that needs to happen to start navigation - /// - public float NavigationStartThreshold => navigationStartThreshold; - - [Header("Controller Placement Settings")] - [SerializeField] - [Tooltip("Default distance of the controller from the camera")] - [FormerlySerializedAs("defaultHandDistance")] - private float defaultControllerDistance = 0.5f; - /// - /// Default distance of the controller from the camera - /// - public float DefaultControllerDistance => defaultControllerDistance; - [SerializeField] - [Tooltip("Depth change when scrolling the mouse wheel")] - [FormerlySerializedAs("handDepthMultiplier")] - private float controllerDepthMultiplier = 0.03f; - /// - /// Depth change when scrolling the mouse wheel - /// - public float ControllerDepthMultiplier => controllerDepthMultiplier; - [SerializeField] - [Tooltip("Apply random offset to the controller position")] - [FormerlySerializedAs("handJitterAmount")] - private float controllerJitterAmount = 0.0f; - /// - /// Apply random offset to the controller position - /// - public float ControllerJitterAmount => controllerJitterAmount; - - [Header("Motion Controller Settings")] - [SerializeField] - [Tooltip("Key to simulate a trigger press (select) on the motion controller")] - private KeyBinding motionControllerTriggerKey = KeyBinding.FromMouseButton(KeyBinding.MouseButton.Left); - - /// - /// Key to simulate a trigger press (select) on the motion controller - /// - public KeyBinding MotionControllerTriggerKey => motionControllerTriggerKey; - [SerializeField] - [Tooltip("Key to simulate a grab on the motion controller")] - private KeyBinding motionControllerGrabKey = KeyBinding.FromKey(KeyCode.G); - - /// - /// Key to simulate a grab on the motion controller - /// - public KeyBinding MotionControllerGrabKey => motionControllerGrabKey; - [SerializeField] - [Tooltip("Key to simulate a menu press on the motion controller")] - private KeyBinding motionControllerMenuKey = KeyBinding.FromKey(KeyCode.M); - - /// - /// Key to simulate a menu press on the motion controller - /// - public KeyBinding MotionControllerMenuKey => motionControllerMenuKey; - - #region Obsolete Properties - /// - /// Enable controller simulation - /// - [Obsolete("Use DefaultControllerSimulationMode instead.")] - public ControllerSimulationMode DefaultHandSimulationMode => DefaultControllerSimulationMode; - /// - /// Key to toggle persistent mode for the left controller - /// - [Obsolete("Use ToggleLeftControllerKey instead.")] - public KeyBinding ToggleLeftHandKey => ToggleLeftControllerKey; - /// - /// Key to toggle persistent mode for the right controller - /// - [Obsolete("Use ToggleRightControllerKey instead.")] - public KeyBinding ToggleRightHandKey => ToggleRightControllerKey; - /// - /// Time after which uncontrolled hands are hidden - /// - [Obsolete("Use ControllerHideTimeout instead.")] - public float HandHideTimeout => ControllerHideTimeout; - /// - /// Key to manipulate the left hand - /// - [Obsolete("Use LeftControllerManipulationKey instead.")] - public KeyBinding LeftHandManipulationKey => LeftControllerManipulationKey; - /// - /// Key to manipulate the right hand - /// - [Obsolete("Use RightControllerManipulationKey instead.")] - public KeyBinding RightHandManipulationKey => RightControllerManipulationKey; - /// - /// Additional rotation factor after input smoothing has been applied - /// - [Obsolete("Use MouseControllerRotationSpeed instead.")] - public float MouseHandRotationSpeed => MouseControllerRotationSpeed; - /// - /// Controls how hand rotation is activated - /// - [Obsolete("Use ControllerRotateButton instead.")] - public KeyBinding HandRotateButton => ControllerRotateButton; - /// - /// Default distance of the hand from the camera - /// - [Obsolete("Use DefaultControllerDistance instead.")] - public float DefaultHandDistance => DefaultControllerDistance; - /// - /// Depth change when scrolling the mouse wheel - /// - [Obsolete("Use ControllerDepthMultiplier instead.")] - public float HandDepthMultiplier => ControllerDepthMultiplier; - /// - /// Apply random offset to the hand position - /// - [Obsolete("Use ControllerJitterAmount instead.")] - public float HandJitterAmount => ControllerJitterAmount; - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs.meta deleted file mode 100644 index a2cce10af..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MixedRealityInputSimulationProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 78a4b02a0d9e7044fa19c6d432d0cafa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs deleted file mode 100644 index 548173ec0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Utility class to manage toggling of mouse rotation and associated features, - /// such as cursor visibility/locking - /// - public class MouseRotationProvider - { - private bool isRotating = false; - /// - /// True when rotation is currently active. - /// - public bool IsRotating => isRotating; - - // Refcount to ensure the cursor is locked iff at least one rotation is in progress. - private static int numRotating = 0; - private static bool isMouseJumping = false; - private static bool wasCursorVisible = true; - - /// - /// Start or stop rotation based on the key binding. - /// - /// - /// Also manages shared features such as cursor visibility that can be activated by different rotation providers. - /// - public void Update(KeyBinding rotationKey, KeyBinding cancelRotationKey, bool toggle) - { - bool wasRotating = isRotating; - - // Only allow the mouse to control rotation when Unity has focus. - // This enables the player to temporarily alt-tab away without having the player - // look around randomly back in the Unity Game window. - if (!Application.isFocused) - { - isRotating = false; - } - else - { - if (toggle) - { - if (isRotating) - { - // Pressing escape will stop capture - isRotating = !KeyInputSystem.GetKeyDown(cancelRotationKey); - } - else - { - // Capture focus when starting rotation - isRotating = KeyInputSystem.GetKeyDown(rotationKey); - } - } - else - { - // Rotate only while key is pressed - isRotating = KeyInputSystem.GetKey(rotationKey); - } - } - - if (!wasRotating && isRotating) - { - OnStartRotating(rotationKey); - } - else if (wasRotating && !isRotating) - { - OnEndRotating(rotationKey); - } - } - - private static void OnStartRotating(KeyBinding rotationKey) - { - if (numRotating == 0) - { - if (rotationKey.BindingType == KeyBinding.KeyType.Mouse) - { - // Enable jumping when a mouse button is used - SetWantsMouseJumping(true); - } - else if (rotationKey.BindingType == KeyBinding.KeyType.Key) - { - // Use cursor locking when using a key - UnityEngine.Cursor.lockState = CursorLockMode.Locked; - // save current cursor visibility before hiding it - wasCursorVisible = UnityEngine.Cursor.visible; - UnityEngine.Cursor.visible = false; - } - } - - ++numRotating; - } - - private static void OnEndRotating(KeyBinding rotationKey) - { - --numRotating; - - if (numRotating == 0) - { - if (rotationKey.BindingType == KeyBinding.KeyType.Mouse) - { - // Enable jumping when a mouse button is used - SetWantsMouseJumping(false); - } - else if (rotationKey.BindingType == KeyBinding.KeyType.Key) - { - // Use cursor locking when using a key - UnityEngine.Cursor.lockState = CursorLockMode.None; - UnityEngine.Cursor.visible = wasCursorVisible; - } - } - } - - /// - /// Mouse jumping is where the mouse cursor appears outside the Unity game window, but - /// disappears when it enters the Unity game window. - /// - /// Show the cursor - private static void SetWantsMouseJumping(bool wantsJumping) - { - if (wantsJumping != isMouseJumping) - { - isMouseJumping = wantsJumping; - - if (wantsJumping) - { - // unlock the cursor if it was locked - UnityEngine.Cursor.lockState = CursorLockMode.None; - - // save original state of cursor before hiding - wasCursorVisible = UnityEngine.Cursor.visible; - // hide the cursor - UnityEngine.Cursor.visible = false; - } - else - { - // recenter the cursor (setting lockCursor has side-effects under the hood) - UnityEngine.Cursor.lockState = CursorLockMode.Locked; - UnityEngine.Cursor.lockState = CursorLockMode.None; - - // restore the cursor - UnityEngine.Cursor.visible = wasCursorVisible; - } - -#if UNITY_EDITOR - UnityEditor.EditorGUIUtility.SetWantsMouseJumping(wantsJumping ? 1 : 0); -#endif - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs.meta deleted file mode 100644 index 1ddf15ce9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/MouseRotationProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 53e31e4e5eb6aed43b4e9a62ece9365a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs deleted file mode 100644 index 90cc3078f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [MixedRealityController( - SupportedControllerType.ArticulatedHand, - new[] { Handedness.Left, Handedness.Right })] - public class SimulatedArticulatedHand : SimulatedHand - { - public override ControllerSimulationMode SimulationMode => ControllerSimulationMode.ArticulatedHand; - - private Vector3 currentPointerPosition = Vector3.zero; - private Quaternion currentPointerRotation = Quaternion.identity; - private MixedRealityPose lastPointerPose = MixedRealityPose.ZeroIdentity; - private MixedRealityPose currentPointerPose = MixedRealityPose.ZeroIdentity; - private MixedRealityPose currentIndexPose = MixedRealityPose.ZeroIdentity; - private MixedRealityPose currentGripPose = MixedRealityPose.ZeroIdentity; - private MixedRealityPose lastGripPose = MixedRealityPose.ZeroIdentity; - - /// - /// Constructor. - /// - public SimulatedArticulatedHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - handDefinition = new ArticulatedHandDefinition(inputSource, controllerHandedness); - } - - /// - /// The definition and data store for this articulated hand class. - /// - protected ArticulatedHandDefinition handDefinition; - - /// - /// The simulated articulated hand's default interactions. - /// - /// A single interaction mapping works for both left and right controllers. - public override MixedRealityInteractionMapping[] DefaultInteractions => handDefinition?.DefaultInteractions; - - /// - protected override void UpdateInteractions(SimulatedHandData handData) - { - lastPointerPose = currentPointerPose; - lastGripPose = currentGripPose; - - // For convenience of simulating in Unity Editor, make the ray use the index - // finger position instead of knuckle, since the index finger doesn't move when we press. - Vector3 pointerPosition = jointPoses[TrackedHandJoint.IndexTip].Position; - IsPositionAvailable = IsRotationAvailable = pointerPosition != Vector3.zero; - - if (IsPositionAvailable) - { - HandRay.Update(pointerPosition, GetPalmNormal(), CameraCache.Main.transform, ControllerHandedness); - - Ray ray = HandRay.Ray; - - currentPointerPose.Position = ray.origin; - currentPointerPose.Rotation = Quaternion.LookRotation(ray.direction); - - currentGripPose = jointPoses[TrackedHandJoint.Palm]; - currentIndexPose = jointPoses[TrackedHandJoint.IndexTip]; - } - - if (lastGripPose != currentGripPose) - { - if (IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePoseChanged(InputSource, this, currentGripPose); - } - else if (IsPositionAvailable && !IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePositionChanged(InputSource, this, currentPointerPosition); - } - else if (!IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourceRotationChanged(InputSource, this, currentPointerRotation); - } - } - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.SpatialPointer: - Interactions[i].PoseData = currentPointerPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, currentPointerPose); - } - break; - case DeviceInputType.SpatialGrip: - Interactions[i].PoseData = currentGripPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, currentGripPose); - } - break; - case DeviceInputType.Select: - case DeviceInputType.TriggerPress: - Interactions[i].BoolData = handData.IsPinching; - - if (Interactions[i].Changed) - { - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - } - break; - case DeviceInputType.IndexFinger: - Interactions[i].PoseData = currentIndexPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, currentIndexPose); - } - break; - } - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs.meta deleted file mode 100644 index 4b67ef19b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: afdf7ec2d1ca5cd47bb244cad9f4e91c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs deleted file mode 100644 index c415b6ae7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs +++ /dev/null @@ -1,4053 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using static Microsoft.MixedReality.Toolkit.Utilities.ArticulatedHandPose; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// This stores the joint pose JSON data that defines various articulated hand gestures for input simulation. - /// The JSON data that defines each joint position and orientation is stored in strings to avoid file loading/targeting during runtime - /// - public static class SimulatedArticulatedHandPoses - { - private static readonly Dictionary GesturePoseJSONMapping = new Dictionary() - { - { GestureId.Flat, ArticulatedHandPose_Flat}, - { GestureId.Grab, ArticulatedHandPose_Grab}, - { GestureId.Open, ArticulatedHandPose_Open}, - { GestureId.OpenSteadyGrabPoint, ArticulatedHandPose_OpenSteadyGrabPoint}, - { GestureId.Pinch, ArticulatedHandPose_Pinch}, - { GestureId.PinchSteadyWrist, ArticulatedHandPose_PinchSteadyWrist}, - { GestureId.Poke, ArticulatedHandPose_Poke }, - { GestureId.ThumbsUp, ArticulatedHandPose_ThumbsUp}, - { GestureId.Victory, ArticulatedHandPose_Victory}, - }; - - private static Dictionary gesturePoses; - - /// - /// Get pose data for a supported gesture. - /// - public static ArticulatedHandPose GetGesturePose(GestureId gesture) - { - if (gesturePoses == null) - { - LoadDefaultGesturePoses(); - } - - if (gesturePoses.TryGetValue(gesture, out ArticulatedHandPose pose)) - { - return pose; - } - - return null; - } - - /// - /// Set hand pose data for supported gesture. Useful to overwrite loaded defaults - /// - public static void SetGesturePose(GestureId key, ArticulatedHandPose value) - { - if (value != null) - { - gesturePoses[key] = value; - } - } - - /// - /// Load default hand poses for supported gestures. Clears and overwrites original gesture poses - /// - public static void LoadDefaultGesturePoses() - { - gesturePoses = new Dictionary(); - - foreach (var mapping in GesturePoseJSONMapping) - { - var pose = new ArticulatedHandPose(); - pose.FromJson(mapping.Value); - gesturePoses.Add(mapping.Key, pose); - } - } - - #region ArticulatedHandPose_Flat JSON - - private const string ArticulatedHandPose_Flat = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.0470723882317543, - ""y"": -0.18403607606887818, - ""z"": -0.5408412218093872 - }, - ""rotation"": { - ""x"": 0.0, - ""y"": 0.0, - ""z"": 0.0, - ""w"": 0.0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.06179157271981239, - ""y"": -0.15333214402198792, - ""z"": -0.0469515398144722 - }, - ""rotation"": { - ""x"": -0.5501163005828857, - ""y"": -0.11712269484996796, - ""z"": 0.001836930401623249, - ""w"": 0.8265576958656311 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.05801215022802353, - ""y"": -0.1058567613363266, - ""z"": -0.02556976117193699 - }, - ""rotation"": { - ""x"": -0.5501163005828857, - ""y"": -0.11712269484996796, - ""z"": 0.001836930401623249, - ""w"": 0.8265576958656311 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.03695414960384369, - ""y"": -0.1407443881034851, - ""z"": -0.03328647091984749 - }, - ""rotation"": { - ""x"": -0.5855690240859985, - ""y"": -0.10429229587316513, - ""z"": 0.5890942811965942, - ""w"": 0.547493577003479 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.00045104348100721836, - ""y"": -0.11720659583806992, - ""z"": -0.01997363194823265 - }, - ""rotation"": { - ""x"": -0.5386121273040772, - ""y"": 0.04485885053873062, - ""z"": 0.5422580242156982, - ""w"": 0.6437124609947205 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.016296127811074258, - ""y"": -0.09359179437160492, - ""z"": -0.006718119606375694 - }, - ""rotation"": { - ""x"": -0.6040476560592651, - ""y"": -0.08891747146844864, - ""z"": 0.5752687454223633, - ""w"": 0.5448194742202759 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": -0.03216664865612984, - ""y"": -0.08244754374027252, - ""z"": -0.001603197306394577 - }, - ""rotation"": { - ""x"": -0.6040476560592651, - ""y"": -0.08891747146844864, - ""z"": 0.5752687454223633, - ""w"": 0.5448194742202759 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.04794362187385559, - ""y"": -0.13700048625469209, - ""z"": -0.03438100963830948 - }, - ""rotation"": { - ""x"": -0.534980297088623, - ""y"": -0.28449201583862307, - ""z"": -0.061086010187864307, - ""w"": 0.7931764721870422 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.023209279403090478, - ""y"": -0.08038382232189179, - ""z"": -0.017351558431982995 - }, - ""rotation"": { - ""x"": -0.599485456943512, - ""y"": -0.1474478840827942, - ""z"": 0.04840812832117081, - ""w"": 0.7852058410644531 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.009743190370500088, - ""y"": -0.03727291524410248, - ""z"": -0.006295463070273399 - }, - ""rotation"": { - ""x"": -0.6344203948974609, - ""y"": -0.08629350364208222, - ""z"": 0.11939872056245804, - ""w"": 0.7588865756988525 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0026917937211692335, - ""y"": -0.013759316876530648, - ""z"": -0.0017971978522837163 - }, - ""rotation"": { - ""x"": -0.6451734304428101, - ""y"": -0.12336783856153488, - ""z"": 0.00809548981487751, - ""w"": 0.7542511224746704 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": -0.0002534952946007252, - ""y"": 0.0007631087210029364, - ""z"": 0.0002575620310381055 - }, - ""rotation"": { - ""x"": -0.6451734304428101, - ""y"": -0.12336783856153488, - ""z"": 0.00809548981487751, - ""w"": 0.7542511224746704 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.056570135056972507, - ""y"": -0.13634957373142243, - ""z"": -0.03486650064587593 - }, - ""rotation"": { - ""x"": -0.6017327308654785, - ""y"": -0.1049300879240036, - ""z"": 0.008752312511205674, - ""w"": 0.7917264699935913 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.045069482177495959, - ""y"": -0.07444917410612107, - ""z"": -0.018345370888710023 - }, - ""rotation"": { - ""x"": -0.5885983109474182, - ""y"": -0.10035836696624756, - ""z"": 0.025189023464918138, - ""w"": 0.8017893433570862 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.035030756145715716, - ""y"": -0.025001518428325654, - ""z"": -0.0032290546223521234 - }, - ""rotation"": { - ""x"": -0.6631931662559509, - ""y"": -0.09005288034677506, - ""z"": -0.0027521485462784769, - ""w"": 0.7431085109710693 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.031546302139759067, - ""y"": 0.0013798222644254566, - ""z"": -0.0004363078624010086 - }, - ""rotation"": { - ""x"": -0.6468731164932251, - ""y"": -0.11953263729810715, - ""z"": -0.06937266886234284, - ""w"": 0.7504633665084839 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.030048875138163568, - ""y"": 0.017790958285331727, - ""z"": 0.0018172836862504483 - }, - ""rotation"": { - ""x"": -0.6468731164932251, - ""y"": -0.11953263729810715, - ""z"": -0.06937266886234284, - ""w"": 0.7504633665084839 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.06806596368551254, - ""y"": -0.13525664806365968, - ""z"": -0.034837257117033008 - }, - ""rotation"": { - ""x"": -0.5803540945053101, - ""y"": 0.014031633734703064, - ""z"": 0.05480925738811493, - ""w"": 0.8123965859413147 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.06544187664985657, - ""y"": -0.07453925907611847, - ""z"": -0.013881120830774308 - }, - ""rotation"": { - ""x"": -0.6466344594955444, - ""y"": -0.03600946068763733, - ""z"": 0.02467469871044159, - ""w"": 0.7615609765052795 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.06159381568431854, - ""y"": -0.03093438223004341, - ""z"": -0.006733019836246967 - }, - ""rotation"": { - ""x"": -0.6550348401069641, - ""y"": -0.06099399924278259, - ""z"": -0.04121965169906616, - ""w"": 0.7520787715911865 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.06070023775100708, - ""y"": -0.007464663125574589, - ""z"": -0.003544492181390524 - }, - ""rotation"": { - ""x"": -0.6712727546691895, - ""y"": -0.05777180939912796, - ""z"": -0.05727298930287361, - ""w"": 0.7370488047599793 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.060552775859832767, - ""y"": 0.010114867240190506, - ""z"": -0.0019072332652285696 - }, - ""rotation"": { - ""x"": -0.6712727546691895, - ""y"": -0.05777180939912796, - ""z"": -0.05727298930287361, - ""w"": 0.7370488047599793 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.07710164040327072, - ""y"": -0.13650110363960267, - ""z"": -0.032643478363752368 - }, - ""rotation"": { - ""x"": -0.5344982147216797, - ""y"": 0.1545339822769165, - ""z"": 0.10820292681455612, - ""w"": 0.8238464593887329 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.08530370891094208, - ""y"": -0.08254323154687882, - ""z"": -0.010162543505430222 - }, - ""rotation"": { - ""x"": -0.6702333688735962, - ""y"": 0.05704934149980545, - ""z"": 0.006686835549771786, - ""w"": 0.7399358749389648 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.08779342472553253, - ""y"": -0.049793362617492679, - ""z"": -0.0070251524448394779 - }, - ""rotation"": { - ""x"": -0.6393072605133057, - ""y"": 0.030266048386693, - ""z"": -0.15569603443145753, - ""w"": 0.7524937987327576 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.09219621121883393, - ""y"": -0.03264733776450157, - ""z"": -0.0037694787606596948 - }, - ""rotation"": { - ""x"": -0.6555882692337036, - ""y"": -0.0018634665757417679, - ""z"": -0.09289215505123139, - ""w"": 0.7497090101242065 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.09392204880714417, - ""y"": -0.018381092697381974, - ""z"": -0.0017222119495272637 - }, - ""rotation"": { - ""x"": -0.6555882692337036, - ""y"": -0.0018634665757417679, - ""z"": -0.09289215505123139, - ""w"": 0.7497090101242065 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_Grab JSON - - private const string ArticulatedHandPose_Grab = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.08690944314002991, - ""y"": 0.013536587357521057, - ""z"": -0.3781388998031616 - }, - ""rotation"": { - ""x"": 0.0, - ""y"": 0.0, - ""z"": 0.0, - ""w"": 0.0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.059647563844919208, - ""y"": -0.018170714378356935, - ""z"": -0.07320141047239304 - }, - ""rotation"": { - ""x"": -0.44069746136665347, - ""y"": -0.3151600956916809, - ""z"": -0.029152734205126764, - ""w"": 0.8398429155349731 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.040150947868824008, - ""y"": 0.022433746606111528, - ""z"": -0.04928050562739372 - }, - ""rotation"": { - ""x"": -0.44069746136665347, - ""y"": -0.3151600956916809, - ""z"": -0.029152734205126764, - ""w"": 0.8398429155349731 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.033823080360889438, - ""y"": -0.014000600203871727, - ""z"": -0.06483504176139832 - }, - ""rotation"": { - ""x"": 0.46251192688941958, - ""y"": 0.15892137587070466, - ""z"": -0.748396635055542, - ""w"": -0.44902268052101138 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.0048112208023667339, - ""y"": -0.005827075336128473, - ""z"": -0.04063580185174942 - }, - ""rotation"": { - ""x"": 0.32614850997924807, - ""y"": -0.017511412501335145, - ""z"": -0.7735356688499451, - ""w"": -0.5439797639846802 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.02188277430832386, - ""y"": 0.0075818500481545929, - ""z"": -0.01290540024638176 - }, - ""rotation"": { - ""x"": 0.22856087982654572, - ""y"": -0.09300848096609116, - ""z"": -0.7769821286201477, - ""w"": -0.5795565247535706 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": -0.026505667716264726, - ""y"": 0.015197398141026497, - ""z"": 0.0034610535949468614 - }, - ""rotation"": { - ""x"": 0.22856087982654572, - ""y"": -0.09300848096609116, - ""z"": -0.7769821286201477, - ""w"": -0.5795565247535706 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.04238410294055939, - ""y"": -0.007463002577424049, - ""z"": -0.06319385766983032 - }, - ""rotation"": { - ""x"": -0.420803427696228, - ""y"": -0.44982725381851199, - ""z"": -0.04907778277993202, - ""w"": 0.7862387895584106 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": -0.0008817678317427635, - ""y"": 0.03838954120874405, - ""z"": -0.04752813279628754 - }, - ""rotation"": { - ""x"": 0.004830620251595974, - ""y"": 0.18448397517204286, - ""z"": -0.1560613363981247, - ""w"": -0.9703620672225952 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": -0.014839660376310349, - ""y"": 0.03651837632060051, - ""z"": -0.01135229505598545 - }, - ""rotation"": { - ""x"": -0.5098936557769775, - ""y"": 0.03039226494729519, - ""z"": -0.30394697189331057, - ""w"": -0.8042332530021668 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.008270945399999619, - ""y"": 0.015406630001962185, - ""z"": 0.0006891884841024876 - }, - ""rotation"": { - ""x"": -0.7222777009010315, - ""y"": -0.08202659338712692, - ""z"": -0.2391108274459839, - ""w"": -0.6440979242324829 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": -0.0009594520088285208, - ""y"": 0.000933439121581614, - ""z"": -0.00021468542399816215 - }, - ""rotation"": { - ""x"": -0.7222777009010315, - ""y"": -0.08202659338712692, - ""z"": -0.2391108274459839, - ""w"": -0.6440979242324829 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.04958740621805191, - ""y"": -0.004707379266619682, - ""z"": -0.06129273772239685 - }, - ""rotation"": { - ""x"": -0.5128890872001648, - ""y"": -0.29369285702705386, - ""z"": 0.018453821539878846, - ""w"": 0.8064419627189636 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.020074930042028428, - ""y"": 0.04420189931988716, - ""z"": -0.04323747381567955 - }, - ""rotation"": { - ""x"": -0.07308150827884674, - ""y"": 0.17278942465782166, - ""z"": -0.10241489112377167, - ""w"": -0.9769001603126526 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.005748542491346598, - ""y"": 0.0362907275557518, - ""z"": -0.001959702931344509 - }, - ""rotation"": { - ""x"": -0.7482351660728455, - ""y"": 0.06403420120477677, - ""z"": -0.2061866670846939, - ""w"": -0.6274414658546448 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.012452101334929467, - ""y"": 0.007901951670646668, - ""z"": -0.0057104239240288738 - }, - ""rotation"": { - ""x"": -0.9225407838821411, - ""y"": -0.07818678766489029, - ""z"": -0.1428528130054474, - ""w"": -0.3514384627342224 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.01802952028810978, - ""y"": -0.003061514813452959, - ""z"": -0.01820256933569908 - }, - ""rotation"": { - ""x"": -0.9225407838821411, - ""y"": -0.07818678766489029, - ""z"": -0.1428528130054474, - ""w"": -0.3514384627342224 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.05912885442376137, - ""y"": -0.0009383354336023331, - ""z"": -0.05809984356164932 - }, - ""rotation"": { - ""x"": -0.49521127343177798, - ""y"": -0.17924758791923524, - ""z"": 0.07874160259962082, - ""w"": 0.846425473690033 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.038666337728500369, - ""y"": 0.04252086579799652, - ""z"": -0.03421220928430557 - }, - ""rotation"": { - ""x"": -0.1513676941394806, - ""y"": 0.15960678458213807, - ""z"": -0.05129222199320793, - ""w"": -0.9741657376289368 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.02693704515695572, - ""y"": 0.030163494870066644, - ""z"": 0.0016453623538836837 - }, - ""rotation"": { - ""x"": -0.8552912473678589, - ""y"": 0.0920121893286705, - ""z"": -0.11032526195049286, - ""w"": -0.4979609251022339 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.029263043776154519, - ""y"": 0.009234108030796051, - ""z"": -0.009864533320069313 - }, - ""rotation"": { - ""x"": -0.9685380458831787, - ""y"": -0.018125316128134729, - ""z"": -0.094183549284935, - ""w"": -0.23075833916664124 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.032915160059928897, - ""y"": 0.0007288604974746704, - ""z"": -0.02667597308754921 - }, - ""rotation"": { - ""x"": -0.9685380458831787, - ""y"": -0.018125316128134729, - ""z"": -0.094183549284935, - ""w"": -0.23075833916664124 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.0675557404756546, - ""y"": -0.0004099104553461075, - ""z"": -0.05376683175563812 - }, - ""rotation"": { - ""x"": -0.44121748208999636, - ""y"": -0.05341072380542755, - ""z"": 0.14569664001464845, - ""w"": 0.8838818073272705 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.05575947463512421, - ""y"": 0.04002845287322998, - ""z"": -0.02176406979560852 - }, - ""rotation"": { - ""x"": -0.2122899889945984, - ""y"": 0.1802181601524353, - ""z"": 0.03122050315141678, - ""w"": -0.959945559501648 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.046450983732938769, - ""y"": 0.029760107398033143, - ""z"": 0.0001273825764656067 - }, - ""rotation"": { - ""x"": -0.8192430138587952, - ""y"": 0.16303858160972596, - ""z"": -0.0602981373667717, - ""w"": -0.5465834140777588 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.044868819415569308, - ""y"": 0.011532457545399666, - ""z"": -0.007741663604974747 - }, - ""rotation"": { - ""x"": -0.9710148572921753, - ""y"": 0.04234015569090843, - ""z"": 0.042903631925582889, - ""w"": -0.23259779810905457 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.04328276216983795, - ""y"": 0.004625056870281696, - ""z"": -0.0214386023581028 - }, - ""rotation"": { - ""x"": -0.9710148572921753, - ""y"": 0.04234015569090843, - ""z"": 0.042903631925582889, - ""w"": -0.23259779810905457 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_Open JSON - - private const string ArticulatedHandPose_Open = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.0780251994729042, - ""y"": -0.05990780144929886, - ""z"": -0.3291178047657013 - }, - ""rotation"": { - ""x"": 0.0, - ""y"": 0.0, - ""z"": 0.0, - ""w"": 0.0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.07397598028182984, - ""y"": -0.1239677220582962, - ""z"": -0.05636374652385712 - }, - ""rotation"": { - ""x"": -0.5306746959686279, - ""y"": -0.24036270380020142, - ""z"": -0.0010364949703216553, - ""w"": 0.8126773834228516 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.06148417666554451, - ""y"": -0.08249785006046295, - ""z"": -0.04003134369850159 - }, - ""rotation"": { - ""x"": -0.5306746959686279, - ""y"": -0.24036270380020142, - ""z"": -0.0010364949703216553, - ""w"": 0.8126773834228516 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.05004027485847473, - ""y"": -0.1168040931224823, - ""z"": -0.046657364815473559 - }, - ""rotation"": { - ""x"": -0.5606539249420166, - ""y"": -0.098196841776371, - ""z"": 0.670694887638092, - ""w"": 0.4761941432952881 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.014790681190788746, - ""y"": -0.1000247374176979, - ""z"": -0.031946491450071338 - }, - ""rotation"": { - ""x"": -0.5155644416809082, - ""y"": -0.0010041594505310059, - ""z"": 0.6619959473609924, - ""w"": 0.5445378422737122 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.0062080565840005878, - ""y"": -0.0828109011054039, - ""z"": -0.01753186620771885 - }, - ""rotation"": { - ""x"": -0.5490170121192932, - ""y"": -0.08343470841646195, - ""z"": 0.6728134751319885, - ""w"": 0.48939600586891177 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": -0.02095535211265087, - ""y"": -0.07516473531723023, - ""z"": -0.010627731680870057 - }, - ""rotation"": { - ""x"": -0.5490170121192932, - ""y"": -0.08343470841646195, - ""z"": 0.6728134751319885, - ""w"": 0.48939600586891177 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.058891069144010547, - ""y"": -0.11150021106004715, - ""z"": -0.047359079122543338 - }, - ""rotation"": { - ""x"": -0.5242606997489929, - ""y"": -0.3638727068901062, - ""z"": 0.0003723353147506714, - ""w"": 0.7699006795883179 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.025922514498233796, - ""y"": -0.06404880434274674, - ""z"": -0.036451879888772967 - }, - ""rotation"": { - ""x"": -0.5153175592422485, - ""y"": -0.13684964179992677, - ""z"": 0.0975230410695076, - ""w"": 0.840372622013092 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.012116845697164536, - ""y"": -0.028988275676965715, - ""z"": -0.0184309259057045 - }, - ""rotation"": { - ""x"": -0.5083625912666321, - ""y"": -0.08690404891967774, - ""z"": 0.1772240400314331, - ""w"": 0.8382880687713623 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0047910469584167, - ""y"": -0.01052884478121996, - ""z"": -0.007911253720521927 - }, - ""rotation"": { - ""x"": -0.4986042380332947, - ""y"": -0.10437075048685074, - ""z"": 0.07316453754901886, - ""w"": 0.8577484488487244 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": 0.0011067038867622614, - ""y"": 0.0017288230592384935, - ""z"": -0.0008905145805329084 - }, - ""rotation"": { - ""x"": -0.4986042380332947, - ""y"": -0.10437075048685074, - ""z"": 0.07316453754901886, - ""w"": 0.8577484488487244 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.06627093255519867, - ""y"": -0.1093648374080658, - ""z"": -0.04731958359479904 - }, - ""rotation"": { - ""x"": -0.5980523824691773, - ""y"": -0.19373856484889985, - ""z"": 0.061999037861824039, - ""w"": 0.7752125859260559 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.04579643905162811, - ""y"": -0.05998942255973816, - ""z"": -0.035861626267433169 - }, - ""rotation"": { - ""x"": 0.07707051932811737, - ""y"": 0.09493987262248993, - ""z"": -0.06967925280332566, - ""w"": -0.9900561571121216 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.03759719431400299, - ""y"": -0.054239436984062198, - ""z"": 0.004158938303589821 - }, - ""rotation"": { - ""x"": -0.5364435911178589, - ""y"": 0.035090312361717227, - ""z"": -0.1292860358953476, - ""w"": -0.8333183526992798 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.039636775851249698, - ""y"": -0.07725092768669129, - ""z"": 0.014920881018042565 - }, - ""rotation"": { - ""x"": -0.7898687720298767, - ""y"": -0.05351902171969414, - ""z"": -0.050689004361629489, - ""w"": -0.6095116138458252 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.04198702797293663, - ""y"": -0.09284322708845139, - ""z"": 0.010831182822585106 - }, - ""rotation"": { - ""x"": -0.7898687720298767, - ""y"": -0.05351902171969414, - ""z"": -0.050689004361629489, - ""w"": -0.6095116138458252 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.07596171647310257, - ""y"": -0.10612225532531738, - ""z"": -0.04667811840772629 - }, - ""rotation"": { - ""x"": -0.5675100088119507, - ""y"": -0.08019199222326279, - ""z"": 0.10617346316576004, - ""w"": 0.8125444054603577 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.06377431005239487, - ""y"": -0.06213853880763054, - ""z"": -0.030012063682079316 - }, - ""rotation"": { - ""x"": -0.03975258022546768, - ""y"": 0.09559198468923569, - ""z"": -0.024301081895828248, - ""w"": -0.9943375587463379 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.056988153606653216, - ""y"": -0.06515654176473618, - ""z"": 0.005276134237647057 - }, - ""rotation"": { - ""x"": -0.7588484287261963, - ""y"": 0.0701710507273674, - ""z"": -0.045488141477108, - ""w"": -0.6459669470787048 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.05652663856744766, - ""y"": -0.08611556887626648, - ""z"": 0.0018516592681407929 - }, - ""rotation"": { - ""x"": -0.9129649996757507, - ""y"": -0.005179869011044502, - ""z"": -0.007560268044471741, - ""w"": -0.408629447221756 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.056841082870960239, - ""y"": -0.09943331778049469, - ""z"": -0.010053567588329316 - }, - ""rotation"": { - ""x"": -0.9129649996757507, - ""y"": -0.005179869011044502, - ""z"": -0.007560268044471741, - ""w"": -0.408629447221756 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.08423660695552826, - ""y"": -0.10567539930343628, - ""z"": -0.044220417737960818 - }, - ""rotation"": { - ""x"": -0.5077040791511536, - ""y"": 0.04072892665863037, - ""z"": 0.1517779380083084, - ""w"": 0.8470779657363892 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.0801829993724823, - ""y"": -0.06412312388420105, - ""z"": -0.021305494010448457 - }, - ""rotation"": { - ""x"": -0.08299122005701065, - ""y"": 0.1249239444732666, - ""z"": 0.04155319184064865, - ""w"": -0.9878235459327698 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.07411551475524903, - ""y"": -0.0677957683801651, - ""z"": 0.0015332028269767762 - }, - ""rotation"": { - ""x"": -0.715654730796814, - ""y"": 0.1371033787727356, - ""z"": 0.001321159303188324, - ""w"": -0.6849520206451416 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.07075578719377518, - ""y"": -0.08515383303165436, - ""z"": 0.00044181570410728455 - }, - ""rotation"": { - ""x"": -0.8999292254447937, - ""y"": 0.06855495274066925, - ""z"": 0.11455988883972168, - ""w"": -0.41592133045196535 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.0670883059501648, - ""y"": -0.09537018835544586, - ""z"": -0.008319821208715439 - }, - ""rotation"": { - ""x"": -0.8999292254447937, - ""y"": 0.06855495274066925, - ""z"": 0.11455988883972168, - ""w"": -0.41592133045196535 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_OpenSteadyGrabPoint JSON - - private const string ArticulatedHandPose_OpenSteadyGrabPoint = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.0681008753599599, - ""y"": -0.023189845320302993, - ""z"": -0.32335868163499981 - }, - ""rotation"": { - ""x"": 0, - ""y"": 0, - ""z"": 0, - ""w"": 0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.083900304394774139, - ""y"": -0.087249765929300338, - ""z"": -0.050604623393155634 - }, - ""rotation"": { - ""x"": -0.53067469596862793, - ""y"": -0.24036270380020142, - ""z"": -0.0010364949703216553, - ""w"": 0.81267738342285156 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.071408500778488815, - ""y"": -0.045779893931467086, - ""z"": -0.034272220567800105 - }, - ""rotation"": { - ""x"": -0.53067469596862793, - ""y"": -0.24036270380020142, - ""z"": -0.0010364949703216553, - ""w"": 0.81267738342285156 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.059964598971419036, - ""y"": -0.080086136993486434, - ""z"": -0.040898241684772074 - }, - ""rotation"": { - ""x"": -0.5606539249420166, - ""y"": -0.098196841776371, - ""z"": 0.670694887638092, - ""w"": 0.47619414329528809 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.024715005303733051, - ""y"": -0.063306781288702041, - ""z"": -0.026187368319369853 - }, - ""rotation"": { - ""x"": -0.5155644416809082, - ""y"": -0.0010041594505310059, - ""z"": 0.66199594736099243, - ""w"": 0.54453784227371216 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0037162675289437175, - ""y"": -0.046092944976408035, - ""z"": -0.011772743077017367 - }, - ""rotation"": { - ""x"": -0.54901701211929321, - ""y"": -0.083434708416461945, - ""z"": 0.67281347513198853, - ""w"": 0.48939600586891174 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": -0.011031027999706566, - ""y"": -0.038446779188234359, - ""z"": -0.0048686085501685739 - }, - ""rotation"": { - ""x"": -0.54901701211929321, - ""y"": -0.083434708416461945, - ""z"": 0.67281347513198853, - ""w"": 0.48939600586891174 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.068815393256954849, - ""y"": -0.074782254931051284, - ""z"": -0.041599955991841853 - }, - ""rotation"": { - ""x"": -0.52426069974899292, - ""y"": -0.3638727068901062, - ""z"": 0.00037233531475067139, - ""w"": 0.76990067958831787 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.0358468386111781, - ""y"": -0.027330848213750869, - ""z"": -0.030692756758071482 - }, - ""rotation"": { - ""x"": -0.51531755924224854, - ""y"": -0.13684964179992676, - ""z"": 0.0975230410695076, - ""w"": 0.840372622013092 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.02204116981010884, - ""y"": 0.0077296804520301521, - ""z"": -0.012671802775003016 - }, - ""rotation"": { - ""x"": -0.50836259126663208, - ""y"": -0.086904048919677734, - ""z"": 0.17722404003143311, - ""w"": 0.8382880687713623 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.014715371071361005, - ""y"": 0.026189111347775906, - ""z"": -0.0021521305898204446 - }, - ""rotation"": { - ""x"": -0.49860423803329468, - ""y"": -0.10437075048685074, - ""z"": 0.07316453754901886, - ""w"": 0.85774844884872437 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": 0.011031027999706566, - ""y"": 0.038446779188234359, - ""z"": 0.0048686085501685739 - }, - ""rotation"": { - ""x"": -0.49860423803329468, - ""y"": -0.10437075048685074, - ""z"": 0.07316453754901886, - ""w"": 0.85774844884872437 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.076195256668142974, - ""y"": -0.07264688127906993, - ""z"": -0.041560460464097559 - }, - ""rotation"": { - ""x"": -0.59805238246917725, - ""y"": -0.19373856484889984, - ""z"": 0.061999037861824036, - ""w"": 0.77521258592605591 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.055720763164572418, - ""y"": -0.023271466430742294, - ""z"": -0.030102503136731684 - }, - ""rotation"": { - ""x"": 0.077070519328117371, - ""y"": 0.094939872622489929, - ""z"": -0.069679252803325653, - ""w"": -0.99005615711212158 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.047521518426947296, - ""y"": -0.017521480855066329, - ""z"": 0.0099180614342913032 - }, - ""rotation"": { - ""x"": -0.53644359111785889, - ""y"": 0.035090312361717224, - ""z"": -0.1292860358953476, - ""w"": -0.83331835269927979 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.049561099964194, - ""y"": -0.040532971557695419, - ""z"": 0.020680004148744047 - }, - ""rotation"": { - ""x"": -0.78986877202987671, - ""y"": -0.053519021719694138, - ""z"": -0.050689004361629486, - ""w"": -0.6095116138458252 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.051911352085880935, - ""y"": -0.05612527095945552, - ""z"": 0.016590305953286588 - }, - ""rotation"": { - ""x"": -0.78986877202987671, - ""y"": -0.053519021719694138, - ""z"": -0.050689004361629486, - ""w"": -0.6095116138458252 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.085886040586046875, - ""y"": -0.069404299196321517, - ""z"": -0.040918995277024806 - }, - ""rotation"": { - ""x"": -0.56751000881195068, - ""y"": -0.080191992223262787, - ""z"": 0.10617346316576004, - ""w"": 0.81254440546035767 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.073698634165339172, - ""y"": -0.025420582678634673, - ""z"": -0.024252940551377833 - }, - ""rotation"": { - ""x"": -0.039752580225467682, - ""y"": 0.095591984689235687, - ""z"": -0.024301081895828247, - ""w"": -0.99433755874633789 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.066912477719597518, - ""y"": -0.02843858563574031, - ""z"": 0.011035257368348539 - }, - ""rotation"": { - ""x"": -0.75884842872619629, - ""y"": 0.0701710507273674, - ""z"": -0.045488141477108, - ""w"": -0.64596694707870483 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.066450962680391967, - ""y"": -0.049397612747270614, - ""z"": 0.0076107823988422751 - }, - ""rotation"": { - ""x"": -0.91296499967575073, - ""y"": -0.0051798690110445023, - ""z"": -0.0075602680444717407, - ""w"": -0.408629447221756 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.066765406983904541, - ""y"": -0.062715361651498824, - ""z"": -0.0042944444576278329 - }, - ""rotation"": { - ""x"": -0.91296499967575073, - ""y"": -0.0051798690110445023, - ""z"": -0.0075602680444717407, - ""w"": -0.408629447221756 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.094160931068472564, - ""y"": -0.068957443174440414, - ""z"": -0.038461294607259333 - }, - ""rotation"": { - ""x"": -0.50770407915115356, - ""y"": 0.040728926658630371, - ""z"": 0.15177793800830841, - ""w"": 0.84707796573638916 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.0901073234854266, - ""y"": -0.027405167755205184, - ""z"": -0.015546370879746974 - }, - ""rotation"": { - ""x"": -0.082991220057010651, - ""y"": 0.1249239444732666, - ""z"": 0.041553191840648651, - ""w"": -0.98782354593276978 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.084039838868193328, - ""y"": -0.031077812251169235, - ""z"": 0.0072923259576782584 - }, - ""rotation"": { - ""x"": -0.715654730796814, - ""y"": 0.1371033787727356, - ""z"": 0.001321159303188324, - ""w"": -0.6849520206451416 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.080680111306719482, - ""y"": -0.048435876902658492, - ""z"": 0.0062009388348087668 - }, - ""rotation"": { - ""x"": -0.8999292254447937, - ""y"": 0.06855495274066925, - ""z"": 0.11455988883972168, - ""w"": -0.41592133045196533 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.0770126300631091, - ""y"": -0.058652232226449996, - ""z"": -0.0025606980780139565 - }, - ""rotation"": { - ""x"": -0.8999292254447937, - ""y"": 0.06855495274066925, - ""z"": 0.11455988883972168, - ""w"": -0.41592133045196533 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_Pinch JSON - - private const string ArticulatedHandPose_Pinch = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.055795830441638827, - ""y"": -0.050494263647124171, - ""z"": -0.31160801439546049 - }, - ""rotation"": { - ""x"": 0, - ""y"": 0, - ""z"": 0, - ""w"": 0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.094970445381477475, - ""y"": -0.071920572547242045, - ""z"": -0.043240679195150733 - }, - ""rotation"": { - ""x"": -0.57126933336257935, - ""y"": -0.40886738896369934, - ""z"": -0.11714609712362289, - ""w"": 0.70179426670074463 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.078446935163810849, - ""y"": -0.025236195651814342, - ""z"": -0.038608604809269309 - }, - ""rotation"": { - ""x"": -0.57126933336257935, - ""y"": -0.40886738896369934, - ""z"": -0.11714609712362289, - ""w"": 0.70179426670074463 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0704388425219804, - ""y"": -0.063463031081482768, - ""z"": -0.0446559542324394 - }, - ""rotation"": { - ""x"": 0.59957319498062134, - ""y"": 0.056990712881088257, - ""z"": -0.661469042301178, - ""w"": -0.44784826040267944 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.030931103276088834, - ""y"": -0.041895947186276317, - ""z"": -0.03173214360140264 - }, - ""rotation"": { - ""x"": 0.48144450783729553, - ""y"": -0.077987000346183777, - ""z"": -0.66726517677307129, - ""w"": -0.56365346908569336 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.011377685004845262, - ""y"": -0.0191096484195441, - ""z"": -0.013179950183257461 - }, - ""rotation"": { - ""x"": 0.48974254727363586, - ""y"": -0.04340343177318573, - ""z"": -0.678149402141571, - ""w"": -0.54698729515075684 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": -0.00054007698781788349, - ""y"": -0.0076306506525725126, - ""z"": -0.0031634948682039976 - }, - ""rotation"": { - ""x"": 0.48974254727363586, - ""y"": -0.04340343177318573, - ""z"": -0.678149402141571, - ""w"": -0.54698729515075684 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.079071666346862912, - ""y"": -0.057821920840069652, - ""z"": -0.042442125966772437 - }, - ""rotation"": { - ""x"": -0.54839807748794556, - ""y"": -0.5408281683921814, - ""z"": -0.10956580191850662, - ""w"": 0.6282992959022522 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.042313426034525037, - ""y"": -0.0047555731143802404, - ""z"": -0.054694456746801734 - }, - ""rotation"": { - ""x"": 0.33803752064704895, - ""y"": 0.34615525603294373, - ""z"": -0.075356766581535339, - ""w"": -0.87192034721374512 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.015641395235434175, - ""y"": 0.0171373023185879, - ""z"": -0.033025106182321906 - }, - ""rotation"": { - ""x"": 0.011520777828991413, - ""y"": 0.23532292246818543, - ""z"": -0.26723867654800415, - ""w"": -0.93442928791046143 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0043656446505337954, - ""y"": 0.014503426151350141, - ""z"": -0.01055326103232801 - }, - ""rotation"": { - ""x"": -0.18848013877868652, - ""y"": 0.1752738356590271, - ""z"": -0.23216751217842102, - ""w"": -0.938201367855072 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": 0.0011067038867622614, - ""y"": 0.0017288230592384935, - ""z"": -0.0008905145805329084 - }, - ""rotation"": { - ""x"": -0.4986042380332947, - ""y"": -0.10437075048685074, - ""z"": 0.07316453754901886, - ""w"": 0.8577484488487244 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.085573996650055051, - ""y"": -0.055481004295870662, - ""z"": -0.039088224759325385 - }, - ""rotation"": { - ""x"": -0.64046329259872437, - ""y"": -0.373137503862381, - ""z"": -0.082113638520240784, - ""w"": 0.66620767116546631 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.061702992068603635, - ""y"": 0.00021764193661510944, - ""z"": -0.04510785429738462 - }, - ""rotation"": { - ""x"": 0.1714177131652832, - ""y"": 0.3295632004737854, - ""z"": -0.056909773498773575, - ""w"": -0.92670679092407227 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.033647007541731, - ""y"": 0.01268923026509583, - ""z"": -0.012882571434602141 - }, - ""rotation"": { - ""x"": -0.52955335378646851, - ""y"": 0.20503298938274384, - ""z"": -0.28541553020477295, - ""w"": -0.77215194702148438 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.033218997763469815, - ""y"": -0.014666470466181636, - ""z"": -0.00248397677205503 - }, - ""rotation"": { - ""x"": -0.80611693859100342, - ""y"": 0.037188127636909485, - ""z"": -0.25478187203407288, - ""w"": -0.5337793231010437 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.039724528091028333, - ""y"": -0.030166196404024959, - ""z"": -0.0077722163405269384 - }, - ""rotation"": { - ""x"": -0.80611693859100342, - ""y"": 0.037188127636909485, - ""z"": -0.25478187203407288, - ""w"": -0.5337793231010437 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.094046983169391751, - ""y"": -0.05198403331451118, - ""z"": -0.034078513970598578 - }, - ""rotation"": { - ""x"": -0.63099503517150879, - ""y"": -0.25767973065376282, - ""z"": -0.040025528520345688, - ""w"": 0.73064666986465454 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.076233054744079709, - ""y"": -0.00047668232582509518, - ""z"": -0.030205076327547431 - }, - ""rotation"": { - ""x"": 0.061521425843238831, - ""y"": 0.32744783163070679, - ""z"": -0.026347285136580467, - ""w"": -0.94250476360321045 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.051643508719280362, - ""y"": 0.003435472259297967, - ""z"": 0.00062574469484388828 - }, - ""rotation"": { - ""x"": -0.7006344199180603, - ""y"": 0.22492779791355133, - ""z"": -0.23193849623203278, - ""w"": -0.63627457618713379 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0525671869982034, - ""y"": -0.0204183969181031, - ""z"": -0.0013549791183322668 - }, - ""rotation"": { - ""x"": -0.88947725296020508, - ""y"": 0.068172931671142578, - ""z"": -0.23703967034816742, - ""w"": -0.38538727164268494 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.0596969083417207, - ""y"": -0.034293188480660319, - ""z"": -0.0127856710460037 - }, - ""rotation"": { - ""x"": -0.88947725296020508, - ""y"": 0.068172931671142578, - ""z"": -0.23703967034816742, - ""w"": -0.38538727164268494 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.10081055318005383, - ""y"": -0.050989105133339763, - ""z"": -0.027507969876751304 - }, - ""rotation"": { - ""x"": -0.58761417865753174, - ""y"": -0.13647006452083588, - ""z"": 0.010980717837810516, - ""w"": 0.79747408628463745 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.088435876416042447, - ""y"": -0.00084916572086513042, - ""z"": -0.01290042488835752 - }, - ""rotation"": { - ""x"": -0.015533886849880219, - ""y"": 0.36132562160491943, - ""z"": 0.044756371527910233, - ""w"": -0.9312441349029541 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.071086059557273984, - ""y"": -0.000761339208111167, - ""z"": 0.0060971176717430353 - }, - ""rotation"": { - ""x"": -0.6863744854927063, - ""y"": 0.30161058902740479, - ""z"": -0.18428879976272583, - ""w"": -0.63567912578582764 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.068500611232593656, - ""y"": -0.02024311083368957, - ""z"": 0.0036448633763939142 - }, - ""rotation"": { - ""x"": -0.93071597814559937, - ""y"": 0.13045383989810944, - ""z"": -0.11257931590080261, - ""w"": -0.32351988554000854 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.070451776729896665, - ""y"": -0.030086855171248317, - ""z"": -0.00828781514428556 - }, - ""rotation"": { - ""x"": -0.93071597814559937, - ""y"": 0.13045383989810944, - ""z"": -0.11257931590080261, - ""w"": -0.32351988554000854 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_PinchSteadyWrist JSON - - private const string ArticulatedHandPose_PinchSteadyWrist = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.06115446984767914, - ""y"": -0.09662134945392609, - ""z"": -0.2845369577407837 - }, - ""rotation"": { - ""x"": 0.0, - ""y"": 0.0, - ""z"": 0.0, - ""w"": 0.0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.09835253655910492, - ""y"": -0.13776640594005586, - ""z"": -0.039533719420433047 - }, - ""rotation"": { - ""x"": -0.5504903793334961, - ""y"": -0.3628506064414978, - ""z"": 0.009051494300365448, - ""w"": 0.7516400218009949 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.0762285590171814, - ""y"": -0.0935618057847023, - ""z"": -0.03025330975651741 - }, - ""rotation"": { - ""x"": -0.5504903793334961, - ""y"": -0.3628506064414978, - ""z"": 0.009051494300365448, - ""w"": 0.7516400218009949 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0726172998547554, - ""y"": -0.13283079862594605, - ""z"": -0.03489827364683151 - }, - ""rotation"": { - ""x"": 0.5268919467926025, - ""y"": 0.07137523591518402, - ""z"": -0.7376347184181213, - ""w"": -0.4172084629535675 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.033425573259592059, - ""y"": -0.11720558255910874, - ""z"": -0.01445704698562622 - }, - ""rotation"": { - ""x"": 0.434413880109787, - ""y"": -0.0821000337600708, - ""z"": -0.7344200611114502, - ""w"": -0.5157689452171326 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.014360085129737854, - ""y"": -0.09762166440486908, - ""z"": 0.006609674543142319 - }, - ""rotation"": { - ""x"": 0.4773363769054413, - ""y"": 0.019135713577270509, - ""z"": -0.7483649849891663, - ""w"": -0.4610738456249237 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": -0.00011064158752560616, - ""y"": -0.08949866145849228, - ""z"": 0.017393887042999269 - }, - ""rotation"": { - ""x"": 0.4773363769054413, - ""y"": 0.019135713577270509, - ""z"": -0.7483649849891663, - ""w"": -0.4610738456249237 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.08073623478412628, - ""y"": -0.125896617770195, - ""z"": -0.034658633172512057 - }, - ""rotation"": { - ""x"": -0.5162340998649597, - ""y"": -0.5017301440238953, - ""z"": 0.006298713386058807, - ""w"": 0.6940672993659973 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.03474228084087372, - ""y"": -0.0794244259595871, - ""z"": -0.03704426437616348 - }, - ""rotation"": { - ""x"": 0.24844542145729066, - ""y"": 0.2553045451641083, - ""z"": -0.1957876831293106, - ""w"": -0.9136616587638855 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.011708781123161316, - ""y"": -0.06496208906173706, - ""z"": -0.006560325622558594 - }, - ""rotation"": { - ""x"": -0.07294681668281555, - ""y"": 0.11601599305868149, - ""z"": -0.3479400873184204, - ""w"": -0.9274918437004089 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.007551820017397404, - ""y"": -0.07041776180267334, - ""z"": 0.017747312784194948 - }, - ""rotation"": { - ""x"": -0.23120707273483277, - ""y"": 0.04230353981256485, - ""z"": -0.283862441778183, - ""w"": -0.9298091530799866 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": 0.008366326801478863, - ""y"": -0.07753925025463104, - ""z"": 0.03171003982424736 - }, - ""rotation"": { - ""x"": -0.23120707273483277, - ""y"": 0.04230353981256485, - ""z"": -0.283862441778183, - ""w"": -0.9298091530799866 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.08751480281352997, - ""y"": -0.12250128388404846, - ""z"": -0.03293202817440033 - }, - ""rotation"": { - ""x"": -0.6167790293693543, - ""y"": -0.3379325270652771, - ""z"": 0.047245174646377566, - ""w"": 0.7093328237533569 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.05473826080560684, - ""y"": -0.07110955566167832, - ""z"": -0.03227551281452179 - }, - ""rotation"": { - ""x"": 0.14497825503349305, - ""y"": 0.23276910185813905, - ""z"": -0.15017877519130708, - ""w"": -0.9498769640922546 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.03288401663303375, - ""y"": -0.061863791197538379, - ""z"": 0.005947750061750412 - }, - ""rotation"": { - ""x"": -0.529046893119812, - ""y"": 0.08228799700737, - ""z"": -0.27945762872695925, - ""w"": -0.7971096038818359 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.03765859827399254, - ""y"": -0.08771546185016632, - ""z"": 0.018359089270234109 - }, - ""rotation"": { - ""x"": -0.7883356809616089, - ""y"": -0.06667964905500412, - ""z"": -0.20251651108264924, - ""w"": -0.5779290795326233 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.044593729078769687, - ""y"": -0.10324498265981674, - ""z"": 0.013978719711303711 - }, - ""rotation"": { - ""x"": -0.7883356809616089, - ""y"": -0.06667964905500412, - ""z"": -0.20251651108264924, - ""w"": -0.5779290795326233 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.09642073512077332, - ""y"": -0.11764736473560333, - ""z"": -0.03004951775074005 - }, - ""rotation"": { - ""x"": -0.6103544235229492, - ""y"": -0.2158902883529663, - ""z"": 0.09254944324493408, - ""w"": 0.756500780582428 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.07221101969480515, - ""y"": -0.06899281591176987, - ""z"": -0.021143771708011628 - }, - ""rotation"": { - ""x"": 0.05531589314341545, - ""y"": 0.22126297652721406, - ""z"": -0.10504759848117829, - ""w"": -0.9679690599441528 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.05479241907596588, - ""y"": -0.06659357994794846, - ""z"": 0.014326661825180054 - }, - ""rotation"": { - ""x"": -0.7176058888435364, - ""y"": 0.09858439117670059, - ""z"": -0.19834160804748536, - ""w"": -0.6603801846504211 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.05848679319024086, - ""y"": -0.09022481739521027, - ""z"": 0.013152096420526505 - }, - ""rotation"": { - ""x"": -0.902705729007721, - ""y"": -0.04138700291514397, - ""z"": -0.16108426451683045, - ""w"": -0.39749816060066225 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.0647393986582756, - ""y"": -0.10384124517440796, - ""z"": 0.000916551798582077 - }, - ""rotation"": { - ""x"": -0.902705729007721, - ""y"": -0.04138700291514397, - ""z"": -0.16108426451683045, - ""w"": -0.39749816060066225 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.10431554913520813, - ""y"": -0.11550788581371308, - ""z"": -0.02525215595960617 - }, - ""rotation"": { - ""x"": -0.5731514096260071, - ""y"": -0.08393544703722, - ""z"": 0.14239011704921723, - ""w"": 0.8026066422462463 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.08813987672328949, - ""y"": -0.06685832887887955, - ""z"": -0.0073963552713394169 - }, - ""rotation"": { - ""x"": 0.004650826565921307, - ""y"": 0.2523718476295471, - ""z"": -0.022669829428195955, - ""w"": -0.967362105846405 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.07569940388202667, - ""y"": -0.066920705139637, - ""z"": 0.014825716614723206 - }, - ""rotation"": { - ""x"": -0.6876563429832459, - ""y"": 0.1765523999929428, - ""z"": -0.14831064641475678, - ""w"": -0.6885376572608948 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0749262273311615, - ""y"": -0.08663906902074814, - ""z"": 0.014672402292490006 - }, - ""rotation"": { - ""x"": -0.927348792552948, - ""y"": 0.0344926156103611, - ""z"": -0.02340996265411377, - ""w"": -0.37271565198898318 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.07520446181297302, - ""y"": -0.09743660688400269, - ""z"": 0.0034288540482521059 - }, - ""rotation"": { - ""x"": -0.927348792552948, - ""y"": 0.0344926156103611, - ""z"": -0.02340996265411377, - ""w"": -0.37271565198898318 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_Poke JSON - - private const string ArticulatedHandPose_Poke = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.0002162586897611618, - ""y"": -0.07638707756996155, - ""z"": -0.5826087594032288 - }, - ""rotation"": { - ""x"": 0.0, - ""y"": 0.0, - ""z"": 0.0, - ""w"": 0.0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.042526353150606158, - ""y"": -0.05274807661771774, - ""z"": -0.002824799157679081 - }, - ""rotation"": { - ""x"": -0.3676998019218445, - ""y"": -0.23572500050067902, - ""z"": -0.11507342755794525, - ""w"": 0.8920522332191467 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.03201436251401901, - ""y"": -0.019188636913895608, - ""z"": 0.02868746407330036 - }, - ""rotation"": { - ""x"": -0.3676998019218445, - ""y"": -0.23572500050067902, - ""z"": -0.11507342755794525, - ""w"": 0.8920522332191467 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.020570117980241777, - ""y"": -0.04709470272064209, - ""z"": 0.006985310930758715 - }, - ""rotation"": { - ""x"": 0.3615202307701111, - ""y"": 0.20331884920597077, - ""z"": -0.6839582324028015, - ""w"": -0.6008830666542053 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.009850621223449707, - ""y"": -0.04070408642292023, - ""z"": 0.034042149782180789 - }, - ""rotation"": { - ""x"": 0.21800242364406587, - ""y"": 0.02305757999420166, - ""z"": -0.7068297266960144, - ""w"": -0.673233151435852 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.02049688994884491, - ""y"": -0.03254491835832596, - ""z"": 0.06248035654425621 - }, - ""rotation"": { - ""x"": 0.258157342672348, - ""y"": 0.0635419636964798, - ""z"": -0.7039065957069397, - ""w"": -0.6593562960624695 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": -0.028410332277417184, - ""y"": -0.028122693300247194, - ""z"": 0.07770571112632752 - }, - ""rotation"": { - ""x"": 0.258157342672348, - ""y"": 0.0635419636964798, - ""z"": -0.7039065957069397, - ""w"": -0.6593562960624695 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.029027197510004045, - ""y"": -0.042809583246707919, - ""z"": 0.009094133973121643 - }, - ""rotation"": { - ""x"": -0.3631853759288788, - ""y"": -0.3677399158477783, - ""z"": -0.1473514586687088, - ""w"": 0.8432979583740234 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": -0.0017803632654249669, - ""y"": 0.0004678480327129364, - ""z"": 0.03705211728811264 - }, - ""rotation"": { - ""x"": -0.27657586336135867, - ""y"": -0.15855258703231812, - ""z"": 0.0009860674617812038, - ""w"": 0.947831392288208 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": -0.014122002758085728, - ""y"": 0.021943308413028718, - ""z"": 0.06970683485269547 - }, - ""rotation"": { - ""x"": -0.2553846836090088, - ""y"": -0.12617842853069306, - ""z"": 0.09538201987743378, - ""w"": 0.9538831114768982 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.020550768822431566, - ""y"": 0.0322258397936821, - ""z"": 0.08830686658620835 - }, - ""rotation"": { - ""x"": -0.30963119864463808, - ""y"": -0.11118883639574051, - ""z"": -0.031351685523986819, - ""w"": 0.9441277980804443 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": -0.02332291379570961, - ""y"": 0.04081675410270691, - ""z"": 0.09968645870685578 - }, - ""rotation"": { - ""x"": -0.30963119864463808, - ""y"": -0.11118883639574051, - ""z"": -0.031351685523986819, - ""w"": 0.9441277980804443 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.035866666585206988, - ""y"": -0.041708216071128848, - ""z"": 0.010740639641880989 - }, - ""rotation"": { - ""x"": -0.43399062752723696, - ""y"": -0.2068476676940918, - ""z"": -0.05406999588012695, - ""w"": 0.8751816153526306 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.018060242757201196, - ""y"": 0.002479703165590763, - ""z"": 0.04112553596496582 - }, - ""rotation"": { - ""x"": 0.005038086324930191, - ""y"": 0.1527022123336792, - ""z"": 0.021530797705054284, - ""w"": -0.9880359768867493 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.005449346732348204, - ""y"": 0.0031707696616649629, - ""z"": 0.08099328726530075 - }, - ""rotation"": { - ""x"": -0.49786925315856936, - ""y"": 0.13922974467277528, - ""z"": -0.07507844269275665, - ""w"": -0.8527824878692627 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0013555703917518259, - ""y"": -0.01869615726172924, - ""z"": 0.09269960224628449 - }, - ""rotation"": { - ""x"": -0.7163864970207214, - ""y"": 0.07041004300117493, - ""z"": -0.030646607279777528, - ""w"": -0.6939578652381897 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.0004728742642328143, - ""y"": -0.03479576110839844, - ""z"": 0.09213778376579285 - }, - ""rotation"": { - ""x"": -0.7163864970207214, - ""y"": 0.07041004300117493, - ""z"": -0.030646607279777528, - ""w"": -0.6939578652381897 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.044932689517736438, - ""y"": -0.04016602039337158, - ""z"": 0.013597620651125908 - }, - ""rotation"": { - ""x"": -0.3939853310585022, - ""y"": -0.10114617645740509, - ""z"": 0.016117071732878686, - ""w"": 0.9133923053741455 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.03491469845175743, - ""y"": -0.003818823955953121, - ""z"": 0.047541361302137378 - }, - ""rotation"": { - ""x"": -0.11738020181655884, - ""y"": 0.15373656153678895, - ""z"": 0.05639626830816269, - ""w"": -0.9795019030570984 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.023768775165081025, - ""y"": -0.01135534793138504, - ""z"": 0.08033758401870728 - }, - ""rotation"": { - ""x"": -0.7923092842102051, - ""y"": 0.16401034593582154, - ""z"": -0.02978098951280117, - ""w"": -0.5869977474212647 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.02067880891263485, - ""y"": -0.031320542097091678, - ""z"": 0.0737735852599144 - }, - ""rotation"": { - ""x"": -0.9346709847450256, - ""y"": 0.0874316394329071, - ""z"": -0.023773543536663057, - ""w"": -0.344605952501297 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.020386409014463426, - ""y"": -0.04289411008358002, - ""z"": 0.06018315628170967 - }, - ""rotation"": { - ""x"": -0.9346709847450256, - ""y"": 0.0874316394329071, - ""z"": -0.023773543536663057, - ""w"": -0.344605952501297 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.05288681760430336, - ""y"": -0.041848354041576388, - ""z"": 0.01654883660376072 - }, - ""rotation"": { - ""x"": -0.33144858479499819, - ""y"": 0.002071807160973549, - ""z"": 0.085218146443367, - ""w"": 0.9396145343780518 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.050300415605306628, - ""y"": -0.011202438734471798, - ""z"": 0.054917603731155398 - }, - ""rotation"": { - ""x"": -0.16419324278831483, - ""y"": 0.1696346402168274, - ""z"": 0.12252454459667206, - ""w"": -0.9639865159988403 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.04166591167449951, - ""y"": -0.017666997388005258, - ""z"": 0.07580538094043732 - }, - ""rotation"": { - ""x"": -0.7474591135978699, - ""y"": 0.20672142505645753, - ""z"": 0.04626481607556343, - ""w"": -0.6297129392623901 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.03587989881634712, - ""y"": -0.03386271744966507, - ""z"": 0.0722469910979271 - }, - ""rotation"": { - ""x"": -0.928327202796936, - ""y"": 0.13445810973644257, - ""z"": 0.1272566169500351, - ""w"": -0.3232197165489197 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.03135494887828827, - ""y"": -0.04178089275956154, - ""z"": 0.06164591759443283 - }, - ""rotation"": { - ""x"": -0.928327202796936, - ""y"": 0.13445810973644257, - ""z"": 0.1272566169500351, - ""w"": -0.3232197165489197 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_ThumbsUp JSON - - private const string ArticulatedHandPose_ThumbsUp = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": -0.01725071482360363, - ""y"": -0.08121182024478913, - ""z"": -0.47676876187324526 - }, - ""rotation"": { - ""x"": 0.0, - ""y"": 0.0, - ""z"": 0.0, - ""w"": 0.0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.08615099638700485, - ""y"": -0.024168234318494798, - ""z"": 0.034818120300769809 - }, - ""rotation"": { - ""x"": -0.24332590401172639, - ""y"": 0.6052875518798828, - ""z"": 0.5141062140464783, - ""w"": -0.5566452741622925 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.03520287200808525, - ""y"": -0.010816145688295365, - ""z"": 0.04648737236857414 - }, - ""rotation"": { - ""x"": -0.24332590401172639, - ""y"": 0.6052875518798828, - ""z"": 0.5141062140464783, - ""w"": -0.5566452741622925 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.06692907959222794, - ""y"": -0.0030839829705655576, - ""z"": 0.020349422469735147 - }, - ""rotation"": { - ""x"": 0.39406728744506838, - ""y"": 0.7213952541351318, - ""z"": 0.33115363121032717, - ""w"": -0.46385547518730166 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.048644911497831348, - ""y"": 0.034663256257772449, - ""z"": 0.004639927297830582 - }, - ""rotation"": { - ""x"": 0.34302714467048647, - ""y"": 0.719179630279541, - ""z"": 0.2980014383792877, - ""w"": -0.5261238217353821 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.030924495309591295, - ""y"": 0.05998371168971062, - ""z"": -0.004000300541520119 - }, - ""rotation"": { - ""x"": 0.4403221607208252, - ""y"": 0.6942930817604065, - ""z"": 0.3865111470222473, - ""w"": -0.4186002314090729 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": 0.02607334591448307, - ""y"": 0.07819978147745133, - ""z"": -0.011070644482970238 - }, - ""rotation"": { - ""x"": 0.4403221607208252, - ""y"": 0.6942930817604065, - ""z"": 0.3865111470222473, - ""w"": -0.4186002314090729 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.06430374830961228, - ""y"": -0.01019766554236412, - ""z"": 0.02929815649986267 - }, - ""rotation"": { - ""x"": -0.22792501747608186, - ""y"": 0.6316274404525757, - ""z"": 0.5866482257843018, - ""w"": -0.45270389318466189 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.011573880910873413, - ""y"": 0.02339656837284565, - ""z"": 0.03546718880534172 - }, - ""rotation"": { - ""x"": 0.3942926526069641, - ""y"": -0.7424762845039368, - ""z"": -0.21414896845817567, - ""w"": 0.49741214513778689 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": -0.021892068907618524, - ""y"": 0.020658958703279496, - ""z"": 0.020219745114445688 - }, - ""rotation"": { - ""x"": 0.5834210515022278, - ""y"": -0.7061115503311157, - ""z"": 0.3634859323501587, - ""w"": 0.17027443647384644 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.017463261261582376, - ""y"": 0.00348295527510345, - ""z"": 0.0038637774996459486 - }, - ""rotation"": { - ""x"": 0.6371655464172363, - ""y"": -0.4360961318016052, - ""z"": 0.6206539869308472, - ""w"": -0.13840782642364503 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": -0.001938387518748641, - ""y"": -0.0027357139624655248, - ""z"": 0.0005815188633278012 - }, - ""rotation"": { - ""x"": 0.6371655464172363, - ""y"": -0.4360961318016052, - ""z"": 0.6206539869308472, - ""w"": -0.13840782642364503 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.06397924572229386, - ""y"": -0.016921602189540864, - ""z"": 0.03521520271897316 - }, - ""rotation"": { - ""x"": -0.16760338842868806, - ""y"": 0.5928976535797119, - ""z"": 0.5015624761581421, - ""w"": -0.6073026657104492 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.01083554606884718, - ""y"": 0.006482137367129326, - ""z"": 0.049619730561971667 - }, - ""rotation"": { - ""x"": 0.5027921199798584, - ""y"": -0.7059369087219238, - ""z"": -0.16476257145404817, - ""w"": 0.4708792269229889 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": -0.025254713371396066, - ""y"": -0.003984889946877956, - ""z"": 0.02779259905219078 - }, - ""rotation"": { - ""x"": 0.6809582710266113, - ""y"": -0.6233372688293457, - ""z"": 0.3824990391731262, - ""w"": -0.039771441370248798 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.00917090568691492, - ""y"": -0.015904264524579049, - ""z"": 0.007921875454485417 - }, - ""rotation"": { - ""x"": 0.6229440569877625, - ""y"": -0.2391648292541504, - ""z"": 0.642637312412262, - ""w"": -0.37781840562820437 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.008252275176346302, - ""y"": -0.013008372858166695, - ""z"": 0.009888304397463799 - }, - ""rotation"": { - ""x"": 0.6229440569877625, - ""y"": -0.2391648292541504, - ""z"": 0.642637312412262, - ""w"": -0.37781840562820437 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.06303475052118302, - ""y"": -0.02612213045358658, - ""z"": 0.04269380867481232 - }, - ""rotation"": { - ""x"": -0.18103565275669099, - ""y"": 0.5941647887229919, - ""z"": 0.39771339297294619, - ""w"": -0.6752913594245911 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.010207276791334153, - ""y"": -0.013390008360147477, - ""z"": 0.055441394448280337 - }, - ""rotation"": { - ""x"": 0.5632884502410889, - ""y"": -0.6713510751724243, - ""z"": -0.15870888531208039, - ""w"": 0.45477786660194399 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": -0.01994304731488228, - ""y"": -0.024818312376737596, - ""z"": 0.03496982902288437 - }, - ""rotation"": { - ""x"": 0.7331446409225464, - ""y"": -0.5462665557861328, - ""z"": 0.3692132830619812, - ""w"": -0.16697438061237336 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": -0.0031065356452018024, - ""y"": -0.028507214039564134, - ""z"": 0.019337791949510576 - }, - ""rotation"": { - ""x"": 0.6351615786552429, - ""y"": -0.23133434355258943, - ""z"": 0.5935887098312378, - ""w"": -0.43731656670570376 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.015546157956123352, - ""y"": -0.023027585819363595, - ""z"": 0.021024812012910844 - }, - ""rotation"": { - ""x"": 0.6351615786552429, - ""y"": -0.23133434355258943, - ""z"": 0.5935887098312378, - ""w"": -0.43731656670570376 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.06254640221595764, - ""y"": -0.034929849207401279, - ""z"": 0.04593820124864578 - }, - ""rotation"": { - ""x"": -0.19249169528484345, - ""y"": 0.581859290599823, - ""z"": 0.2601516842842102, - ""w"": -0.7461285591125488 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.009921858087182045, - ""y"": -0.03408779203891754, - ""z"": 0.05945640057325363 - }, - ""rotation"": { - ""x"": 0.6286200881004334, - ""y"": -0.6190594434738159, - ""z"": -0.18423764407634736, - ""w"": 0.43321672081947329 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": -0.007876850664615631, - ""y"": -0.041423700749874118, - ""z"": 0.04655241593718529 - }, - ""rotation"": { - ""x"": 0.7744045257568359, - ""y"": -0.5470465421676636, - ""z"": 0.2698802649974823, - ""w"": -0.1682688444852829 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0036155348643660547, - ""y"": -0.042087383568286899, - ""z"": 0.03132062032818794 - }, - ""rotation"": { - ""x"": 0.7368069291114807, - ""y"": -0.19751593470573426, - ""z"": 0.4435950815677643, - ""w"": -0.47120407223701479 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.016652610152959825, - ""y"": -0.034032851457595828, - ""z"": 0.02879030816257 - }, - ""rotation"": { - ""x"": 0.7368069291114807, - ""y"": -0.19751593470573426, - ""z"": 0.4435950815677643, - ""w"": -0.47120407223701479 - } - } - } - ] - }"; - - #endregion - - #region ArticulatedHandPose_Victory JSON - - private const string ArticulatedHandPose_Victory = @" - { - ""items"": [ - { - ""joint"": ""None"", - ""pose"": { - ""position"": { - ""x"": 0.0021753902547061445, - ""y"": -0.13046418130397798, - ""z"": -0.45588064193725588 - }, - ""rotation"": { - ""x"": 0.0, - ""y"": 0.0, - ""z"": 0.0, - ""w"": 0.0 - } - } - }, - { - ""joint"": ""Wrist"", - ""pose"": { - ""position"": { - ""x"": 0.07915662229061127, - ""y"": -0.13887012004852296, - ""z"": -0.010340530425310135 - }, - ""rotation"": { - ""x"": -0.5914298295974731, - ""y"": -0.2676140367984772, - ""z"": -0.06283169984817505, - ""w"": 0.7577439546585083 - } - } - }, - { - ""joint"": ""Palm"", - ""pose"": { - ""position"": { - ""x"": 0.06830108910799027, - ""y"": -0.09366560727357865, - ""z"": -0.0000256318598985672 - }, - ""rotation"": { - ""x"": -0.5914298295974731, - ""y"": -0.2676140367984772, - ""z"": -0.06283169984817505, - ""w"": 0.7577439546585083 - } - } - }, - { - ""joint"": ""ThumbMetacarpalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.05787024274468422, - ""y"": -0.12883375585079194, - ""z"": -0.005382232367992401 - }, - ""rotation"": { - ""x"": 0.4801919758319855, - ""y"": -0.04491055756807327, - ""z"": -0.7443504333496094, - ""w"": -0.4627794027328491 - } - } - }, - { - ""joint"": ""ThumbProximalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.030012525618076326, - ""y"": -0.10770050436258316, - ""z"": 0.016813457012176515 - }, - ""rotation"": { - ""x"": 0.312323659658432, - ""y"": -0.2742984890937805, - ""z"": -0.6935320496559143, - ""w"": -0.5894817113876343 - } - } - }, - { - ""joint"": ""ThumbDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.026396021246910096, - ""y"": -0.08305369317531586, - ""z"": 0.03835996612906456 - }, - ""rotation"": { - ""x"": 0.26157766580581667, - ""y"": -0.3302468955516815, - ""z"": -0.6686716675758362, - ""w"": -0.6136223673820496 - } - } - }, - { - ""joint"": ""ThumbTip"", - ""pose"": { - ""position"": { - ""x"": 0.027343440800905229, - ""y"": -0.07000578194856644, - ""z"": 0.04939644783735275 - }, - ""rotation"": { - ""x"": 0.26157766580581667, - ""y"": -0.3302468955516815, - ""z"": -0.6686716675758362, - ""w"": -0.6136223673820496 - } - } - }, - { - ""joint"": ""IndexMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.06611358374357224, - ""y"": -0.12426556646823883, - ""z"": -0.0055283233523368839 - }, - ""rotation"": { - ""x"": -0.5613270998001099, - ""y"": -0.42208683490753176, - ""z"": -0.06766947358846665, - ""w"": 0.7086432576179504 - } - } - }, - { - ""joint"": ""IndexKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.034438081085681918, - ""y"": -0.0725482851266861, - ""z"": -0.004708992317318916 - }, - ""rotation"": { - ""x"": -0.6286489963531494, - ""y"": -0.2787279188632965, - ""z"": 0.040076885372400287, - ""w"": 0.7249277830123901 - } - } - }, - { - ""joint"": ""IndexMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.015563697554171086, - ""y"": -0.03562714159488678, - ""z"": -0.0024565430358052255 - }, - ""rotation"": { - ""x"": -0.6645650863647461, - ""y"": -0.2075067013502121, - ""z"": 0.10458821058273316, - ""w"": 0.7102522253990173 - } - } - }, - { - ""joint"": ""IndexDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.005756473168730736, - ""y"": -0.015270628966391087, - ""z"": -0.0017626225017011166 - }, - ""rotation"": { - ""x"": -0.6223592162132263, - ""y"": -0.24349386990070344, - ""z"": 0.01842544600367546, - ""w"": 0.7439839839935303 - } - } - }, - { - ""joint"": ""IndexTip"", - ""pose"": { - ""position"": { - ""x"": 0.00011674128472805023, - ""y"": -0.0018588211387395859, - ""z"": -0.00020025699632242322 - }, - ""rotation"": { - ""x"": -0.6223592162132263, - ""y"": -0.24349386990070344, - ""z"": 0.01842544600367546, - ""w"": 0.7439839839935303 - } - } - }, - { - ""joint"": ""MiddleMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.07268297672271729, - ""y"": -0.12254584580659867, - ""z"": -0.004201311618089676 - }, - ""rotation"": { - ""x"": -0.6534333825111389, - ""y"": -0.22906279563903809, - ""z"": -0.018352244049310685, - ""w"": 0.7212615013122559 - } - } - }, - { - ""joint"": ""MiddleKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.054447855800390246, - ""y"": -0.06595612317323685, - ""z"": -0.0017550308257341385 - }, - ""rotation"": { - ""x"": -0.5899049043655396, - ""y"": -0.16088859736919404, - ""z"": -0.018363818526268007, - ""w"": 0.7910826206207275 - } - } - }, - { - ""joint"": ""MiddleMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.04355549067258835, - ""y"": -0.022029317915439607, - ""z"": 0.010043984279036522 - }, - ""rotation"": { - ""x"": -0.6020974516868591, - ""y"": -0.14070262014865876, - ""z"": -0.036361001431941989, - ""w"": 0.7852000594139099 - } - } - }, - { - ""joint"": ""MiddleDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.03923114016652107, - ""y"": 0.0012873951345682145, - ""z"": 0.015791211277246476 - }, - ""rotation"": { - ""x"": -0.5366969108581543, - ""y"": -0.17153941094875337, - ""z"": -0.09987709671258927, - ""w"": 0.8206644058227539 - } - } - }, - { - ""joint"": ""MiddleTip"", - ""pose"": { - ""position"": { - ""x"": 0.03647539019584656, - ""y"": 0.015714645385742189, - ""z"": 0.021557386964559556 - }, - ""rotation"": { - ""x"": -0.5366969108581543, - ""y"": -0.17153941094875337, - ""z"": -0.09987709671258927, - ""w"": 0.8206644058227539 - } - } - }, - { - ""joint"": ""RingMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.08137646317481995, - ""y"": -0.11985518038272858, - ""z"": -0.00190657377243042 - }, - ""rotation"": { - ""x"": -0.6267969012260437, - ""y"": -0.10518965870141983, - ""z"": 0.02498382329940796, - ""w"": 0.7716453075408936 - } - } - }, - { - ""joint"": ""RingKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.07067620009183884, - ""y"": -0.06669728457927704, - ""z"": 0.008708799257874489 - }, - ""rotation"": { - ""x"": 0.40646883845329287, - ""y"": 0.1807955503463745, - ""z"": 0.030094729736447336, - ""w"": -0.8951042294502258 - } - } - }, - { - ""joint"": ""RingMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.060088954865932468, - ""y"": -0.04056686535477638, - ""z"": 0.03008754923939705 - }, - ""rotation"": { - ""x"": -0.2107616662979126, - ""y"": 0.18913404643535615, - ""z"": -0.04620787873864174, - ""w"": -0.9580028653144836 - } - } - }, - { - ""joint"": ""RingDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.0528024360537529, - ""y"": -0.0495174415409565, - ""z"": 0.047927625477313998 - }, - ""rotation"": { - ""x"": -0.449715256690979, - ""y"": 0.15903393924236298, - ""z"": -0.020673276856541635, - ""w"": -0.8789007067680359 - } - } - }, - { - ""joint"": ""RingTip"", - ""pose"": { - ""position"": { - ""x"": 0.048170287162065509, - ""y"": -0.06364263594150543, - ""z"": 0.05758979544043541 - }, - ""rotation"": { - ""x"": -0.449715256690979, - ""y"": 0.15903393924236298, - ""z"": -0.020673276856541635, - ""w"": -0.8789007067680359 - } - } - }, - { - ""joint"": ""PinkyMetacarpal"", - ""pose"": { - ""position"": { - ""x"": 0.08909709751605988, - ""y"": -0.11985252797603607, - ""z"": 0.001964922994375229 - }, - ""rotation"": { - ""x"": -0.5780324339866638, - ""y"": -0.0013396204449236394, - ""z"": 0.06318691372871399, - ""w"": 0.8135625720024109 - } - } - }, - { - ""joint"": ""PinkyKnuckle"", - ""pose"": { - ""position"": { - ""x"": 0.0851951465010643, - ""y"": -0.07107751816511154, - ""z"": 0.019172409549355508 - }, - ""rotation"": { - ""x"": 0.31776368618011477, - ""y"": 0.2502634525299072, - ""z"": 0.05463750660419464, - ""w"": -0.9129235744476318 - } - } - }, - { - ""joint"": ""PinkyMiddleJoint"", - ""pose"": { - ""position"": { - ""x"": 0.07433749735355377, - ""y"": -0.055455759167671207, - ""z"": 0.03647337108850479 - }, - ""rotation"": { - ""x"": -0.17528946697711945, - ""y"": 0.2344343513250351, - ""z"": 0.019245747476816179, - ""w"": -0.9560556411743164 - } - } - }, - { - ""joint"": ""PinkyDistalJoint"", - ""pose"": { - ""position"": { - ""x"": 0.06645255535840988, - ""y"": -0.06111001968383789, - ""z"": 0.050835996866226199 - }, - ""rotation"": { - ""x"": -0.4488738477230072, - ""y"": 0.26990553736686709, - ""z"": 0.08396486192941666, - ""w"": -0.8479632139205933 - } - } - }, - { - ""joint"": ""PinkyTip"", - ""pose"": { - ""position"": { - ""x"": 0.05911727994680405, - ""y"": -0.07095448672771454, - ""z"": 0.05705229192972183 - }, - ""rotation"": { - ""x"": -0.4488738477230072, - ""y"": 0.26990553736686709, - ""z"": 0.08396486192941666, - ""w"": -0.8479632139205933 - } - } - } - ] - }"; - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs.meta deleted file mode 100644 index 9e367bfe8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedArticulatedHandPoses.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b9bffdbe0d7b54944a0f9446c590c088 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs deleted file mode 100644 index 543c5b7cd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs +++ /dev/null @@ -1,234 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -/// -/// Provides per-frame data access to simulated controller data -/// -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Internal class to define current state of a controller. - /// - internal abstract class SimulatedControllerState - { - protected Handedness handedness = Handedness.None; - public Handedness Handedness => handedness; - - // Show a tracked controller - public bool IsTracked = false; - - // Position of the controller in viewport space - public Vector3 ViewportPosition = Vector3.zero; - // Rotation of the controller relative to the camera - public Vector3 ViewportRotation = Vector3.zero; - // Random offset to simulate tracking inaccuracy - public Vector3 JitterOffset = Vector3.zero; - - protected float viewportPositionZTarget; - protected readonly float smoothScrollSpeed = 5f; - - public SimulatedControllerState(Handedness _handedness) - { - handedness = _handedness; - } - - public void SimulateInput(MouseDelta mouseDelta, bool useMouseRotation, float rotationSensitivity, float rotationScale, float noiseAmount) - { - if (useMouseRotation) - { - Vector3 rotationDeltaEulerAngles = Vector3.zero; - rotationDeltaEulerAngles.x += -mouseDelta.screenDelta.y * rotationSensitivity; - rotationDeltaEulerAngles.y += mouseDelta.screenDelta.x * rotationSensitivity; - rotationDeltaEulerAngles.z += mouseDelta.screenDelta.z * rotationSensitivity; - rotationDeltaEulerAngles *= rotationScale; - - ViewportRotation = ViewportRotation + rotationDeltaEulerAngles; - } - else - { - ViewportPosition.x += mouseDelta.viewportDelta.x; - ViewportPosition.y += mouseDelta.viewportDelta.y; - viewportPositionZTarget += mouseDelta.viewportDelta.z; - } - - JitterOffset = Random.insideUnitSphere * noiseAmount; - } - - /// - /// Resets simulated controller position. - /// - /// The position to reset controller to. - public void ResetPosition(Vector3 resetTo) - { - ViewportPosition = resetTo; - viewportPositionZTarget = ViewportPosition.z; - } - - /// - /// Resets simulated controller rotation. - /// - public abstract void ResetRotation(); - - /// - /// Update information about the controller state or position. - /// - internal void Update() - { - ViewportPosition.z = Mathf.Lerp(ViewportPosition.z, viewportPositionZTarget, smoothScrollSpeed * Time.deltaTime); - } - - } - - /// - /// Produces simulated data every frame that defines the position and rotation of the simulated controller. - /// - public abstract class SimulatedControllerDataProvider - { - protected MixedRealityInputSimulationProfile profile; - - /// - /// If true then the left controller is always visible, regardless of simulating. - /// - public bool IsAlwaysVisibleLeft = false; - /// - /// If true then the right controller is always visible, regardless of simulating. - /// - public bool IsAlwaysVisibleRight = false; - - internal SimulatedControllerState InputStateLeft; - internal SimulatedControllerState InputStateRight; - internal SimulatedControllerState InputStateGaze; - - private bool isSimulatingGaze => !IsSimulatingLeft && !IsSimulatingRight && !IsAlwaysVisibleLeft && !IsAlwaysVisibleRight && !DeviceUtility.IsPresent; - /// - /// Left controller is controlled by user input. - /// - public bool IsSimulatingLeft { get; private set; } = false; - /// - /// Right controller is controlled by user input. - /// - public bool IsSimulatingRight { get; private set; } = false; - - // Most recent time controller control was enabled, - protected float lastSimulationLeft = -1.0e6f; - protected float lastSimulationRight = -1.0e6f; - protected float lastSimulationGaze = -1.0e6f; - // Last timestamp when controllers were tracked - protected long lastInputTrackedTimestampLeft = 0; - protected long lastInputTrackedTimestampRight = 0; - protected long lastInputTrackedTimestampGaze = 0; - - protected static readonly KeyBinding cancelRotationKey = KeyBinding.FromKey(KeyCode.Escape); - protected readonly MouseRotationProvider mouseRotation = new MouseRotationProvider(); - - public SimulatedControllerDataProvider(MixedRealityInputSimulationProfile _profile) - { - profile = _profile; - } - - /// - /// Update controller state based on keyboard and mouse input - /// - protected virtual void SimulateUserInput(MouseDelta mouseDelta) - { - float time = Time.time; - - if (KeyInputSystem.GetKeyDown(profile.ToggleLeftControllerKey)) - { - IsAlwaysVisibleLeft = !IsAlwaysVisibleLeft; - } - if (KeyInputSystem.GetKeyDown(profile.ToggleRightControllerKey)) - { - IsAlwaysVisibleRight = !IsAlwaysVisibleRight; - } - - if (!Application.isFocused && !KeyInputSystem.SimulatingInput) - { - IsSimulatingLeft = false; - IsSimulatingRight = false; - } - else - { - if (KeyInputSystem.GetKeyDown(profile.LeftControllerManipulationKey)) - { - IsSimulatingLeft = true; - if (lastSimulationLeft > 0.0f && time - lastSimulationLeft <= profile.DoublePressTime) - { - IsAlwaysVisibleLeft = !IsAlwaysVisibleLeft; - } - lastSimulationLeft = time; - } - if (KeyInputSystem.GetKeyUp(profile.LeftControllerManipulationKey)) - { - IsSimulatingLeft = false; - } - - if (KeyInputSystem.GetKeyDown(profile.RightControllerManipulationKey)) - { - IsSimulatingRight = true; - if (lastSimulationRight > 0.0f && time - lastSimulationRight <= profile.DoublePressTime) - { - IsAlwaysVisibleRight = !IsAlwaysVisibleRight; - } - lastSimulationRight = time; - } - if (KeyInputSystem.GetKeyUp(profile.RightControllerManipulationKey)) - { - IsSimulatingRight = false; - } - if (isSimulatingGaze) - { - lastSimulationGaze = time; - } - } - - mouseRotation.Update(profile.ControllerRotateButton, cancelRotationKey, false); - - SimulateInput(ref lastInputTrackedTimestampLeft, InputStateLeft, IsSimulatingLeft, IsAlwaysVisibleLeft, mouseDelta, mouseRotation.IsRotating); - SimulateInput(ref lastInputTrackedTimestampRight, InputStateRight, IsSimulatingRight, IsAlwaysVisibleRight, mouseDelta, mouseRotation.IsRotating); - SimulateInput(ref lastInputTrackedTimestampGaze, InputStateGaze, isSimulatingGaze, false, mouseDelta, mouseRotation.IsRotating); - - } - - /// Apply changes to one controller and update tracking - internal abstract void SimulateInput( - ref long lastHandTrackedTimestamp, - SimulatedControllerState state, - bool isSimulating, - bool isAlwaysVisible, - MouseDelta mouseDelta, - bool useMouseRotation); - - /// - /// Reset the controller to its default state. - /// - public void ResetInput(Handedness handedness) - { - if (handedness == Handedness.Left) - { - ResetInput(InputStateLeft, IsSimulatingLeft); - } - else - { - ResetInput(InputStateRight, IsSimulatingRight); - } - } - - internal virtual void ResetInput(SimulatedControllerState state, bool isSimulating) - { - if (isSimulating) - { - // Start at current mouse position - Vector3 mousePos = UnityEngine.Input.mousePosition; - state.ResetPosition(CameraCache.Main.ScreenToViewportPoint(new Vector3(mousePos.x, mousePos.y, profile.DefaultControllerDistance))); - } - else - { - state.ResetPosition(new Vector3(0.5f, 0.5f, profile.DefaultControllerDistance)); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs.meta deleted file mode 100644 index 7bbefb0c4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedControllerDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c3d1fa4536cc8ee43816cf61c24aea3e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs deleted file mode 100644 index e760aa136..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs +++ /dev/null @@ -1,336 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [MixedRealityController( - SupportedControllerType.GGVHand, - new[] { Handedness.Left, Handedness.Right, Handedness.None })] - public class SimulatedGestureHand : SimulatedHand - { - /// - public override ControllerSimulationMode SimulationMode => ControllerSimulationMode.HandGestures; - - private bool initializedFromProfile = false; - private MixedRealityInputAction holdAction = MixedRealityInputAction.None; - private MixedRealityInputAction navigationAction = MixedRealityInputAction.None; - private MixedRealityInputAction manipulationAction = MixedRealityInputAction.None; - private MixedRealityInputAction selectAction = MixedRealityInputAction.None; - private bool useRailsNavigation = false; - float holdStartDuration = 0.0f; - float navigationStartThreshold = 0.0f; - - private float SelectDownStartTime = 0.0f; - private bool holdInProgress = false; - private bool manipulationInProgress = false; - private bool navigationInProgress = false; - private Vector3 currentRailsUsed = Vector3.one; - private Vector3 currentPosition = Vector3.zero; - private Vector3 cumulativeDelta = Vector3.zero; - private MixedRealityPose currentGripPose = MixedRealityPose.ZeroIdentity; - - private Vector3 NavigationDelta => new Vector3( - Mathf.Clamp(cumulativeDelta.x, -1.0f, 1.0f) * currentRailsUsed.x, - Mathf.Clamp(cumulativeDelta.y, -1.0f, 1.0f) * currentRailsUsed.y, - Mathf.Clamp(cumulativeDelta.z, -1.0f, 1.0f) * currentRailsUsed.z); - - /// - /// Constructor. - /// - public SimulatedGestureHand( - TrackingState trackingState, - Handedness controllerHandedness, - IMixedRealityInputSource inputSource = null, - MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// Lazy-init settings based on profile. - /// This cannot happen in the constructor because the profile may not exist yet. - private void EnsureProfileSettings() - { - if (initializedFromProfile) - { - return; - } - initializedFromProfile = true; - - MixedRealityGesturesProfile gestureProfile = null; - MixedRealityInputSystemProfile inputSystemProfile = CoreServices.InputSystem?.InputSystemProfile; - if (inputSystemProfile != null) - { - gestureProfile = inputSystemProfile.GesturesProfile; - } - if (gestureProfile != null) - { - for (int i = 0; i < gestureProfile.Gestures.Length; i++) - { - var gesture = gestureProfile.Gestures[i]; - switch (gesture.GestureType) - { - case GestureInputType.Hold: - holdAction = gesture.Action; - break; - case GestureInputType.Manipulation: - manipulationAction = gesture.Action; - break; - case GestureInputType.Navigation: - navigationAction = gesture.Action; - break; - case GestureInputType.Select: - selectAction = gesture.Action; - break; - } - } - - useRailsNavigation = gestureProfile.UseRailsNavigation; - } - - MixedRealityInputSimulationProfile inputSimProfile = CoreServices.GetInputSystemDataProvider()?.InputSimulationProfile; - if (inputSimProfile != null) - { - holdStartDuration = inputSimProfile.HoldStartDuration; - navigationStartThreshold = inputSimProfile.NavigationStartThreshold; - } - } - - - /// - /// The GGV default interactions. - /// - /// A single interaction mapping works for both left and right controllers. - public override MixedRealityInteractionMapping[] DefaultInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Select", AxisType.Digital, DeviceInputType.Select), - new MixedRealityInteractionMapping(1, "Grip Pose", AxisType.SixDof, DeviceInputType.SpatialGrip), - }; - - /// - protected override void UpdateInteractions(SimulatedHandData handData) - { - EnsureProfileSettings(); - - Vector3 lastPosition = currentPosition; - currentPosition = jointPoses[TrackedHandJoint.IndexTip].Position; - cumulativeDelta += currentPosition - lastPosition; - currentGripPose.Position = currentPosition; - - if (lastPosition != currentPosition) - { - CoreServices.InputSystem?.RaiseSourcePositionChanged(InputSource, this, currentPosition); - } - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.SpatialGrip: - Interactions[i].PoseData = currentGripPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, currentGripPose); - } - break; - case DeviceInputType.Select: - Interactions[i].BoolData = handData.IsPinching; - if (Interactions[i].Changed) - { - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - - SelectDownStartTime = Time.time; - cumulativeDelta = Vector3.zero; - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - - // Stop active gestures - TryCompleteSelect(); - TryCompleteHold(); - TryCompleteManipulation(); - TryCompleteNavigation(); - } - } - else if (Interactions[i].BoolData) - { - if (manipulationInProgress) - { - UpdateManipulation(); - } - if (navigationInProgress) - { - UpdateNavigation(); - } - - if (cumulativeDelta.magnitude > navigationStartThreshold) - { - TryCancelHold(); - TryStartNavigation(); - TryStartManipulation(); - } - else if (Time.time >= SelectDownStartTime + holdStartDuration) - { - TryStartHold(); - } - } - break; - } - } - } - - private bool TryStartHold() - { - if (!holdInProgress) - { - CoreServices.InputSystem?.RaiseGestureStarted(this, holdAction); - holdInProgress = true; - return true; - } - return false; - } - - private bool TryCompleteHold() - { - if (holdInProgress) - { - CoreServices.InputSystem?.RaiseGestureCompleted(this, holdAction); - holdInProgress = false; - return true; - } - return false; - } - - private bool TryCancelHold() - { - if (holdInProgress) - { - CoreServices.InputSystem?.RaiseGestureCanceled(this, holdAction); - holdInProgress = false; - return true; - } - return false; - } - - private bool TryStartManipulation() - { - if (!manipulationInProgress) - { - CoreServices.InputSystem?.RaiseGestureStarted(this, manipulationAction); - manipulationInProgress = true; - return true; - } - return false; - } - - private void UpdateManipulation() - { - if (manipulationInProgress) - { - CoreServices.InputSystem?.RaiseGestureUpdated(this, manipulationAction, cumulativeDelta); - } - } - - private bool TryCompleteManipulation() - { - if (manipulationInProgress) - { - CoreServices.InputSystem?.RaiseGestureCompleted(this, manipulationAction, cumulativeDelta); - manipulationInProgress = false; - return true; - } - return false; - } - - private bool TryCancelManipulation() - { - if (manipulationInProgress) - { - CoreServices.InputSystem?.RaiseGestureCanceled(this, manipulationAction); - manipulationInProgress = false; - return true; - } - return false; - } - - private bool TryCompleteSelect() - { - if (!manipulationInProgress && !holdInProgress) - { - CoreServices.InputSystem?.RaiseGestureCompleted(this, selectAction); - return true; - } - return false; - } - - private bool TryStartNavigation() - { - if (!navigationInProgress) - { - CoreServices.InputSystem?.RaiseGestureStarted(this, navigationAction); - navigationInProgress = true; - - currentRailsUsed = Vector3.one; - UpdateNavigationRails(); - return true; - } - return false; - } - - private void UpdateNavigation() - { - if (navigationInProgress) - { - UpdateNavigationRails(); - CoreServices.InputSystem?.RaiseGestureUpdated(this, navigationAction, NavigationDelta); - } - } - - private bool TryCompleteNavigation() - { - if (navigationInProgress) - { - CoreServices.InputSystem?.RaiseGestureCompleted(this, navigationAction, NavigationDelta); - navigationInProgress = false; - return true; - } - return false; - } - - private bool TryCancelNavigation() - { - if (navigationInProgress) - { - CoreServices.InputSystem?.RaiseGestureCanceled(this, navigationAction); - navigationInProgress = false; - return true; - } - return false; - } - - // If rails are used, test the delta for largest component and limit navigation to that axis - private void UpdateNavigationRails() - { - if (useRailsNavigation && currentRailsUsed == Vector3.one) - { - if (Mathf.Abs(cumulativeDelta.x) >= navigationStartThreshold) - { - currentRailsUsed = new Vector3(1, 0, 0); - } - else if (Mathf.Abs(cumulativeDelta.y) > navigationStartThreshold) - { - currentRailsUsed = new Vector3(0, 1, 0); - } - else if (Mathf.Abs(cumulativeDelta.z) > navigationStartThreshold) - { - currentRailsUsed = new Vector3(0, 0, 1); - } - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs.meta deleted file mode 100644 index ccd5446cc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedGestureHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0c5ca92ae6bd72d4d8f7f09905357ac3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs deleted file mode 100644 index 4b8ed3adf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Snapshot of simulated hand data. - /// - [Serializable] - public class SimulatedHandData - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - [SerializeField] - private bool isTracked = false; - - /// - /// Whether the hand is currently being tracked - /// - public bool IsTracked => isTracked; - [SerializeField] - private MixedRealityPose[] joints = new MixedRealityPose[jointCount]; - - /// - /// Array storing the joints of the hand - /// - public MixedRealityPose[] Joints => joints; - [SerializeField] - private bool isPinching = false; - - /// - /// Whether the hand is pinching - /// - public bool IsPinching => isPinching; - - /// - /// Generator function producing joint positions and rotations - /// - public delegate void HandJointDataGenerator(MixedRealityPose[] jointPoses); - - public void Copy(SimulatedHandData other) - { - isTracked = other.isTracked; - isPinching = other.isPinching; - for (int i = 0; i < jointCount; ++i) - { - joints[i] = other.joints[i]; - } - } - - /// - /// Replace the hand data with the given values. - /// - /// True if the hand data has been changed. - /// True if the hand is currently tracked. - /// True if the hand is in a pinching pose that causes a "Select" action. - /// Generator function that produces joint positions and rotations. The joint data generator is only used when the hand is tracked. - /// The timestamp of the hand data will be the current time, see [DateTime.UtcNow](https://docs.microsoft.com/dotnet/api/system.datetime.utcnow?view=netframework-4.8). - public bool Update(bool isTrackedNew, bool isPinchingNew, HandJointDataGenerator generator) - { - bool handDataChanged = false; - - if (isTracked != isTrackedNew || isPinching != isPinchingNew) - { - isTracked = isTrackedNew; - isPinching = isPinchingNew; - handDataChanged = true; - } - - if (isTracked) - { - generator?.Invoke(Joints); - handDataChanged = true; - } - - return handDataChanged; - } - } - - public abstract class SimulatedHand : BaseHand - { - public abstract ControllerSimulationMode SimulationMode { get; } - - protected static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - protected readonly Dictionary jointPoses = new Dictionary(); - - /// - /// Constructor. - /// - protected SimulatedHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) { } - - /// - public override bool TryGetJoint(TrackedHandJoint joint, out MixedRealityPose pose) => jointPoses.TryGetValue(joint, out pose); - - public void UpdateState(SimulatedHandData handData) - { - for (int i = 0; i < jointCount; i++) - { - TrackedHandJoint handJoint = (TrackedHandJoint)i; - - if (!jointPoses.ContainsKey(handJoint)) - { - jointPoses.Add(handJoint, handData.Joints[i]); - } - else - { - jointPoses[handJoint] = handData.Joints[i]; - } - } - - CoreServices.InputSystem?.RaiseHandJointsUpdated(InputSource, ControllerHandedness, jointPoses); - - UpdateVelocity(); - - UpdateInteractions(handData); - } - - protected abstract void UpdateInteractions(SimulatedHandData handData); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs.meta deleted file mode 100644 index 07cdaf95b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ed01a1b1244a4ad4994f061f5bf2daa5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs deleted file mode 100644 index 113716bab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs +++ /dev/null @@ -1,322 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -/// -/// Provides per-frame data access to simulated hand data -/// -/// Controls for mouse/keyboard simulation: -/// - Press spacebar to turn right hand on/off -/// - Left mouse button brings index and thumb together -/// - Mouse moves left and right hand. -/// -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Internal class to define current gesture and smoothly animate hand data points. - /// - internal class SimulatedHandState : SimulatedControllerState - { - // Activate the pinch gesture - // Pinch is a special gesture that triggers the Select and TriggerPress input actions - // The pinch action doesn't occur until the gesture is completed. - public bool IsPinching => gesture == ArticulatedHandPose.GestureId.Pinch && gestureBlending == 1.0f; - - private ArticulatedHandPose.GestureId gesture = ArticulatedHandPose.GestureId.None; - public ArticulatedHandPose.GestureId Gesture - { - get { return gesture; } - set - { - if (value != ArticulatedHandPose.GestureId.None && value != gesture) - { - gesture = value; - gestureBlending = 0.0f; - } - } - } - - // Interpolation between current pose and target gesture - private float gestureBlending = 0.0f; - public float GestureBlending - { - get { return gestureBlending; } - set - { - gestureBlending = Mathf.Clamp(value, gestureBlending, 1.0f); - } - } - - private float poseBlending = 0.0f; - private ArticulatedHandPose pose = new ArticulatedHandPose(); - - public SimulatedHandState(Handedness _handedness) : base(_handedness) { } - - public void ResetGesture() - { - gestureBlending = 1.0f; - - ArticulatedHandPose gesturePose = SimulatedArticulatedHandPoses.GetGesturePose(gesture); - if (gesturePose != null) - { - pose.Copy(gesturePose); - } - } - - public override void ResetRotation() - { - // Use wrist joint rotation as the default - Quaternion rotationRef = pose.GetLocalJointPose(TrackedHandJoint.Wrist, handedness).Rotation; - ViewportRotation = rotationRef.eulerAngles; - } - - internal void FillCurrentFrame(MixedRealityPose[] jointsOut) - { - ArticulatedHandPose gesturePose = SimulatedArticulatedHandPoses.GetGesturePose(gesture); - if (gesturePose != null) - { - if (gestureBlending > poseBlending) - { - float range = Mathf.Clamp01(1.0f - poseBlending); - float lerpFactor = range > 0.0f ? (gestureBlending - poseBlending) / range : 1.0f; - pose.InterpolateOffsets(pose, gesturePose, lerpFactor); - } - } - poseBlending = gestureBlending; - - Vector3 screenPosition = CameraCache.Main.ViewportToScreenPoint(ViewportPosition); - Vector3 worldPosition = CameraCache.Main.ScreenToWorldPoint(screenPosition + JitterOffset); - - // Apply rotation relative to the wrist joint - Quaternion rotationRef = pose.GetLocalJointPose(TrackedHandJoint.Wrist, handedness).Rotation; - Quaternion localRotation = Quaternion.Euler(ViewportRotation) * Quaternion.Inverse(rotationRef); - - Quaternion worldRotation = CameraCache.Main.transform.rotation * localRotation; - pose.ComputeJointPoses(handedness, worldRotation, worldPosition, jointsOut); - } - } - - /// - /// Produces simulated data every frame that defines joint positions. - /// - public class SimulatedHandDataProvider : SimulatedControllerDataProvider - { - // Cached delegates for hand joint generation - private SimulatedHandData.HandJointDataGenerator generatorLeft; - private SimulatedHandData.HandJointDataGenerator generatorRight; - private SimulatedHandData.HandJointDataGenerator generatorGaze; - - public SimulatedHandDataProvider(MixedRealityInputSimulationProfile _profile) : base(_profile) - { - InputStateLeft = new SimulatedHandState(Handedness.Left); - InputStateRight = new SimulatedHandState(Handedness.Right); - InputStateGaze = new SimulatedHandState(Handedness.None); - - SimulatedHandState handStateLeft = InputStateLeft as SimulatedHandState; - SimulatedHandState handStateRight = InputStateRight as SimulatedHandState; - SimulatedHandState handStateGaze = InputStateGaze as SimulatedHandState; - - handStateLeft.Gesture = profile.DefaultHandGesture; - handStateRight.Gesture = profile.DefaultHandGesture; - handStateGaze.Gesture = profile.DefaultHandGesture; - } - - /// - /// Capture a snapshot of simulated hand data based on current state. - /// - public bool UpdateHandData(SimulatedHandData handDataLeft, SimulatedHandData handDataRight, SimulatedHandData handDataGaze, MouseDelta mouseDelta) - { - SimulateUserInput(mouseDelta); - - SimulatedHandState handStateLeft = InputStateLeft as SimulatedHandState; - SimulatedHandState handStateRight = InputStateRight as SimulatedHandState; - SimulatedHandState handStateGaze = InputStateGaze as SimulatedHandState; - - handStateLeft.Update(); - handStateRight.Update(); - handStateGaze.Update(); - - bool handDataChanged = false; - - // Cache the generator delegates so we don't gc alloc every frame - if (generatorLeft == null) - { - generatorLeft = handStateLeft.FillCurrentFrame; - } - - if (generatorRight == null) - { - generatorRight = handStateRight.FillCurrentFrame; - } - - if (generatorGaze == null) - { - generatorGaze = handStateGaze.FillCurrentFrame; - } - - handDataChanged |= handDataLeft.Update(handStateLeft.IsTracked, handStateLeft.IsPinching, generatorLeft); - handDataChanged |= handDataRight.Update(handStateRight.IsTracked, handStateRight.IsPinching, generatorRight); - handDataChanged |= handDataGaze.Update(handStateGaze.IsTracked, handStateGaze.IsPinching, generatorGaze); - - return handDataChanged; - } - - /// - /// Update hand state based on keyboard and mouse input - /// - protected override void SimulateUserInput(MouseDelta mouseDelta) - { - base.SimulateUserInput(mouseDelta); - - SimulatedHandState handStateLeft = InputStateLeft as SimulatedHandState; - SimulatedHandState handStateRight = InputStateRight as SimulatedHandState; - SimulatedHandState handStateGaze = InputStateGaze as SimulatedHandState; - - // This line explicitly uses unscaledDeltaTime because we don't want input simulation - // to lag when the time scale is set to a value other than 1. Input should still continue - // to move freely. - float gestureAnimDelta = profile.HandGestureAnimationSpeed * Time.unscaledDeltaTime; - handStateLeft.GestureBlending += gestureAnimDelta; - handStateRight.GestureBlending += gestureAnimDelta; - handStateGaze.GestureBlending = 1.0f; - } - - /// Apply changes to one hand and update tracking - internal override void SimulateInput( - ref long lastHandTrackedTimestamp, - SimulatedControllerState state, - bool isSimulating, - bool isAlwaysVisible, - MouseDelta mouseDelta, - bool useMouseRotation) - { - var handState = state as SimulatedHandState; - bool enableTracking = isAlwaysVisible || isSimulating; - if (!handState.IsTracked && enableTracking) - { - ResetInput(handState, isSimulating); - } - - if (isSimulating) - { - handState.SimulateInput(mouseDelta, useMouseRotation, profile.MouseRotationSensitivity, profile.MouseControllerRotationSpeed, profile.ControllerJitterAmount); - - if (isAlwaysVisible) - { - // Toggle gestures on/off - handState.Gesture = ToggleGesture(handState.Gesture); - } - else - { - // Enable gesture while mouse button is pressed - handState.Gesture = SelectGesture(); - } - } - - // Update tracked state of a hand. - // If hideTimeout value is null, hands will stay visible after tracking stops. - // TODO: DateTime.UtcNow can be quite imprecise, better use Stopwatch.GetTimestamp - // https://stackoverflow.com/questions/2143140/c-sharp-datetime-now-precision - DateTime currentTime = DateTime.UtcNow; - if (enableTracking) - { - handState.IsTracked = true; - lastHandTrackedTimestamp = currentTime.Ticks; - } - else - { - float timeSinceTracking = (float)currentTime.Subtract(new DateTime(lastHandTrackedTimestamp)).TotalSeconds; - if (timeSinceTracking > profile.ControllerHideTimeout) - { - handState.IsTracked = false; - } - } - } - - internal override void ResetInput(SimulatedControllerState state, bool isSimulating) - { - base.ResetInput(state, isSimulating); - - var handState = state as SimulatedHandState; - - handState.Gesture = profile.DefaultHandGesture; - handState.ResetGesture(); - handState.ResetRotation(); - } - - /// - /// Gets the currently active gesture, according to the mouse configuration and mouse button that is down. - /// - private ArticulatedHandPose.GestureId SelectGesture() - { - // Each check needs to verify that both: - // 1) The corresponding mouse button is down (meaning the gesture, if defined, should be used) - // 2) The gesture is defined. - // If only #1 is checked and #2 is not checked, it's possible to "miss" transitions in cases where the user has - // the left mouse button down and then while it is down, presses the right button, and then lifts the left. - // It's not until both mouse buttons lift in that case, that the state finally "rests" to the DefaultHandGesture. - if (KeyInputSystem.GetKey(profile.InteractionButton) && profile.LeftMouseHandGesture != ArticulatedHandPose.GestureId.None) - { - return profile.LeftMouseHandGesture; - } - else if (KeyInputSystem.GetKey(profile.MouseLookButton) && profile.RightMouseHandGesture != ArticulatedHandPose.GestureId.None) - { - return profile.RightMouseHandGesture; - } - else if (KeyInputSystem.GetKey(KeyBinding.FromMouseButton(KeyBinding.MouseButton.Middle)) && profile.MiddleMouseHandGesture != ArticulatedHandPose.GestureId.None) - { - return profile.MiddleMouseHandGesture; - } - else - { - return profile.DefaultHandGesture; - } - } - - private ArticulatedHandPose.GestureId ToggleGesture(ArticulatedHandPose.GestureId gesture) - { - // See comments in SelectGesture for why both the button down and gesture are checked. - if (KeyInputSystem.GetKeyDown(profile.InteractionButton) && profile.LeftMouseHandGesture != ArticulatedHandPose.GestureId.None) - { - return (gesture != profile.LeftMouseHandGesture ? profile.LeftMouseHandGesture : profile.DefaultHandGesture); - } - else if (KeyInputSystem.GetKeyDown(profile.MouseLookButton) && profile.RightMouseHandGesture != ArticulatedHandPose.GestureId.None) - { - return (gesture != profile.RightMouseHandGesture ? profile.RightMouseHandGesture : profile.DefaultHandGesture); - } - else if (KeyInputSystem.GetKeyDown(KeyBinding.FromMouseButton(KeyBinding.MouseButton.Middle)) && profile.MiddleMouseHandGesture != ArticulatedHandPose.GestureId.None) - { - return (gesture != profile.MiddleMouseHandGesture ? profile.MiddleMouseHandGesture : profile.DefaultHandGesture); - } - else - { - // 'None' will not change the gesture - return ArticulatedHandPose.GestureId.None; - } - } - - #region Obsolete Fields - [Obsolete("Use InputStateLeft instead.")] - internal SimulatedHandState HandStateLeft - { - get => InputStateLeft as SimulatedHandState; - set { InputStateLeft = value; } - } - [Obsolete("Use InputStateRight instead.")] - internal SimulatedHandState HandStateRight - { - get => InputStateRight as SimulatedHandState; - set { InputStateRight = value; } - } - [Obsolete("Use InputStateGaze instead.")] - internal SimulatedHandState HandStateGaze - { - get => InputStateGaze as SimulatedHandState; - set { InputStateGaze = value; } - } - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs.meta deleted file mode 100644 index 6799da28c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 90525e5e70d2a2a4c9db661f79d8a519 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs deleted file mode 100644 index 709e75b54..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Linq; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - public class SimulatedHandUtils - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - /// - /// Compute the rotation of each joint, with the forward vector of the rotation pointing along the joint bone, - /// and the up vector pointing up. - /// - /// The rotation of the base joints (thumb base, pinky base, etc) as well as the wrist joint is set to - /// point in the direction of palm forward. - /// - /// Assumption: the position of each joint has been copied from handData joint positions - /// - /// - /// Notes: - /// - GetPalmUpVector and GetPalmForwardVector appear to be flipped. GetPalmForwardVector appears - /// to return the vector that extends perpendicular from the palm, which might be thought of as 'up' - public static void CalculateJointRotations(Handedness handedness, Vector3[] jointPositions, Quaternion[] jointOrientationsOut) - { - const int numFingers = 5; - int[] jointsPerFinger = { 4, 5, 5, 5, 5 }; // thumb, index, middle, right, pinky - - for (int fingerIndex = 0; fingerIndex < numFingers; fingerIndex++) - { - int jointsCurrentFinger = jointsPerFinger[fingerIndex]; - int lowIndex = (int)TrackedHandJoint.ThumbMetacarpalJoint + jointsPerFinger.Take(fingerIndex).Sum(); - int highIndex = lowIndex + jointsCurrentFinger - 1; - - for (int jointStartidx = lowIndex; jointStartidx <= highIndex; jointStartidx++) - { - // If we are at the lowIndex (metacarpals) use the wrist as the previous joint. - int jointEndidx = jointStartidx == lowIndex ? (int)TrackedHandJoint.Wrist : jointStartidx - 1; - Vector3 boneForward = jointPositions[jointStartidx] - jointPositions[jointEndidx]; - Vector3 boneUp = Vector3.Cross(boneForward, GetPalmRightVector(handedness, jointPositions)); - if (boneForward.magnitude > float.Epsilon && boneUp.magnitude > float.Epsilon) - { - Quaternion jointRotation = Quaternion.LookRotation(boneForward, boneUp); - // If we are the thumb, set the up vector to be from pinky to index (right hand) or index to pinky (left hand). - if (fingerIndex == 0) - { - // Rotate the thumb by 90 degrees (-90 if left hand) about thumb forward vector. - Quaternion rotateThumb90 = Quaternion.AngleAxis(handedness == Handedness.Left ? -90 : 90, boneForward); - jointRotation = rotateThumb90 * jointRotation; - } - jointOrientationsOut[jointStartidx] = jointRotation; - } - else - { - jointOrientationsOut[jointStartidx] = Quaternion.identity; - } - } - } - jointOrientationsOut[(int)TrackedHandJoint.Palm] = Quaternion.LookRotation(GetPalmForwardVector(jointPositions), GetPalmUpVector(handedness, jointPositions)); - } - - /// - /// Gets vector corresponding to +z. - /// - public static Vector3 GetPalmForwardVector(Vector3[] jointPositions) - { - Vector3 indexBase = jointPositions[(int)TrackedHandJoint.IndexKnuckle]; - Vector3 thumbMetaCarpal = jointPositions[(int)TrackedHandJoint.ThumbMetacarpalJoint]; - - Vector3 thumbMetaCarpalToIndex = indexBase - thumbMetaCarpal; - return thumbMetaCarpalToIndex.normalized; - } - - /// - /// Gets the vector corresponding to +y. - /// - public static Vector3 GetPalmUpVector(Handedness handedness, Vector3[] jointPositions) - { - Vector3 indexBase = jointPositions[(int)TrackedHandJoint.IndexKnuckle]; - Vector3 pinkyBase = jointPositions[(int)TrackedHandJoint.PinkyKnuckle]; - Vector3 ThumbMetaCarpal = jointPositions[(int)TrackedHandJoint.ThumbMetacarpalJoint]; - - Vector3 ThumbMetaCarpalToPinky = pinkyBase - ThumbMetaCarpal; - Vector3 ThumbMetaCarpalToIndex = indexBase - ThumbMetaCarpal; - if (handedness == Handedness.Left) - { - return Vector3.Cross(ThumbMetaCarpalToPinky, ThumbMetaCarpalToIndex).normalized; - } - else - { - return Vector3.Cross(ThumbMetaCarpalToIndex, ThumbMetaCarpalToPinky).normalized; - } - } - - - public static Vector3 GetPalmRightVector(Handedness handedness, Vector3[] jointPositions) - { - Vector3 indexBase = jointPositions[(int)TrackedHandJoint.IndexKnuckle]; - Vector3 pinkyBase = jointPositions[(int)TrackedHandJoint.PinkyKnuckle]; - Vector3 thumbMetaCarpal = jointPositions[(int)TrackedHandJoint.ThumbMetacarpalJoint]; - - Vector3 thumbMetaCarpalToPinky = pinkyBase - thumbMetaCarpal; - Vector3 thumbMetaCarpalToIndex = indexBase - thumbMetaCarpal; - Vector3 thumbMetaCarpalUp = Vector3.zero; - if (handedness == Handedness.Left) - { - thumbMetaCarpalUp = Vector3.Cross(thumbMetaCarpalToPinky, thumbMetaCarpalToIndex).normalized; - } - else - { - thumbMetaCarpalUp = Vector3.Cross(thumbMetaCarpalToIndex, thumbMetaCarpalToPinky).normalized; - } - - return Vector3.Cross(thumbMetaCarpalUp, thumbMetaCarpalToIndex).normalized; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs.meta deleted file mode 100644 index b9a25c0cf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedHandUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 11b90eebb57d46d4ea6a2ba75c9eed35 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs deleted file mode 100644 index fd20052d1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Snapshot of simulated motion controller data. - /// - public class SimulatedMotionControllerData - { - [SerializeField] - private bool isTracked = false; - /// - /// Whether the motion controller is currently being tracked - /// - public bool IsTracked => isTracked; - - private SimulatedMotionControllerButtonState buttonState = new SimulatedMotionControllerButtonState(); - /// - /// States of buttons on the motion controller - /// - public SimulatedMotionControllerButtonState ButtonState => buttonState; - - /// - /// Position of the motion controller - /// - public Vector3 Position { get; set; } = Vector3.zero; - - /// - /// Rotation of the motion controller - /// - public Quaternion Rotation { get; set; } = Quaternion.identity; - - /// - /// Delegate to function updating the position and rotation of the motion controller - /// - public delegate MixedRealityPose MotionControllerPoseUpdater(); - - /// - /// Replace the motion controller data with the given values. - /// - /// True if the motion controller data has been changed. - /// True if the motion controller is currently tracked. - /// New set of states of buttons on the motion controller. - /// Delegate to function that updates the position and rotation of the motion controller. The delegate is only used when the motion controller is tracked. - /// The timestamp of the motion controller data will be the current time, see [DateTime.UtcNow](https://docs.microsoft.com/dotnet/api/system.datetime.utcnow?view=netframework-4.8). - public bool Update(bool isTrackedNew, SimulatedMotionControllerButtonState buttonStateNew, MotionControllerPoseUpdater updater) - { - bool motionControllerDataChanged = false; - - if (isTracked != isTrackedNew || buttonState != buttonStateNew) - { - isTracked = isTrackedNew; - buttonState = buttonStateNew; - motionControllerDataChanged = true; - } - - if (isTracked) - { - MixedRealityPose pose = updater(); - Position = pose.Position; - Rotation = pose.Rotation; - motionControllerDataChanged = true; - } - - return motionControllerDataChanged; - } - } - - [MixedRealityController( - SupportedControllerType.WindowsMixedReality, - new[] { Handedness.Left, Handedness.Right })] - public class SimulatedMotionController : BaseController - { - private MixedRealityPose currentPose = MixedRealityPose.ZeroIdentity; - private MixedRealityPose lastPose = MixedRealityPose.ZeroIdentity; - - /// - /// Constructor. - /// - public SimulatedMotionController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) { } - - /// - /// The simulated motion controller's default interactions. - /// - /// A single interaction mapping works for both left and right controllers. - public override MixedRealityInteractionMapping[] DefaultInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Spatial Grip", AxisType.SixDof, DeviceInputType.SpatialGrip), - new MixedRealityInteractionMapping(2, "Grip Press", AxisType.SingleAxis, DeviceInputType.TriggerPress), - new MixedRealityInteractionMapping(3, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger), - new MixedRealityInteractionMapping(4, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch), - new MixedRealityInteractionMapping(5, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select), - new MixedRealityInteractionMapping(6, "Touchpad Position", AxisType.DualAxis, DeviceInputType.Touchpad), - new MixedRealityInteractionMapping(7, "Touchpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch), - new MixedRealityInteractionMapping(8, "Touchpad Press", AxisType.Digital, DeviceInputType.TouchpadPress), - new MixedRealityInteractionMapping(9, "Menu Press", AxisType.Digital, DeviceInputType.Menu), - new MixedRealityInteractionMapping(10, "Thumbstick Position", AxisType.DualAxis, DeviceInputType.ThumbStick), - new MixedRealityInteractionMapping(11, "Thumbstick Press", AxisType.Digital, DeviceInputType.ThumbStickPress), - }; - - internal void UpdateState(SimulatedMotionControllerData motionControllerData) - { - lastPose = currentPose; - currentPose.Position = motionControllerData.Position; - currentPose.Rotation = motionControllerData.Rotation; - IsPositionAvailable = IsRotationAvailable = motionControllerData.Position != Vector3.zero; - - if (lastPose != currentPose) - { - if (IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePoseChanged(InputSource, this, currentPose); - } - } - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.SpatialPointer: - case DeviceInputType.SpatialGrip: - Interactions[i].PoseData = currentPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, currentPose); - } - break; - case DeviceInputType.Select: - Interactions[i].BoolData = motionControllerData.ButtonState.IsSelecting; - if (Interactions[i].Changed) - { - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - } - break; - case DeviceInputType.TriggerPress: - Interactions[i].FloatData = motionControllerData.ButtonState.IsGrabbing ? 1 : 0; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaiseFloatInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, motionControllerData.ButtonState.IsGrabbing ? 1 : 0); - } - break; - case DeviceInputType.Menu: - Interactions[i].BoolData = motionControllerData.ButtonState.IsPressingMenu; - if (Interactions[i].Changed) - { - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - } - break; - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs.meta deleted file mode 100644 index fe0650380..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ea68e9772f5bf1a4cbabc1b1aad5a875 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs deleted file mode 100644 index bd8ef603d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Struct storing the states of buttons on the motion controller - /// - public struct SimulatedMotionControllerButtonState : IEquatable - { - /// - /// Whether the motion controller is selecting (i.e. the trigger button is being pressed) - /// - public bool IsSelecting; - - /// - /// Whether the motion controller is grabbing (i.e. the grab button is being pressed) - /// - public bool IsGrabbing; - - /// - /// Whether the menu button on the motion controller is being pressed - /// - public bool IsPressingMenu; - - public override bool Equals(object obj) - { - if (obj is SimulatedMotionControllerButtonState state) - { - return Equals(state); - } - return false; - } - - public bool Equals(SimulatedMotionControllerButtonState state) - { - return IsSelecting == state.IsSelecting && IsGrabbing == state.IsGrabbing && IsPressingMenu == state.IsPressingMenu; - } - - public override int GetHashCode() - { - return (IsSelecting ? 1 : 0) * 100 + (IsGrabbing ? 1 : 0) * 10 + (IsPressingMenu ? 1 : 0); - } - - public static bool operator ==(SimulatedMotionControllerButtonState lhs, SimulatedMotionControllerButtonState rhs) - { - return lhs.Equals(rhs); - } - - public static bool operator !=(SimulatedMotionControllerButtonState lhs, SimulatedMotionControllerButtonState rhs) - { - return !(lhs.Equals(rhs)); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs.meta deleted file mode 100644 index 2140c1e9a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerButtonState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 235c4d6d03d7f524bbd22a07a957619c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs deleted file mode 100644 index a205c6f41..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -/// -/// Provides per-frame data access to simulated motion controller data -/// -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Internal class to define current state of a motion controller. - /// - internal class SimulatedMotionControllerState : SimulatedControllerState - { - /// - /// States of buttons on the motion controller - /// - public SimulatedMotionControllerButtonState ButtonState { get; set; } = new SimulatedMotionControllerButtonState(); - - private const float rotationXOffset = -15f; - private const float rotationYOffset = -10f; - - public SimulatedMotionControllerState(Handedness _handedness) : base(_handedness) { } - - /// - public override void ResetRotation() - { - ViewportRotation = Vector3.zero; - } - - /// - /// Resets the states of buttons on the simulated controller. - /// - public void ResetButtonStates() - { - ButtonState = new SimulatedMotionControllerButtonState(); - } - - internal MixedRealityPose UpdateControllerPose() - { - Vector3 screenPosition = CameraCache.Main.ViewportToScreenPoint(ViewportPosition); - Vector3 worldPosition = CameraCache.Main.ScreenToWorldPoint(screenPosition + JitterOffset); - - Quaternion localRotation = Quaternion.Euler(ViewportRotation); - Quaternion worldRotation = CameraCache.Main.transform.rotation * localRotation; - Vector3 eulerAngles = worldRotation.eulerAngles; - - // Create an offset to rotation to align with the behavior of simulated hand - int yOffsetSign = handedness == Handedness.Left ? -1 : 1; - Quaternion modifiedRotation = Quaternion.Euler(eulerAngles.x + rotationXOffset, eulerAngles.y + rotationYOffset * yOffsetSign, eulerAngles.z); - return new MixedRealityPose(worldPosition, modifiedRotation); - } - - } - - /// - public class SimulatedMotionControllerDataProvider : SimulatedControllerDataProvider - { - // Cached delegates for position and rotation update - private SimulatedMotionControllerData.MotionControllerPoseUpdater updaterLeft; - private SimulatedMotionControllerData.MotionControllerPoseUpdater updaterRight; - - public SimulatedMotionControllerDataProvider(MixedRealityInputSimulationProfile _profile) : base(_profile) - { - InputStateLeft = new SimulatedMotionControllerState(Handedness.Left); - InputStateRight = new SimulatedMotionControllerState(Handedness.Right); - } - - /// - internal override void SimulateInput(ref long lastMotionControllerTrackedTimestamp, SimulatedControllerState state, bool isSimulating, bool isAlwaysVisible, MouseDelta mouseDelta, bool useMouseRotation) - { - var motionControllerState = state as SimulatedMotionControllerState; - if (motionControllerState == null) - { - return; - } - bool enableTracking = isAlwaysVisible || isSimulating; - if (!motionControllerState.IsTracked && enableTracking) - { - ResetInput(motionControllerState, isSimulating); - } - if (isSimulating) - { - motionControllerState.SimulateInput(mouseDelta, useMouseRotation, profile.MouseRotationSensitivity, profile.MouseControllerRotationSpeed, profile.ControllerJitterAmount); - - motionControllerState.ButtonState = new SimulatedMotionControllerButtonState - { - IsSelecting = KeyInputSystem.GetKey(profile.MotionControllerTriggerKey), - IsGrabbing = KeyInputSystem.GetKey(profile.MotionControllerGrabKey), - IsPressingMenu = KeyInputSystem.GetKey(profile.MotionControllerMenuKey) - }; - } - - // Update tracked state of a motion controller. - // If hideTimeout value is null, motion controllers will stay visible after tracking stops. - // TODO: DateTime.UtcNow can be quite imprecise, better use Stopwatch.GetTimestamp - // https://stackoverflow.com/questions/2143140/c-sharp-datetime-now-precision - DateTime currentTime = DateTime.UtcNow; - if (enableTracking) - { - motionControllerState.IsTracked = true; - lastMotionControllerTrackedTimestamp = currentTime.Ticks; - } - else - { - float timeSinceTracking = (float)currentTime.Subtract(new DateTime(lastMotionControllerTrackedTimestamp)).TotalSeconds; - if (timeSinceTracking > profile.ControllerHideTimeout) - { - motionControllerState.IsTracked = false; - } - } - } - - /// - /// Capture a snapshot of simulated motion controller data based on current state. - /// - public void UpdateControllerData(SimulatedMotionControllerData motionControllerDataLeft, SimulatedMotionControllerData motionControllerDataRight, MouseDelta mouseDelta) - { - SimulateUserInput(mouseDelta); - - SimulatedMotionControllerState motionControllerStateLeft = InputStateLeft as SimulatedMotionControllerState; - SimulatedMotionControllerState motionControllerStateRight = InputStateRight as SimulatedMotionControllerState; - - motionControllerStateLeft.Update(); - motionControllerStateRight.Update(); - - // Cache the generator delegates so we don't gc alloc every frame - if (updaterLeft == null) - { - updaterLeft = motionControllerStateLeft.UpdateControllerPose; - } - - if (updaterRight == null) - { - updaterRight = motionControllerStateRight.UpdateControllerPose; - } - - motionControllerDataLeft.Update(motionControllerStateLeft.IsTracked, motionControllerStateLeft.ButtonState, updaterLeft); - motionControllerDataRight.Update(motionControllerStateRight.IsTracked, motionControllerStateRight.ButtonState, updaterRight); - } - - internal override void ResetInput(SimulatedControllerState state, bool isSimulating) - { - base.ResetInput(state, isSimulating); - - var motionControllerState = state as SimulatedMotionControllerState; - - motionControllerState.ResetButtonStates(); - motionControllerState.ResetRotation(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs.meta deleted file mode 100644 index 6fe58a9eb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/InputSimulation/SimulatedMotionControllerDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 14a596c0d127a824e9a145cd7ec5666d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver.meta deleted file mode 100644 index a8f0bc806..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f65290464499b814bb736ccb68ef6ca5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs.meta deleted file mode 100644 index 4d8aa7638..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7842c185b03141f45a6f5c57eabd0805 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef deleted file mode 100644 index bb097f500..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.ObjectMeshObserver", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.Editor.Utilities" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef.meta deleted file mode 100644 index c0c3db2ca..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/MRTK.ObjectMeshObserver.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 13ac6bcd081d93e4ab5fbdf0f69054d1 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles.meta deleted file mode 100644 index 0ea9783b5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 072145b3b54be1240be0b84dfcbb7e48 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset deleted file mode 100644 index 688c13af0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset +++ /dev/null @@ -1,28 +0,0 @@ -%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: 11500000, guid: e3c1af9621e40064b907d18085e21fb7, type: 3} - m_Name: DefaultObjectMeshObserverProfile - m_EditorClassIdentifier: - isCustomProfile: 0 - startupBehavior: 0 - isStationaryObserver: 0 - observationExtents: {x: 3, y: 3, z: 3} - observerVolumeType: 1 - updateInterval: 3.5 - meshPhysicsLayer: 31 - levelOfDetail: 0 - trianglesPerCubicMeter: 0 - recalculateNormals: 1 - displayOption: 1 - visibleMaterial: {fileID: 2100000, guid: 47c3d3b0d8143e3489351498fceed55d, type: 2} - occlusionMaterial: {fileID: 2100000, guid: a809c7ea182b699409443d46d5b42435, type: 2} - spatialMeshObject: {fileID: 100000, guid: 2d029f2a1321676428ce89872882c605, type: 3} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset.meta deleted file mode 100644 index e71c8f099..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 60e57a38f0e2d434d82a9c6934dab9d8 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat.meta deleted file mode 100644 index 572c1b079..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 14b83fc4514991c40abab470453cb90c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs deleted file mode 100644 index 33e97b1fa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.IO; -using UnityEngine; - -#if UNITY_2020_2_OR_NEWER -using UnityEditor.AssetImporters; -#else -using UnityEditor.Experimental.AssetImporters; -#endif // UNITY_2020_2_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.SpatialObjectMeshObserver.RoomFile -{ - [ScriptedImporter(1, "room")] - public class RoomFileImporter : ScriptedImporter - { - public override void OnImportAsset(AssetImportContext context) - { - FileInfo fileInfo = new FileInfo(context.assetPath); - string name = fileInfo.Name.Split(new char[] { '.' })[0]; - - IList meshes; - - using (BinaryReader reader = OpenFileForRead(fileInfo.FullName)) - { - meshes = RoomFileSerializer.Deserialize(reader); - } - - GameObject model = new GameObject(name); - context.AddObjectToAsset(name, model); - - for (int i = 0; i < meshes.Count; i++) - { - string meshName = $"{name}_{i}"; - GameObject meshObject = new GameObject(meshName, new System.Type[] { typeof(MeshRenderer), typeof(MeshFilter) }); - - meshes[i].name = meshName; - meshObject.GetComponent().sharedMesh = meshes[i]; - context.AddObjectToAsset(meshName, meshes[i]); - meshObject.transform.parent = model.transform; - } - } - - /// - /// Opens the specified file for reading. - /// - /// The name of the file, including extension. - /// The reader used to read the file's contents. - private BinaryReader OpenFileForRead(string fileName) - { - if (!File.Exists(fileName)) - { - Debug.LogError($"Unable to open {fileName}, the file does not exist."); - return null; - } - - Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read); - if (stream == null) - { - return null; - } - - return new BinaryReader(stream); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs.meta deleted file mode 100644 index 56ebff686..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileImporter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3e312619098114845b63f18fff5c4d91 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs deleted file mode 100644 index 76bb52805..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.IO; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialObjectMeshObserver.RoomFile -{ - /// - /// Converts a UnityEngine.Mesh object to and from an array of bytes that conform to the .room file format. - /// File header: vertex count (32 bit integer), triangle count (32 bit integer) - /// Vertex list: vertex.x, vertex.y, vertex.z (all 32 bit float) - /// Triangle index list: 32 bit integers - /// - public static class RoomFileSerializer - { - /// - /// The mesh header consists of two 32 bit integers. - /// - private static int HeaderSize = sizeof(int) * 2; - - /// - /// Deserializes a list of Mesh objects from the provided byte array. - /// - /// The reader from which to deserialize the meshes. - /// Collection of Mesh objects. - public static IList Deserialize(BinaryReader reader) - { - List meshes = new List(); - - if (reader == null) - { - Debug.LogError("Null reader passed to Deserialize."); - return meshes; - } - - while (reader.BaseStream.Length - reader.BaseStream.Position >= HeaderSize) - { - meshes.Add(ReadMesh(reader)); - } - - return meshes; - } - - /// - /// Reads a single Mesh object from the data stream. - /// - /// BinaryReader representing the data stream. - /// Mesh object read from the stream. - private static Mesh ReadMesh(BinaryReader reader) - { - // Read the mesh data. - ReadFileHeader(reader, out int vertexCount, out int triangleIndexCount); - Vector3[] vertices = ReadVertices(reader, vertexCount); - int[] triangleIndices = ReadTriangleIndicies(reader, triangleIndexCount); - - // Create the mesh. - Mesh mesh = new Mesh(); - mesh.vertices = vertices; - mesh.triangles = triangleIndices; - // Reconstruct the normals from the vertices and triangles. - mesh.RecalculateNormals(); - - return mesh; - } - - /// - /// Reads the file header from the data stream. - /// - /// BinaryReader representing the data stream. - /// Count of vertices in the mesh. - /// Count of triangle indices in the mesh. - private static void ReadFileHeader(BinaryReader reader, out int vertexCount, out int triangleIndexCount) - { - vertexCount = reader.ReadInt32(); - triangleIndexCount = reader.ReadInt32(); - } - - /// - /// Reads a mesh's vertices from the data stream. - /// - /// BinaryReader representing the data stream. - /// Count of vertices to read. - /// Array of Vector3 structures representing the mesh's vertices. - private static Vector3[] ReadVertices(BinaryReader reader, int vertexCount) - { - Vector3[] vertices = new Vector3[vertexCount]; - - for (int i = 0; i < vertices.Length; i++) - { - vertices[i] = new Vector3(reader.ReadSingle(), - reader.ReadSingle(), - reader.ReadSingle()); - } - - return vertices; - } - - /// - /// Reads the vertex indices that represent a mesh's triangles from the data stream - /// - /// BinaryReader representing the data stream. - /// Count of indices to read. - /// Array of integers that describe how the vertex indices form triangles. - private static int[] ReadTriangleIndicies(BinaryReader reader, int triangleIndexCount) - { - int[] triangleIndices = new int[triangleIndexCount]; - - for (int i = 0; i < triangleIndices.Length; i++) - { - triangleIndices[i] = reader.ReadInt32(); - } - - return triangleIndices; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs.meta deleted file mode 100644 index 35b8228b7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/RoomFileFormat/RoomFileSerializer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 400c5a5cb8366a74e8b98347a33d9a31 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs deleted file mode 100644 index 0f1513f84..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License.license information. - -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialObjectMeshObserver -{ - /// - /// Spatial awareness mesh observer that provides mesh data from a 3D model imported as a Unity asset. - /// - [MixedRealityDataProvider( - typeof(IMixedRealitySpatialAwarenessSystem), - SupportedPlatforms.WindowsEditor | SupportedPlatforms.MacEditor | SupportedPlatforms.LinuxEditor, - "Spatial Object Mesh Observer", - "Providers/ObjectMeshObserver/Profiles/DefaultObjectMeshObserverProfile.asset", - "MixedRealityToolkit.Core")] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SpatialAwareness/SpatialAwarenessGettingStarted.html")] - public class SpatialObjectMeshObserver : - BaseSpatialMeshObserver, - IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public SpatialObjectMeshObserver( - IMixedRealityServiceRegistrar registrar, - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(spatialAwarenessSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public SpatialObjectMeshObserver( - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(spatialAwarenessSystem, name, priority, profile) - { } - - private bool sendObservations = true; - - private GameObject spatialMeshObject = null; - - #region BaseSpatialMeshObserver Implementation - - /// - /// Reads the settings from the configuration profile. - /// - protected override void ReadProfile() - { - base.ReadProfile(); - - SpatialObjectMeshObserverProfile profile = ConfigurationProfile as SpatialObjectMeshObserverProfile; - if (profile == null) { return; } - - // SpatialObjectMeshObserver settings - spatialMeshObject = profile.SpatialMeshObject; - } - - #endregion BaseSpatialMeshObserver Implementation - - #region IMixedRealityCapabilityCheck Implementation - - /// - bool IMixedRealityCapabilityCheck.CheckCapability(MixedRealityCapability capability) - { - return capability == MixedRealityCapability.SpatialAwarenessMesh; - } - - #endregion IMixedRealityCapabilityCheck Implementation - - #region IMixedRealityDataProvider Implementation - - /// - public override void Update() - { - if (!IsRunning) - { - return; - } - - SendMeshObjects(); - } - - #endregion IMixedRealityDataProvider Implementation - - #region BaseSpatialObserver Implementation - - /// - protected override void CreateObserver() - { - if (StartupBehavior == AutoStartBehavior.AutoStart) - { - Resume(); - } - } - - /// - protected override void CleanupObserver() - { - if (IsRunning) - { - Suspend(); - } - } - - #endregion BaseSpatialObserver Implementation - - #region IMixedRealitySpatialAwarenessObserver Implementation - - private static readonly ProfilerMarker ClearObservationsPerfMarker = new ProfilerMarker("[MRTK] SpatialObjectMeshObserver.ClearObservations"); - - /// - public override void ClearObservations() - { - using (ClearObservationsPerfMarker.Auto()) - { - if (IsRunning) - { - Debug.Log("Cannot clear observations while the observer is running. Suspending this observer."); - Suspend(); - } - - foreach (int id in Meshes.Keys) - { - RemoveMeshObject(id); - } - - // Resend file observations when resumed. - sendObservations = true; - } - } - - /// - public override void Resume() - { - if (IsRunning) { return; } - IsRunning = true; - } - - /// - public override void Suspend() - { - if (!IsRunning) { return; } - IsRunning = false; - } - - #endregion IMixedRealitySpatialAwarenessObserver Implementation - - #region Helpers - - private int currentMeshId = 0; - - private static readonly ProfilerMarker SendMeshObjectsPerfMarker = new ProfilerMarker("[MRTK] SpatialObjectMeshObserver.SendMeshObjects"); - - /// - /// Sends the observations using the mesh data contained within the configured 3D model. - /// - private void SendMeshObjects() - { - if (!sendObservations) { return; } - - using (SendMeshObjectsPerfMarker.Auto()) - { - if (spatialMeshObject != null) - { - MeshFilter[] meshFilters = spatialMeshObject.GetComponentsInChildren(); - for (int i = 0; i < meshFilters.Length; i++) - { - SpatialAwarenessMeshObject meshObject = SpatialAwarenessMeshObject.Create( - meshFilters[i].sharedMesh, - MeshPhysicsLayer, - $"Spatial Object Mesh {currentMeshId}", - currentMeshId, - ObservedObjectParent); - - meshObject.GameObject.transform.localPosition = meshFilters[i].transform.position; - meshObject.GameObject.transform.localRotation = meshFilters[i].transform.rotation; - - ApplyMeshMaterial(meshObject); - - meshes.Add(currentMeshId, meshObject); - - meshEventData.Initialize(this, currentMeshId, meshObject); - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshAdded); - - currentMeshId++; - } - } - - sendObservations = false; - } - } - - private static readonly ProfilerMarker RemoveMeshObjectPerfMarker = new ProfilerMarker("[MRTK] SpatialObjectMeshObserver.RemoveMeshObject"); - - /// - /// Removes an observation. - /// - private void RemoveMeshObject(int meshId) - { - using (RemoveMeshObjectPerfMarker.Auto()) - { - if (meshes.TryGetValue(meshId, out SpatialAwarenessMeshObject meshObject)) - { - // Remove the mesh object from the collection. - meshes.Remove(meshId); - if (meshObject != null) - { - SpatialAwarenessMeshObject.Cleanup(meshObject); - } - - // Send the mesh removed event - meshEventData.Initialize(this, meshId, null); - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshRemoved); - } - } - } - - /// - /// Applies the appropriate material, based on the current of the property. - /// - /// The for which the material is to be applied. - private void ApplyMeshMaterial(SpatialAwarenessMeshObject meshObject) - { - if (meshObject?.Renderer == null) { return; } - - bool enable = (DisplayOption != SpatialAwarenessMeshDisplayOptions.None); - - if (enable) - { - meshObject.Renderer.sharedMaterial = (DisplayOption == SpatialAwarenessMeshDisplayOptions.Visible) ? - VisibleMaterial : - OcclusionMaterial; - - meshObject.Collider.material = PhysicsMaterial; - } - - meshObject.Renderer.enabled = enable; - } - - #endregion Helpers - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs.meta deleted file mode 100644 index c9e10223f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f945e5a118ff72541a10dacf866787ee -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs deleted file mode 100644 index 5f8b709b0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialObjectMeshObserver -{ - /// - /// Configuration profile for the spatial object mesh observer. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Spatial Object Mesh Observer Profile", fileName = "SpatialObjectMeshObserverProfile", order = 100)] - public class SpatialObjectMeshObserverProfile : MixedRealitySpatialAwarenessMeshObserverProfile - { - [SerializeField] - [Tooltip("The model containing the desired mesh data.")] - private GameObject spatialMeshObject = null; - - /// - /// The model containing the desired mesh data. - /// - public GameObject SpatialMeshObject => spatialMeshObject; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs.meta deleted file mode 100644 index 76c1d26fa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e3c1af9621e40064b907d18085e21fb7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs deleted file mode 100644 index fb49f51a0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License.license information. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.SpatialObjectMeshObserver -{ - [CustomEditor(typeof(SpatialObjectMeshObserverProfile))] - public class SpatialObjectMeshObserverProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private const string ProfileTitle = "Object Mesh Observer Settings"; - private const string ProfileDescription = "Configuration settings for how an object is used to simulate a spatial awareness mesh."; - - // Object settings - private SerializedProperty spatialMeshObject; - - // General settings - private SerializedProperty startupBehavior; - private SerializedProperty observationExtents; - private SerializedProperty observerVolumeType; - private SerializedProperty isStationaryObserver; - private SerializedProperty updateInterval; - - // Physics settings - private SerializedProperty meshPhysicsLayer; - private SerializedProperty recalculateNormals; - - // Level of Detail settings - private SerializedProperty levelOfDetail; - private SerializedProperty trianglesPerCubicMeter; - - // Display settings - private SerializedProperty displayOption; - private SerializedProperty visibleMaterial; - private SerializedProperty occlusionMaterial; - - private SerializedProperty physicsMaterial; - - private readonly GUIContent displayOptionContent = new GUIContent("Display Option"); - private readonly GUIContent lodContent = new GUIContent("Level of Detail"); - private readonly GUIContent volumeTypeContent = new GUIContent("Observer Shape"); - private readonly GUIContent physicsLayerContent = new GUIContent("Physics Layer"); - private readonly GUIContent trianglesPerCubicMeterContent = new GUIContent("Triangles/Cubic Meter"); - - protected override void OnEnable() - { - base.OnEnable(); - - // Object mesh - spatialMeshObject = serializedObject.FindProperty("spatialMeshObject"); - - // General settings - startupBehavior = serializedObject.FindProperty("startupBehavior"); - observationExtents = serializedObject.FindProperty("observationExtents"); - observerVolumeType = serializedObject.FindProperty("observerVolumeType"); - isStationaryObserver = serializedObject.FindProperty("isStationaryObserver"); - updateInterval = serializedObject.FindProperty("updateInterval"); - - // Mesh settings - meshPhysicsLayer = serializedObject.FindProperty("meshPhysicsLayer"); - recalculateNormals = serializedObject.FindProperty("recalculateNormals"); - levelOfDetail = serializedObject.FindProperty("levelOfDetail"); - trianglesPerCubicMeter = serializedObject.FindProperty("trianglesPerCubicMeter"); - displayOption = serializedObject.FindProperty("displayOption"); - visibleMaterial = serializedObject.FindProperty("visibleMaterial"); - occlusionMaterial = serializedObject.FindProperty("occlusionMaterial"); - physicsMaterial = serializedObject.FindProperty("physicsMaterial"); - } - - public override void OnInspectorGUI() - { - if (!RenderProfileHeader(ProfileTitle, ProfileDescription, target, true, BackProfileType.SpatialAwareness)) - { - return; - } - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.PropertyField(spatialMeshObject); - GameObject parent = spatialMeshObject.objectReferenceValue as GameObject; - MeshFilter[] filters = (parent != null) ? parent.GetComponentsInChildren() : null; - if ((filters == null) || - (filters.Length == 0)) - { - EditorGUILayout.HelpBox("The specified Spatial Mesh Object is not specified or does not appear to be a 3D model.", MessageType.Warning); - } - EditorGUILayout.Space(); - - EditorGUILayout.LabelField("General Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(startupBehavior); - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(updateInterval); - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(isStationaryObserver); - EditorGUILayout.PropertyField(observerVolumeType, volumeTypeContent); - string message = string.Empty; - if (observerVolumeType.intValue == (int)VolumeType.AxisAlignedCube) - { - message = "Observed meshes will be aligned to the world coordinate space."; - } - else if (observerVolumeType.intValue == (int)VolumeType.UserAlignedCube) - { - message = "Observed meshes will be aligned to the user's coordinate space."; - } - else if (observerVolumeType.intValue == (int)VolumeType.Sphere) - { - message = "The X value of the Observation Extents will be used as the sphere radius."; - } - EditorGUILayout.HelpBox(message, MessageType.Info); - EditorGUILayout.PropertyField(observationExtents); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Physics Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(meshPhysicsLayer, physicsLayerContent); - EditorGUILayout.PropertyField(recalculateNormals); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Level of Detail Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(levelOfDetail, lodContent); - EditorGUILayout.PropertyField(trianglesPerCubicMeter, trianglesPerCubicMeterContent); - EditorGUILayout.HelpBox("The value of Triangles per Cubic Meter is ignored unless Level of Detail is set to Custom.", MessageType.Info); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Display Settings", EditorStyles.boldLabel); - { - EditorGUILayout.PropertyField(displayOption, displayOptionContent); - EditorGUILayout.PropertyField(visibleMaterial); - EditorGUILayout.PropertyField(occlusionMaterial); - EditorGUILayout.PropertyField(physicsMaterial); - } - - serializedObject.ApplyModifiedProperties(); - } - } - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile != null && - MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile.ObserverConfigurations != null && - MixedRealityToolkit.Instance.ActiveProfile.SpatialAwarenessSystemProfile.ObserverConfigurations.Any(s => s.ObserverProfile == profile); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs.meta deleted file mode 100644 index bb34308d1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/ObjectMeshObserver/SpatialObjectMeshObserverProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d155bd114b201704983ac8ffbd98ce0e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput.meta deleted file mode 100644 index 20dce6715..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 75fea106382996747b610444eee23b40 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs deleted file mode 100644 index c3acdcc13..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs +++ /dev/null @@ -1,281 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; -using UInput = UnityEngine.Input; - -namespace Microsoft.MixedReality.Toolkit.Input.UnityInput -{ - [MixedRealityController( - SupportedControllerType.GenericUnity, - new[] { Handedness.None }, - flags: MixedRealityControllerConfigurationFlags.UseCustomInteractionMappings)] - public class GenericJoystickController : BaseController - { - public GenericJoystickController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - // Update the spatial pointer rotation with the preconfigured offset angle - if (PointerOffsetAngle != 0f && Interactions != null) - { - MixedRealityInteractionMapping pointerMapping = null; - for (int i = 0; i < Interactions.Length; i++) - { - MixedRealityInteractionMapping mapping = Interactions[i]; - if (mapping.InputType == DeviceInputType.SpatialPointer) - { - pointerMapping = mapping; - break; - } - } - - if (pointerMapping == null) - { - Debug.LogWarning($"A pointer offset is defined for {GetType()}, but no spatial pointer mapping could be found."); - return; - } - - MixedRealityPose startingRotation = MixedRealityPose.ZeroIdentity; - startingRotation.Rotation *= Quaternion.AngleAxis(PointerOffsetAngle, Vector3.left); - pointerMapping.PoseData = startingRotation; - } - } - - /// - /// The pointer's offset angle. - /// - public virtual float PointerOffsetAngle { get; protected set; } = 0f; - - private Vector2 dualAxisPosition = Vector2.zero; - private MixedRealityPose pointerOffsetPose = MixedRealityPose.ZeroIdentity; - - /// - /// The current position of this controller. - /// - protected Vector3 CurrentControllerPosition = Vector3.zero; - - /// - /// The current rotation of this controller. - /// - protected Quaternion CurrentControllerRotation = Quaternion.identity; - - /// - /// The previous pose of this controller. - /// - protected MixedRealityPose LastControllerPose = MixedRealityPose.ZeroIdentity; - - /// - /// The current pose of this controller. - /// - protected MixedRealityPose CurrentControllerPose = MixedRealityPose.ZeroIdentity; - - private static readonly ProfilerMarker UpdateControllerPerfMarker = new ProfilerMarker("[MRTK] GenericJoystickController.UpdateController"); - - /// - /// Update the controller data from Unity's Input Manager - /// - public virtual void UpdateController() - { - using (UpdateControllerPerfMarker.Auto()) - { - if (!Enabled) { return; } - - if (Interactions == null) - { - Debug.LogError($"No interaction configuration for {GetType().Name}"); - Enabled = false; - } - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].AxisType) - { - case AxisType.None: - break; - case AxisType.Digital: - UpdateButtonData(Interactions[i]); - break; - case AxisType.SingleAxis: - UpdateSingleAxisData(Interactions[i]); - break; - case AxisType.DualAxis: - UpdateDualAxisData(Interactions[i]); - break; - case AxisType.SixDof: - UpdatePoseData(Interactions[i]); - break; - default: - Debug.LogError($"Input [{Interactions[i].InputType}] is not handled for this controller [{GetType().Name}]"); - break; - } - } - } - } - - private static readonly ProfilerMarker UpdateButtonDataPerfMarker = new ProfilerMarker("[MRTK] GenericJoystickController.UpdateButtonData"); - - /// - /// Update an Interaction Bool data type from a Bool input - /// - /// - /// Raises an Input System "Input Down" event when the key is down, and raises an "Input Up" when it is released (e.g. a Button) - /// Also raises a "Pressed" event while pressed - /// - protected void UpdateButtonData(MixedRealityInteractionMapping interactionMapping) - { - using (UpdateButtonDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.Digital); - - // Update the interaction data source - switch (interactionMapping.InputType) - { - case DeviceInputType.TriggerPress: - interactionMapping.BoolData = UInput.GetAxisRaw(interactionMapping.AxisCodeX).Equals(1); - break; - case DeviceInputType.TriggerNearTouch: - case DeviceInputType.ThumbNearTouch: - case DeviceInputType.IndexFingerNearTouch: - case DeviceInputType.MiddleFingerNearTouch: - case DeviceInputType.RingFingerNearTouch: - case DeviceInputType.PinkyFingerNearTouch: - interactionMapping.BoolData = !UInput.GetAxisRaw(interactionMapping.AxisCodeX).Equals(0); - break; - default: - interactionMapping.BoolData = UInput.GetKey(interactionMapping.KeyCode); - break; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - } - } - - private static readonly ProfilerMarker UpdateSingleAxisDataPerfMarker = new ProfilerMarker("[MRTK] GenericJoystickController.UpdateSingleAxisData"); - - /// - /// Update an Interaction Float data type from a SingleAxis (float) input - /// - /// - /// Raises a Float Input Changed event when the float data changes - /// - protected void UpdateSingleAxisData(MixedRealityInteractionMapping interactionMapping) - { - using (UpdateSingleAxisDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.SingleAxis); - - var singleAxisValue = UInput.GetAxisRaw(interactionMapping.AxisCodeX); - - if (interactionMapping.InputType == DeviceInputType.TriggerPress) - { - interactionMapping.BoolData = singleAxisValue.Equals(1); - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - } - else - { - // Update the interaction data source - interactionMapping.FloatData = singleAxisValue; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaiseFloatInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.FloatData); - } - } - } - } - - private static readonly ProfilerMarker UpdateDualAxisDataPerfMarker = new ProfilerMarker("[MRTK] GenericJoystickController.UpdateDualAxisData"); - - /// - /// Update the Touchpad / Thumbstick input from the device (in OpenVR, touchpad and thumbstick are the same input control) - /// - protected void UpdateDualAxisData(MixedRealityInteractionMapping interactionMapping) - { - using (UpdateDualAxisDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.DualAxis); - - dualAxisPosition.x = UInput.GetAxisRaw(interactionMapping.AxisCodeX); - dualAxisPosition.y = UInput.GetAxisRaw(interactionMapping.AxisCodeY); - - // Update the interaction data source - interactionMapping.Vector2Data = dualAxisPosition; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.Vector2Data); - } - } - } - - private static readonly ProfilerMarker UpdatePoseDataPerfMarker = new ProfilerMarker("[MRTK] GenericJoystickController.UpdatePoseData"); - - /// - /// Update Spatial Pointer Data. - /// - protected void UpdatePoseData(MixedRealityInteractionMapping interactionMapping) - { - using (UpdatePoseDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.SixDof); - - if (interactionMapping.InputType == DeviceInputType.SpatialPointer) - { - pointerOffsetPose.Position = CurrentControllerPose.Position; - pointerOffsetPose.Rotation = CurrentControllerPose.Rotation * Quaternion.AngleAxis(PointerOffsetAngle, Vector3.left); - - // Update the interaction data source - interactionMapping.PoseData = pointerOffsetPose; - } - else if (interactionMapping.InputType == DeviceInputType.SpatialGrip) - { - // Update the interaction data source - interactionMapping.PoseData = CurrentControllerPose; - } - else - { - Debug.LogWarning("Unhandled Interaction"); - return; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.PoseData); - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs.meta deleted file mode 100644 index 98f2a40ce..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/GenericJoystickController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 70c4b05273260a34aab1695ff1d5708b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs deleted file mode 100644 index dffb671e2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.Input.UnityInput; -using UnityEngine.Serialization; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CreateAssetMenu( - menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Mouse Input Profile", - fileName = "MixedRealityMouseInputProfile", - order = (int)CreateProfileMenuItemIndices.MouseInput)] - [MixedRealityServiceProfile(typeof(MouseDeviceManager))] - public class MixedRealityMouseInputProfile : BaseMixedRealityProfile - { - [SerializeField] - [Range(0.1f, 10f)] - [Tooltip("Mouse cursor speed multiplier.")] - [FormerlySerializedAsAttribute("mouseSpeed")] - private float cursorSpeed = 1.0f; - - /// - /// Defines the mouse cursor speed multiplier used to scale the mouse cursor delta. - /// - public float CursorSpeed => cursorSpeed; - - [SerializeField] - [Range(0.1f, 10f)] - [Tooltip("Mouse wheel speed multiplier.")] - private float wheelSpeed = 1.0f; - - /// - /// Defines the mouse wheel speed multiplier used to scale the scroll wheel delta. - /// - public float WheelSpeed => wheelSpeed; - - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs.meta deleted file mode 100644 index 57d102fed..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MixedRealityMouseInputProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 55135ad05bc8df24b95e28584db89751 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs deleted file mode 100644 index c67189940..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; -using UInput = UnityEngine.Input; - -namespace Microsoft.MixedReality.Toolkit.Input.UnityInput -{ - /// - /// Manages the mouse using unity input system. - /// - [MixedRealityController(SupportedControllerType.Mouse, new[] { Handedness.Any })] - public class MouseController : BaseController - { - /// - /// Constructor. - /// - /// The controller's tracking state. - /// The handedness (ex: right) of the controller. - /// The controller's input source. - /// The set of interactions supported by this controller. - public MouseController( - TrackingState trackingState, - Handedness controllerHandedness, - IMixedRealityInputSource inputSource = null, - MixedRealityInteractionMapping[] interactions = null) : base(trackingState, controllerHandedness, inputSource, interactions) - { } - - /// - public override MixedRealityInteractionMapping[] DefaultInteractions { get; } = - { - new MixedRealityInteractionMapping(0, "Spatial Mouse Position", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Mouse Delta Position", AxisType.DualAxis, DeviceInputType.PointerPosition), - new MixedRealityInteractionMapping(2, "Mouse Scroll Position", AxisType.DualAxis, DeviceInputType.Scroll, ControllerMappingLibrary.AXIS_3), - new MixedRealityInteractionMapping(3, "Left Mouse Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.Mouse0), - new MixedRealityInteractionMapping(4, "Right Mouse Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.Mouse1), - new MixedRealityInteractionMapping(5, "Mouse Button 2", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.Mouse2), - new MixedRealityInteractionMapping(6, "Mouse Button 3", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.Mouse3), - new MixedRealityInteractionMapping(7, "Mouse Button 4", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.Mouse4), - new MixedRealityInteractionMapping(8, "Mouse Button 5", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.Mouse5), - new MixedRealityInteractionMapping(9, "Mouse Button 6", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.Mouse6), - }; - - private MixedRealityPose controllerPose = MixedRealityPose.ZeroIdentity; - - private IMixedRealityMouseDeviceManager mouseDeviceManager = null; - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] MouseController.Update"); - - /// - /// Update controller. - /// - public void Update() - { - using (UpdatePerfMarker.Auto()) - { - if (!UInput.mousePresent) { return; } - - if (mouseDeviceManager == null) - { - mouseDeviceManager = CoreServices.GetInputSystemDataProvider(); - } - - // Bail early if our mouse isn't in our game window. - if (UInput.mousePosition.x < 0 || - UInput.mousePosition.y < 0 || - UInput.mousePosition.x > Screen.width || - UInput.mousePosition.y > Screen.height) - { - return; - } - - for (int i = 0; i < Interactions.Length; i++) - { - if ((Interactions[i].InputType == DeviceInputType.SpatialPointer) || - (Interactions[i].InputType == DeviceInputType.PointerPosition)) - { - Vector3 mouseDelta = Vector3.zero; - mouseDelta.x = -UInput.GetAxis("Mouse Y"); - mouseDelta.y = UInput.GetAxis("Mouse X"); - if (mouseDeviceManager != null) - { - // Apply cursor speed. - mouseDelta *= mouseDeviceManager.CursorSpeed; - } - - if (Interactions[i].InputType == DeviceInputType.SpatialPointer) - { - // Spatial pointer raises Pose events - controllerPose = MixedRealityPose.ZeroIdentity; - controllerPose.Rotation = Quaternion.Euler(mouseDelta); - Interactions[i].PoseData = controllerPose; - - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, Interactions[i].PoseData); - } - } - else - { - // Pointer position raises position events - Interactions[i].Vector2Data = mouseDelta; - - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, Interactions[i].Vector2Data); - } - } - } - - if (Interactions[i].AxisType == AxisType.Digital) - { - var keyButton = UInput.GetKey(Interactions[i].KeyCode); - - // Update the interaction data source - Interactions[i].BoolData = keyButton; - - // If our value changed raise it. - if (Interactions[i].Changed) - { - // Raise input system event if it's enabled - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - } - } - - if (Interactions[i].InputType == DeviceInputType.Scroll) - { - Vector2 wheelDelta = UInput.mouseScrollDelta; - if (mouseDeviceManager != null) - { - // Apply wheel speed. - wheelDelta *= mouseDeviceManager.WheelSpeed; - } - - Interactions[i].Vector2Data = wheelDelta; - - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, Interactions[i].Vector2Data); - } - } - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs.meta deleted file mode 100644 index c7ec12056..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: abbbc4614f6191a43a63fdb1eccfb16d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs deleted file mode 100644 index adfb81ff0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; -using UInput = UnityEngine.Input; - -namespace Microsoft.MixedReality.Toolkit.Input.UnityInput -{ - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - (SupportedPlatforms)(-1), // All platforms supported by Unity - "Unity Mouse Device Manager", - "Profiles/DefaultMixedRealityMouseInputProfile.asset", - "MixedRealityToolkit.SDK", - requiresProfile: true)] - public class MouseDeviceManager : BaseInputDeviceManager, IMixedRealityMouseDeviceManager - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public MouseDeviceManager( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public MouseDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) - { } - - // Values defining the range of the cursor and wheel speed multipliers - private const float MinSpeedMultiplier = 0.1f; - private const float MaxSpeedMultiplier = 10.0f; - - /// - public MixedRealityMouseInputProfile MouseInputProfile => ConfigurationProfile as MixedRealityMouseInputProfile; - - private float cursorSpeed = 1.0f; - - /// - public float CursorSpeed - { - get => cursorSpeed; - set - { - if (value != cursorSpeed) - { - cursorSpeed = Mathf.Clamp(value, MinSpeedMultiplier, MaxSpeedMultiplier); - } - } - } - - private float wheelSpeed = 1.0f; - - /// - public float WheelSpeed - { - get => wheelSpeed; - set - { - if (value != wheelSpeed) - { - wheelSpeed = Mathf.Clamp(value, MinSpeedMultiplier, MaxSpeedMultiplier); - } - } - } - - /// - /// Current Mouse Controller. - /// - public MouseController Controller { get; private set; } - - /// - public override void Initialize() - { - base.Initialize(); - - ReadProfile(); - } - - /// - public override void Enable() - { - base.Enable(); - - if (!UInput.mousePresent) - { - Disable(); - return; - } - - if (Controller != null) - { - // device manager has already been set up - return; - } - - IMixedRealityInputSource mouseInputSource = null; - - MixedRealityRaycaster.DebugEnabled = true; - - const Handedness handedness = Handedness.Any; - System.Type controllerType = typeof(MouseController); - - // Make sure that the handedness declared in the controller attribute matches what we expect - var controllerAttribute = MixedRealityControllerAttribute.Find(controllerType); - if (controllerAttribute != null) - { - Handedness[] handednesses = controllerAttribute.SupportedHandedness; - Debug.Assert( - handednesses.Length == 1 && handednesses[0] == Handedness.Any, - "Unexpected mouse handedness declared in MixedRealityControllerAttribute"); - } - - if (Service != null) - { - var pointers = RequestPointers(SupportedControllerType.Mouse, handedness); - mouseInputSource = Service.RequestNewGenericInputSource("Mouse Input", pointers); - } - - Controller = new MouseController(TrackingState.NotApplicable, handedness, mouseInputSource); - - if (mouseInputSource != null) - { - for (int i = 0; i < mouseInputSource.Pointers.Length; i++) - { - mouseInputSource.Pointers[i].Controller = Controller; - } - } - - Service?.RaiseSourceDetected(Controller.InputSource, Controller); - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] MouseDeviceManager.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - base.Update(); - - if (UInput.mousePresent && Controller == null) { Enable(); } - - Controller?.Update(); - } - } - - /// - public override void Disable() - { - base.Disable(); - - if (Controller != null) - { - Service?.RaiseSourceLost(Controller.InputSource, Controller); - - RecyclePointers(Controller.InputSource); - - Controller = null; - } - } - - private void ReadProfile() - { - MixedRealityMouseInputProfile profile = ConfigurationProfile as MixedRealityMouseInputProfile; - - CursorSpeed = profile.CursorSpeed; - WheelSpeed = profile.WheelSpeed; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs.meta deleted file mode 100644 index 2bba9c910..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/MouseDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 210be2a7757381847861be5b8518ee65 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs deleted file mode 100644 index ebca64529..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs +++ /dev/null @@ -1,252 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Linq; -using Unity.Profiling; -using UnityEngine; -using UInput = UnityEngine.Input; - -namespace Microsoft.MixedReality.Toolkit.Input.UnityInput -{ - /// - /// Manages joysticks using unity input system. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - (SupportedPlatforms)(-1), // All platforms supported by Unity - "Unity Joystick Manager")] - public class UnityJoystickManager : BaseInputDeviceManager - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public UnityJoystickManager( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public UnityJoystickManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - private const float DeviceRefreshInterval = 3.0f; - - protected static readonly Dictionary ActiveControllers = new Dictionary(); - - private float deviceRefreshTimer; - private string[] lastDeviceList; - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] UnityJoystickManager.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - base.Update(); - - deviceRefreshTimer += Time.unscaledDeltaTime; - - if (deviceRefreshTimer >= DeviceRefreshInterval) - { - deviceRefreshTimer = 0.0f; - RefreshDevices(); - } - - foreach (var controller in ActiveControllers) - { - controller.Value?.UpdateController(); - } - } - } - - /// - public override void Disable() - { - base.Disable(); - - foreach (var genericJoystick in ActiveControllers) - { - if (genericJoystick.Value != null) - { - Service?.RaiseSourceLost(genericJoystick.Value.InputSource, genericJoystick.Value); - } - } - - ActiveControllers.Clear(); - } - - private static readonly ProfilerMarker GetActiveControllersPerfMarker = new ProfilerMarker("[MRTK] UnityJoystickManager.GetActiveControllers"); - - /// - public override IMixedRealityController[] GetActiveControllers() - { - using (GetActiveControllersPerfMarker.Auto()) - { - IMixedRealityController[] controllers = ActiveControllers.Values.ToArray(); - return controllers; - } - } - - private static readonly ProfilerMarker RefreshDevicesPerfMarker = new ProfilerMarker("[MRTK] UnityJoystickManager.RefreshDevices"); - - private void RefreshDevices() - { - using (RefreshDevicesPerfMarker.Auto()) - { - var joystickNames = UInput.GetJoystickNames(); - - if (joystickNames.Length <= 0) - { - return; - } - - if (lastDeviceList != null && joystickNames.Length == lastDeviceList.Length) - { - for (int i = 0; i < lastDeviceList.Length; i++) - { - if (joystickNames[i].Equals(lastDeviceList[i])) { continue; } - - if (ActiveControllers.ContainsKey(lastDeviceList[i])) - { - var controller = GetOrAddController(lastDeviceList[i]); - - if (controller != null) - { - Service?.RaiseSourceLost(controller.InputSource, controller); - } - - RemoveController(lastDeviceList[i]); - } - } - } - - for (var i = 0; i < joystickNames.Length; i++) - { - if (string.IsNullOrEmpty(joystickNames[i])) - { - continue; - } - - if (!ActiveControllers.ContainsKey(joystickNames[i])) - { - var controller = GetOrAddController(joystickNames[i]); - - if (controller != null) - { - Service?.RaiseSourceDetected(controller.InputSource, controller); - } - } - } - - lastDeviceList = joystickNames; - } - } - - private static readonly ProfilerMarker GetOrAddControllerPerfMarker = new ProfilerMarker("[MRTK] UnityJoystickManager.GetOrAddController"); - - /// - /// Gets or adds a controller using the joystick name provided. - /// - /// The name of the joystick from Unity's Input.GetJoystickNames - /// A new controller reference. - protected virtual GenericJoystickController GetOrAddController(string joystickName) - { - using (GetOrAddControllerPerfMarker.Auto()) - { - if (ActiveControllers.ContainsKey(joystickName)) - { - var controller = ActiveControllers[joystickName]; - Debug.Assert(controller != null); - return controller; - } - - Type controllerType; - - switch (GetCurrentControllerType(joystickName)) - { - default: - return null; - case SupportedControllerType.GenericUnity: - controllerType = typeof(GenericJoystickController); - break; - case SupportedControllerType.Xbox: - controllerType = typeof(XboxController); - break; - } - - IMixedRealityInputSource inputSource = Service?.RequestNewGenericInputSource($"{controllerType.Name} Controller", sourceType: InputSourceType.Controller); - GenericJoystickController detectedController = Activator.CreateInstance(controllerType, TrackingState.NotTracked, Handedness.None, inputSource, null) as GenericJoystickController; - - if (detectedController == null || !detectedController.Enabled) - { - // Controller failed to be setup correctly. - Debug.LogError($"Failed to create {controllerType.Name} controller"); - - // Return null so we don't raise the source detected. - return null; - } - - ActiveControllers.Add(joystickName, detectedController); - - return detectedController; - } - } - - /// - /// Removes a controller using the joystick name provided. - /// - /// The name of the joystick from Unity's Input.GetJoystickNames - protected virtual void RemoveController(string joystickName) - { - ActiveControllers.Remove(joystickName); - } - - /// - /// Gets the current controller type for the joystick name provided. - /// - /// The name of the joystick from Unity's Input.GetJoystickNames - /// The supported controller type - protected virtual SupportedControllerType GetCurrentControllerType(string joystickName) - { - // todo: this should be using an allow list, not a disallow list - if (string.IsNullOrEmpty(joystickName) || - joystickName.Contains("OpenVR") || - joystickName.Contains("Spatial")) - { - return 0; - } - - if (joystickName.ToLower().Contains("xbox")) - { - return SupportedControllerType.Xbox; - } - - Debug.Log($"{joystickName} does not have a defined controller type, falling back to generic controller type"); - return SupportedControllerType.GenericUnity; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs.meta deleted file mode 100644 index 750a93a2b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityJoystickManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 69b9207b43d5095458dd740fad694f59 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs deleted file mode 100644 index fda53a27c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.UnityInput -{ - [MixedRealityController( - SupportedControllerType.TouchScreen, - new[] { Handedness.Any })] - public class UnityTouchController : BaseController - { - public UnityTouchController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - /// Time in seconds to determine if the contact registers as a tap or a hold - /// - public float MaxTapContactTime { get; set; } = 0.5f; - - /// - /// The threshold a finger must move before starting a manipulation gesture. - /// - public float ManipulationThreshold { get; set; } = 5f; - - /// - /// Current Touch Data for the Controller. - /// - public Touch TouchData { get; internal set; } - - /// - /// Current Screen point ray for the Touch. - /// - public Ray ScreenPointRay { get; internal set; } - - /// - /// The current lifetime of the Touch. - /// - public float Lifetime { get; private set; } = 0.0f; - - /// - public override MixedRealityInteractionMapping[] DefaultInteractions { get; } = - { - new MixedRealityInteractionMapping(0, "Touch Pointer Delta", AxisType.DualAxis, DeviceInputType.PointerPosition), - new MixedRealityInteractionMapping(1, "Touch Pointer Position", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(2, "Touch Press", AxisType.Digital, DeviceInputType.PointerClick), - }; - - private bool isTouched; - private MixedRealityInputAction holdingAction; - private bool isHolding; - private MixedRealityInputAction manipulationAction; - private bool isManipulating; - private MixedRealityPose lastPose = MixedRealityPose.ZeroIdentity; - - /// - public override void SetupDefaultInteractions() - { - base.SetupDefaultInteractions(); - - if (CoreServices.InputSystem?.InputSystemProfile.GesturesProfile != null) - { - var gestures = CoreServices.InputSystem.InputSystemProfile.GesturesProfile.Gestures; - for (int i = 0; i < gestures.Length; i++) - { - var gesture = gestures[i]; - - switch (gesture.GestureType) - { - case GestureInputType.Hold: - holdingAction = gesture.Action; - break; - case GestureInputType.Manipulation: - manipulationAction = gesture.Action; - break; - } - } - } - } - - private bool isNewController = false; - - /// - /// Start the touch. - /// - public void StartTouch() - { - // Indicate that this is a new controller. - isNewController = true; - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] UnityTouchController.Update"); - - /// - /// Update the touch data. - /// - public void Update() - { - using (UpdatePerfMarker.Auto()) - { - var inputSystem = CoreServices.InputSystem; - if (inputSystem == null) - { - return; - } - - if (isNewController) - { - isNewController = false; - - inputSystem.RaiseOnInputDown(InputSource, Handedness.None, Interactions[2].MixedRealityInputAction); - inputSystem.RaisePointerDown(InputSource.Pointers[0], Interactions[2].MixedRealityInputAction); - isTouched = true; - inputSystem.RaiseGestureStarted(this, holdingAction); - isHolding = true; - } - - if (!isTouched) - { - return; - } - - Lifetime += Time.deltaTime; - - if (TouchData.phase == TouchPhase.Moved) - { - Interactions[0].Vector2Data = TouchData.deltaPosition; - - if (Interactions[0].Changed) - { - inputSystem.RaisePositionInputChanged(InputSource, ControllerHandedness, Interactions[0].MixedRealityInputAction, TouchData.deltaPosition); - } - - lastPose.Position = InputSource.Pointers[0].Position; - lastPose.Rotation = InputSource.Pointers[0].Rotation; - inputSystem.RaiseSourcePoseChanged(InputSource, this, lastPose); - - Interactions[1].PoseData = lastPose; - - if (Interactions[1].Changed) - { - inputSystem.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[1].MixedRealityInputAction, lastPose); - } - - if (!isManipulating) - { - if (Mathf.Abs(TouchData.deltaPosition.x) > ManipulationThreshold || - Mathf.Abs(TouchData.deltaPosition.y) > ManipulationThreshold) - { - inputSystem?.RaiseGestureCanceled(this, holdingAction); - isHolding = false; - - inputSystem?.RaiseGestureStarted(this, manipulationAction); - isManipulating = true; - } - } - else - { - inputSystem.RaiseGestureUpdated(this, manipulationAction, TouchData.deltaPosition); - } - - // Send dragged event, to inform manipulation handlers. - inputSystem.RaisePointerDragged(InputSource.Pointers[0], Interactions[1].MixedRealityInputAction); - } - } - } - - private static readonly ProfilerMarker EndTouchPerfMarker = new ProfilerMarker("[MRTK] UnityTouchController.EndTouch"); - - /// - /// End the touch. - /// - public void EndTouch() - { - using (EndTouchPerfMarker.Auto()) - { - var inputSystem = CoreServices.InputSystem; - - if (inputSystem == null) - { - return; - } - - if (TouchData.phase == TouchPhase.Ended) - { - if (Lifetime < MaxTapContactTime) - { - if (isHolding) - { - inputSystem.RaiseGestureCanceled(this, holdingAction); - isHolding = false; - } - - if (isManipulating) - { - inputSystem.RaiseGestureCanceled(this, manipulationAction); - isManipulating = false; - } - - inputSystem.RaisePointerClicked(InputSource.Pointers[0], Interactions[2].MixedRealityInputAction, TouchData.tapCount); - } - - if (isHolding) - { - inputSystem.RaiseGestureCompleted(this, holdingAction); - isHolding = false; - } - - if (isManipulating) - { - inputSystem.RaiseGestureCompleted(this, manipulationAction, TouchData.deltaPosition); - isManipulating = false; - } - } - - if (isHolding) - { - inputSystem.RaiseGestureCompleted(this, holdingAction); - isHolding = false; - } - - Debug.Assert(!isHolding); - - if (isManipulating) - { - inputSystem.RaiseGestureCompleted(this, manipulationAction, TouchData.deltaPosition); - isManipulating = false; - } - - Debug.Assert(!isManipulating); - - inputSystem.RaiseOnInputUp(InputSource, Handedness.None, Interactions[2].MixedRealityInputAction); - inputSystem.RaisePointerUp(InputSource.Pointers[0], Interactions[2].MixedRealityInputAction); - - Lifetime = 0.0f; - isTouched = false; - Interactions[1].PoseData = MixedRealityPose.ZeroIdentity; - Interactions[0].Vector2Data = Vector2.zero; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs.meta deleted file mode 100644 index c63ea5c25..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4614052ed35547c4be56bdb7ffcbb3d0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs deleted file mode 100644 index ca9af86dd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UInput = UnityEngine.Input; - -namespace Microsoft.MixedReality.Toolkit.Input.UnityInput -{ - /// - /// Manages Touch devices using unity input system. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - (SupportedPlatforms)(-1), // All platforms supported by Unity - "Unity Touch Device Manager")] - public class UnityTouchDeviceManager : BaseInputDeviceManager - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public UnityTouchDeviceManager( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public UnityTouchDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - private static readonly Dictionary ActiveTouches = new Dictionary(); - - private List touchesToRemove = new List(); - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] UnityTouchDeviceManager.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - base.Update(); - - // Ensure that touch up and source lost events are at least one frame apart. - for (int i = 0; i < touchesToRemove.Count; i++) - { - IMixedRealityController controller = touchesToRemove[i]; - Service?.RaiseSourceLost(controller.InputSource, controller); - } - touchesToRemove.Clear(); - - int touchCount = UInput.touchCount; - for (int i = 0; i < touchCount; i++) - { - Touch touch = UInput.touches[i]; - - // Construct a ray from the current touch coordinates - Ray ray = CameraCache.Main.ScreenPointToRay(touch.position); - - switch (touch.phase) - { - case TouchPhase.Began: - AddTouchController(touch, ray); - break; - case TouchPhase.Moved: - case TouchPhase.Stationary: - UpdateTouchData(touch, ray); - break; - case TouchPhase.Ended: - case TouchPhase.Canceled: - RemoveTouchController(touch); - break; - } - } - } - } - - /// - public override void Disable() - { - base.Disable(); - - foreach (var controller in ActiveTouches) - { - if (controller.Value == null || Service == null) { continue; } - - foreach (var inputSource in Service.DetectedInputSources) - { - if (inputSource.SourceId == controller.Value.InputSource.SourceId) - { - Service.RaiseSourceLost(controller.Value.InputSource, controller.Value); - } - } - } - - ActiveTouches.Clear(); - } - - private static readonly ProfilerMarker AddTouchControllerPerfMarker = new ProfilerMarker("[MRTK] UnityTouchDeviceManager.AddTouchController"); - - private void AddTouchController(Touch touch, Ray ray) - { - using (AddTouchControllerPerfMarker.Auto()) - { - UnityTouchController controller; - - if (!ActiveTouches.TryGetValue(touch.fingerId, out controller)) - { - IMixedRealityInputSource inputSource = null; - - if (Service != null) - { - var pointers = RequestPointers(SupportedControllerType.TouchScreen, Handedness.Any); - inputSource = Service.RequestNewGenericInputSource($"Touch {touch.fingerId}", pointers); - } - - controller = new UnityTouchController(TrackingState.NotApplicable, Handedness.Any, inputSource); - - if (inputSource != null) - { - for (int i = 0; i < inputSource.Pointers.Length; i++) - { - inputSource.Pointers[i].Controller = controller; - var touchPointer = (IMixedRealityTouchPointer)inputSource.Pointers[i]; - touchPointer.TouchRay = ray; - touchPointer.FingerId = touch.fingerId; - } - } - - ActiveTouches.Add(touch.fingerId, controller); - } - - Service?.RaiseSourceDetected(controller.InputSource, controller); - - controller.TouchData = touch; - controller.StartTouch(); - } - } - - private static readonly ProfilerMarker UpdateTouchDataPerfMarker = new ProfilerMarker("[MRTK] UnityTouchDeviceManager.UpdateTouchData"); - - private void UpdateTouchData(Touch touch, Ray ray) - { - using (UpdateTouchDataPerfMarker.Auto()) - { - UnityTouchController controller; - - if (!ActiveTouches.TryGetValue(touch.fingerId, out controller)) - { - return; - } - - controller.TouchData = touch; - var pointer = (IMixedRealityTouchPointer)controller.InputSource.Pointers[0]; - controller.ScreenPointRay = pointer.TouchRay = ray; - controller.Update(); - } - } - - private static readonly ProfilerMarker RemoveTouchControllerPerfMarker = new ProfilerMarker("[MRTK] UnityTouchDeviceManager.RemoveTouchController"); - - private void RemoveTouchController(Touch touch) - { - using (RemoveTouchControllerPerfMarker.Auto()) - { - UnityTouchController controller; - - if (!ActiveTouches.TryGetValue(touch.fingerId, out controller)) - { - return; - } - - RecyclePointers(controller.InputSource); - - controller.TouchData = touch; - controller.EndTouch(); - // Schedule the source lost event. - touchesToRemove.Add(controller); - // Remove from the active collection - ActiveTouches.Remove(touch.fingerId); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs.meta deleted file mode 100644 index 992a49487..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/UnityTouchDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 309fe589c6b9e1b4085742edfa24f17c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs deleted file mode 100644 index 3922baa44..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.UnityInput -{ - /// - /// Xbox Controller using Unity Input System - /// - [MixedRealityController( - SupportedControllerType.Xbox, - new[] { Handedness.None }, - "Textures/XboxController")] - public class XboxController : GenericJoystickController - { - /// - /// Constructor. - /// - public XboxController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - /// Default interactions for Xbox Controller using Unity Input System. - /// - public override MixedRealityInteractionMapping[] DefaultInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Left Thumbstick", AxisType.DualAxis, DeviceInputType.ThumbStick, ControllerMappingLibrary.AXIS_1, ControllerMappingLibrary.AXIS_2, false, true), - new MixedRealityInteractionMapping(1, "Left Thumbstick Click", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton8), - new MixedRealityInteractionMapping(2, "Right Thumbstick", AxisType.DualAxis, DeviceInputType.ThumbStick, ControllerMappingLibrary.AXIS_4, ControllerMappingLibrary.AXIS_5, false, true), - new MixedRealityInteractionMapping(3, "Right Thumbstick Click", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton9), - new MixedRealityInteractionMapping(4, "D-Pad", AxisType.DualAxis, DeviceInputType.DirectionalPad, ControllerMappingLibrary.AXIS_6, ControllerMappingLibrary.AXIS_7, false, true), - new MixedRealityInteractionMapping(5, "Shared Trigger", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_3), - new MixedRealityInteractionMapping(6, "Left Trigger", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(7, "Right Trigger", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(8, "View", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton6), - new MixedRealityInteractionMapping(9, "Menu", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton7), - new MixedRealityInteractionMapping(10, "Left Bumper", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton4), - new MixedRealityInteractionMapping(11, "Right Bumper", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton5), - new MixedRealityInteractionMapping(12, "A", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton0), - new MixedRealityInteractionMapping(13, "B", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton1), - new MixedRealityInteractionMapping(14, "X", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton2), - new MixedRealityInteractionMapping(15, "Y", AxisType.Digital, DeviceInputType.ButtonPress,KeyCode.JoystickButton3), - }; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs.meta b/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs.meta deleted file mode 100644 index 79030713b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Providers/UnityInput/XboxController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b4aaacb7dcfd41358fe86a99bb55116c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services.meta b/AR-ROS/Assets/MRTK/Core/Services.meta deleted file mode 100644 index 8671cdf44..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a6b69293aef1485998d949f6e8f97061 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs b/AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs deleted file mode 100644 index c8f3086ca..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs +++ /dev/null @@ -1,948 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit.Boundary -{ - public abstract class BaseBoundarySystem : BaseCoreSystem, IMixedRealityBoundarySystem - { - /// - /// Constructor. - /// - /// The configuration profile for the service. - /// The application's configured . - protected BaseBoundarySystem( - MixedRealityBoundaryVisualizationProfile profile, - ExperienceScale scale) : base(profile) - { - Scale = scale; - BoundaryProfile = profile; - } - - /// - /// Reads the visualization profile contents and stores the values in class properties. - /// - private void ReadProfile() - { - if (BoundaryProfile == null) { return; } - - BoundaryHeight = BoundaryProfile.BoundaryHeight; - ShowFloor = BoundaryProfile.ShowFloor; - FloorPhysicsLayer = BoundaryProfile.FloorPhysicsLayer; - ShowPlayArea = BoundaryProfile.ShowPlayArea; - PlayAreaPhysicsLayer = BoundaryProfile.PlayAreaPhysicsLayer; - ShowTrackedArea = BoundaryProfile.ShowTrackedArea; - TrackedAreaPhysicsLayer = BoundaryProfile.TrackedAreaPhysicsLayer; - ShowBoundaryWalls = BoundaryProfile.ShowBoundaryWalls; - BoundaryWallsPhysicsLayer = BoundaryProfile.BoundaryWallsPhysicsLayer; - ShowBoundaryCeiling = BoundaryProfile.ShowBoundaryCeiling; - CeilingPhysicsLayer = BoundaryProfile.CeilingPhysicsLayer; - } - - /// - /// Whether any XR device is present. - /// - protected virtual bool IsXRDevicePresent { get; } = true; - - #region IMixedRealityService Implementation - - private MixedRealityBoundaryVisualizationProfile BoundaryProfile { get; } - - private BoundaryEventData boundaryEventData = null; - - /// - public override string Name { get; protected set; } = "Mixed Reality Boundary System"; - - /// - public override void Initialize() - { - // The profile needs to be read on initialization to ensure that re-initialization - // after profile change reads the correct data. - ReadProfile(); - - if (!Application.isPlaying || !IsXRDevicePresent) { return; } - - boundaryEventData = new BoundaryEventData(EventSystem.current); - - SetTrackingSpace(); - CalculateBoundaryBounds(); - - RaiseBoundaryVisualizationChanged(); - } - - - /// - public override void Destroy() - { - // First, detach the child objects (we are tracking them separately) - // and clean up the parent. - if (boundaryVisualizationParent != null) - { - if (Application.isEditor) - { - Object.DestroyImmediate(boundaryVisualizationParent); - } - else - { - boundaryVisualizationParent.transform.DetachChildren(); - Object.Destroy(boundaryVisualizationParent); - } - - boundaryVisualizationParent = null; - } - - // Next, clean up the detached children. - if (currentFloorObject != null) - { - if (Application.isEditor) - { - Object.DestroyImmediate(currentFloorObject); - } - else - { - Object.Destroy(currentFloorObject); - } - currentFloorObject = null; - } - - if (currentPlayAreaObject != null) - { - if (Application.isEditor) - { - Object.DestroyImmediate(currentPlayAreaObject); - } - else - { - Object.Destroy(currentPlayAreaObject); - } - currentPlayAreaObject = null; - } - - if (currentTrackedAreaObject != null) - { - if (Application.isEditor) - { - Object.DestroyImmediate(currentTrackedAreaObject); - } - else - { - Object.Destroy(currentTrackedAreaObject); - } - currentTrackedAreaObject = null; - } - - if (currentBoundaryWallObject != null) - { - if (Application.isEditor) - { - Object.DestroyImmediate(currentBoundaryWallObject); - } - else - { - Object.Destroy(currentBoundaryWallObject); - } - currentBoundaryWallObject = null; - } - - if (currentCeilingObject != null) - { - if (Application.isEditor) - { - Object.DestroyImmediate(currentCeilingObject); - } - else - { - Object.Destroy(currentCeilingObject); - } - currentCeilingObject = null; - } - - showFloor = false; - showPlayArea = false; - showTrackedArea = false; - showBoundaryWalls = false; - showCeiling = false; - - RaiseBoundaryVisualizationChanged(); - } - - - /// - /// Raises an event to indicate that the visualization of the boundary has been changed by the boundary system. - /// - private void RaiseBoundaryVisualizationChanged() - { - if (!Application.isPlaying || boundaryEventData == null) { return; } - boundaryEventData.Initialize(this, ShowFloor, ShowPlayArea, ShowTrackedArea, ShowBoundaryWalls, ShowBoundaryCeiling); - HandleEvent(boundaryEventData, OnVisualizationChanged); - } - - /// - /// Event sent whenever the boundary visualization changes. - /// - private static readonly ExecuteEvents.EventFunction OnVisualizationChanged = - delegate (IMixedRealityBoundaryHandler handler, BaseEventData eventData) - { - var boundaryEventData = ExecuteEvents.ValidateEventData(eventData); - handler.OnBoundaryVisualizationChanged(boundaryEventData); - }; - - #endregion IMixedRealityService Implementation - - #region IMixedRealtyEventSystem Implementation - - /// - public override void HandleEvent(BaseEventData eventData, ExecuteEvents.EventFunction eventHandler) - { - base.HandleEvent(eventData, eventHandler); - } - - /// - /// Registers the GameObject to listen for boundary events. - /// - public override void Register(GameObject listener) - { - base.Register(listener); - } - - /// - /// UnRegisters the GameObject to listen for boundary events. - /// /// - public override void Unregister(GameObject listener) - { - base.Unregister(listener); - } - - #endregion - - #region IMixedRealityEventSource Implementation - - /// - bool IEqualityComparer.Equals(object x, object y) - { - // There shouldn't be other Boundary Managers to compare to. - return false; - } - - /// - public int GetHashCode(object obj) - { - return Mathf.Abs(SourceName.GetHashCode()); - } - - /// - public uint SourceId { get; } = 0; - - /// - public string SourceName { get; } = "Mixed Reality Boundary System"; - - #endregion IMixedRealityEventSource Implementation - - #region IMixedRealityBoundarySystem Implementation - - /// - /// The thickness of three dimensional generated boundary objects. - /// - private const float boundaryObjectThickness = 0.005f; - - /// - /// A small offset to avoid render conflicts, primarily with the floor. - /// - /// - /// This offset is used to avoid consuming multiple physics layers. - /// - private const float boundaryObjectRenderOffset = 0.001f; - - private GameObject boundaryVisualizationParent; - - /// - /// Parent GameObject which will encapsulate all of the teleportable boundary visualizations. - /// - private GameObject BoundaryVisualizationParent - { - get - { - if (boundaryVisualizationParent != null) - { - return boundaryVisualizationParent; - } - - var visualizationParent = new GameObject("Boundary System Visualizations"); - MixedRealityPlayspace.AddChild(visualizationParent.transform); - return boundaryVisualizationParent = visualizationParent; - } - } - - /// - /// Layer used to tell the (non-floor) boundary objects to not accept raycasts - /// - private readonly int ignoreRaycastLayerValue = 2; - - private MixedRealityBoundaryVisualizationProfile boundaryVisualizationProfile = null; - - /// - public MixedRealityBoundaryVisualizationProfile BoundaryVisualizationProfile - { - get - { - if (boundaryVisualizationProfile == null) - { - boundaryVisualizationProfile = ConfigurationProfile as MixedRealityBoundaryVisualizationProfile; - } - return boundaryVisualizationProfile; - } - } - - /// - public ExperienceScale Scale { get; set; } - - /// - public float BoundaryHeight { get; set; } = 3f; - - private bool showFloor = false; - - /// - public bool ShowFloor - { - get { return showFloor; } - set - { - if (showFloor != value) - { - showFloor = value; - - if (value && (currentFloorObject == null)) - { - GetFloorVisualization(); - } - - if (currentFloorObject != null) - { - currentFloorObject.SetActive(value); - } - - RaiseBoundaryVisualizationChanged(); - } - } - } - - private bool showPlayArea = false; - - private int floorPhysicsLayer; - - /// - public int FloorPhysicsLayer - { - get - { - if (currentFloorObject != null) - { - floorPhysicsLayer = currentFloorObject.layer; - } - - return floorPhysicsLayer; - } - set - { - floorPhysicsLayer = value; - if (currentFloorObject != null) - { - currentFloorObject.layer = floorPhysicsLayer; - } - } - } - - /// - public bool ShowPlayArea - { - get { return showPlayArea; } - set - { - if (showPlayArea != value) - { - showPlayArea = value; - - if (value && (currentPlayAreaObject == null)) - { - GetPlayAreaVisualization(); - } - - if (currentPlayAreaObject != null) - { - currentPlayAreaObject.SetActive(value); - } - - RaiseBoundaryVisualizationChanged(); - } - } - } - - private bool showTrackedArea = false; - - private int playAreaPhysicsLayer; - - /// - public int PlayAreaPhysicsLayer - { - get - { - if (currentPlayAreaObject != null) - { - playAreaPhysicsLayer = currentPlayAreaObject.layer; - } - - return playAreaPhysicsLayer; - } - set - { - playAreaPhysicsLayer = value; - - if (currentPlayAreaObject != null) - { - currentPlayAreaObject.layer = playAreaPhysicsLayer; - } - } - } - - /// - public bool ShowTrackedArea - { - get { return showTrackedArea; } - set - { - if (showTrackedArea != value) - { - showTrackedArea = value; - - if (value && (currentTrackedAreaObject == null)) - { - GetTrackedAreaVisualization(); - } - - if (currentTrackedAreaObject != null) - { - currentTrackedAreaObject.SetActive(value); - } - - RaiseBoundaryVisualizationChanged(); - } - } - } - - private bool showBoundaryWalls = false; - - private int trackedAreaPhysicsLayer; - - /// - public int TrackedAreaPhysicsLayer - { - get - { - if (currentTrackedAreaObject != null) - { - trackedAreaPhysicsLayer = currentTrackedAreaObject.layer; - } - - return trackedAreaPhysicsLayer; - } - set - { - trackedAreaPhysicsLayer = value; - - if (currentTrackedAreaObject != null) - { - currentTrackedAreaObject.layer = trackedAreaPhysicsLayer; - } - } - } - - /// - public bool ShowBoundaryWalls - { - get { return showBoundaryWalls; } - set - { - if (showBoundaryWalls != value) - { - showBoundaryWalls = value; - - if (value && (currentBoundaryWallObject == null)) - { - GetBoundaryWallVisualization(); - } - - if (currentBoundaryWallObject != null) - { - currentBoundaryWallObject.SetActive(value); - } - - RaiseBoundaryVisualizationChanged(); - } - } - } - - private bool showCeiling = false; - - private int boundaryWallsPhysicsLayer; - - /// - public int BoundaryWallsPhysicsLayer - { - get - { - if (currentBoundaryWallObject != null) - { - boundaryWallsPhysicsLayer = currentBoundaryWallObject.layer; - } - - return boundaryWallsPhysicsLayer; - } - set - { - boundaryWallsPhysicsLayer = value; - - if (currentBoundaryWallObject != null) - { - currentBoundaryWallObject.layer = boundaryWallsPhysicsLayer; - } - } - } - - /// - public bool ShowBoundaryCeiling - { - get { return showCeiling; } - set - { - if (showCeiling != value) - { - showCeiling = value; - - if (value && (currentCeilingObject == null)) - { - GetBoundaryCeilingVisualization(); - } - - if (currentCeilingObject != null) - { - currentCeilingObject.SetActive(value); - } - - RaiseBoundaryVisualizationChanged(); - } - } - } - - private int ceilingPhysicsLayer; - - /// - public int CeilingPhysicsLayer - { - get - { - if (currentCeilingObject != null) - { - ceilingPhysicsLayer = currentCeilingObject.layer; - } - - return ceilingPhysicsLayer; - } - set - { - ceilingPhysicsLayer = value; - - if (currentCeilingObject != null) - { - currentFloorObject.layer = ceilingPhysicsLayer; - } - } - } - - /// - public Edge[] Bounds { get; protected set; } = System.Array.Empty(); - - /// - public float? FloorHeight { get; protected set; } = null; - - /// - public bool Contains(Vector3 location, BoundaryType boundaryType = BoundaryType.TrackedArea) - { - if (!EdgeUtilities.IsValidPoint(location)) - { - // Invalid location. - return false; - } - - if (!FloorHeight.HasValue) - { - // No floor. - return false; - } - - // Handle the user teleporting (boundary moves with them). - location = MixedRealityPlayspace.InverseTransformPoint(location); - - if (FloorHeight.Value > location.y || - BoundaryHeight < location.y) - { - // Location below the floor or above the boundary height. - return false; - } - - // Boundary coordinates are always "on the floor" - Vector2 point = new Vector2(location.x, location.z); - - if (boundaryType == BoundaryType.PlayArea) - { - // Check the inscribed rectangle. - if (RectangularBounds != null) - { - return RectangularBounds.IsInsideBoundary(point); - } - } - else if (boundaryType == BoundaryType.TrackedArea) - { - // Check the geometry - return EdgeUtilities.IsInsideBoundary(Bounds, point); - } - - // Not in either boundary type. - return false; - } - - /// - public bool TryGetRectangularBoundsParams(out Vector2 center, out float angle, out float width, out float height) - { - if (RectangularBounds == null || !RectangularBounds.IsValid) - { - center = EdgeUtilities.InvalidPoint; - angle = 0f; - width = 0f; - height = 0f; - return false; - } - - // Handle the user teleporting (boundary moves with them). - Vector3 transformedCenter = MixedRealityPlayspace.TransformPoint( - new Vector3(RectangularBounds.Center.x, 0f, RectangularBounds.Center.y)); - - center = new Vector2(transformedCenter.x, transformedCenter.z); - angle = RectangularBounds.Angle; - width = RectangularBounds.Width; - height = RectangularBounds.Height; - return true; - } - - /// - public GameObject GetFloorVisualization() - { - if (!Application.isPlaying) { return null; } - - if (currentFloorObject != null) - { - return currentFloorObject; - } - - MixedRealityBoundaryVisualizationProfile profile = ConfigurationProfile as MixedRealityBoundaryVisualizationProfile; - if (profile == null) { return null; } - - if (!FloorHeight.HasValue) - { - // We were unable to locate the floor. - return null; - } - - Vector2 floorScale = profile.FloorScale; - - // Render the floor. - currentFloorObject = GameObject.CreatePrimitive(PrimitiveType.Cube); - currentFloorObject.name = "Boundary System Floor"; - currentFloorObject.transform.localScale = new Vector3(floorScale.x, boundaryObjectThickness, floorScale.y); - currentFloorObject.transform.Translate(new Vector3( - MixedRealityPlayspace.Position.x, - FloorHeight.Value - (currentFloorObject.transform.localScale.y * 0.5f), - MixedRealityPlayspace.Position.z)); - currentFloorObject.layer = FloorPhysicsLayer; - currentFloorObject.GetComponent().sharedMaterial = profile.FloorMaterial; - - return currentFloorObject; - } - - /// - public GameObject GetPlayAreaVisualization() - { - if (!Application.isPlaying) { return null; } - - if (currentPlayAreaObject != null) - { - return currentPlayAreaObject; - } - - MixedRealityBoundaryVisualizationProfile profile = ConfigurationProfile as MixedRealityBoundaryVisualizationProfile; - if (profile == null) { return null; } - - // Get the rectangular bounds. - Vector2 center; - float angle; - float width; - float height; - if (!TryGetRectangularBoundsParams(out center, out angle, out width, out height)) - { - // No rectangular bounds, therefore cannot create the play area. - return null; - } - - // Render the rectangular bounds. - if (!EdgeUtilities.IsValidPoint(center)) - { - // Invalid rectangle / play area not found - return null; - } - - currentPlayAreaObject = GameObject.CreatePrimitive(PrimitiveType.Quad); - currentPlayAreaObject.name = "Play Area"; - currentPlayAreaObject.layer = PlayAreaPhysicsLayer; - currentPlayAreaObject.transform.Translate(new Vector3(center.x, boundaryObjectRenderOffset, center.y)); - currentPlayAreaObject.transform.Rotate(new Vector3(90, -angle, 0)); - currentPlayAreaObject.transform.localScale = new Vector3(width, height, 1.0f); - currentPlayAreaObject.GetComponent().sharedMaterial = profile.PlayAreaMaterial; - - currentPlayAreaObject.transform.parent = BoundaryVisualizationParent.transform; - - return currentPlayAreaObject; - } - - /// - public GameObject GetTrackedAreaVisualization() - { - if (!Application.isPlaying) { return null; } - - if (currentTrackedAreaObject != null) - { - return currentTrackedAreaObject; - } - - MixedRealityBoundaryVisualizationProfile profile = ConfigurationProfile as MixedRealityBoundaryVisualizationProfile; - if (profile == null) { return null; } - - if (Bounds.Length == 0) - { - // If we do not have boundary edges, we cannot render them. - return null; - } - - // Get the line vertices - List lineVertices = new List(); - for (int i = 0; i < Bounds.Length; i++) - { - lineVertices.Add(new Vector3(Bounds[i].PointA.x, 0f, Bounds[i].PointA.y)); - } - // Add the first vertex again to ensure the loop closes. - lineVertices.Add(lineVertices[0]); - - // We use an empty object and attach a line renderer. - currentTrackedAreaObject = new GameObject("Tracked Area") - { - layer = ignoreRaycastLayerValue - }; - currentTrackedAreaObject.AddComponent(); - currentTrackedAreaObject.transform.Translate(new Vector3( - MixedRealityPlayspace.Position.x, - boundaryObjectRenderOffset, - MixedRealityPlayspace.Position.z)); - currentPlayAreaObject.layer = TrackedAreaPhysicsLayer; - - // Configure the renderer properties. - float lineWidth = 0.01f; - LineRenderer lineRenderer = currentTrackedAreaObject.GetComponent(); - lineRenderer.sharedMaterial = profile.TrackedAreaMaterial; - lineRenderer.useWorldSpace = false; - lineRenderer.startWidth = lineWidth; - lineRenderer.endWidth = lineWidth; - lineRenderer.positionCount = lineVertices.Count; - lineRenderer.SetPositions(lineVertices.ToArray()); - - currentTrackedAreaObject.transform.parent = BoundaryVisualizationParent.transform; - - return currentTrackedAreaObject; - } - - /// - public GameObject GetBoundaryWallVisualization() - { - if (!Application.isPlaying) { return null; } - - if (currentBoundaryWallObject != null) - { - return currentBoundaryWallObject; - } - - MixedRealityBoundaryVisualizationProfile profile = ConfigurationProfile as MixedRealityBoundaryVisualizationProfile; - if (profile == null) { return null; } - - if (!FloorHeight.HasValue) - { - // We need a floor on which to place the walls. - return null; - } - - if (Bounds.Length == 0) - { - // If we do not have boundary edges, we cannot render walls. - return null; - } - - currentBoundaryWallObject = new GameObject("Tracked Area Walls") - { - layer = BoundaryWallsPhysicsLayer - }; - - // Create and parent the child objects - float wallDepth = boundaryObjectThickness; - for (int i = 0; i < Bounds.Length; i++) - { - GameObject wall = GameObject.CreatePrimitive(PrimitiveType.Cube); - wall.name = $"Wall {i}"; - wall.GetComponent().sharedMaterial = profile.BoundaryWallMaterial; - wall.transform.localScale = new Vector3((Bounds[i].PointB - Bounds[i].PointA).magnitude, BoundaryHeight, wallDepth); - wall.layer = ignoreRaycastLayerValue; - - // Position and rotate the wall. - Vector2 mid = Vector2.Lerp(Bounds[i].PointA, Bounds[i].PointB, 0.5f); - wall.transform.position = new Vector3(mid.x, (BoundaryHeight * 0.5f), mid.y); - float rotationAngle = MathUtilities.GetAngleBetween(Bounds[i].PointB, Bounds[i].PointA); - wall.transform.rotation = Quaternion.Euler(0.0f, -rotationAngle, 0.0f); - - wall.transform.parent = currentBoundaryWallObject.transform; - } - - currentBoundaryWallObject.transform.parent = BoundaryVisualizationParent.transform; - - return currentBoundaryWallObject; - } - - /// - public GameObject GetBoundaryCeilingVisualization() - { - if (!Application.isPlaying) { return null; } - - if (currentCeilingObject != null) - { - return currentCeilingObject; - } - - MixedRealityBoundaryVisualizationProfile profile = ConfigurationProfile as MixedRealityBoundaryVisualizationProfile; - if (profile == null) { return null; } - - if (Bounds.Length == 0) - { - // If we do not have boundary edges, we cannot render a ceiling. - return null; - } - - // Get the smallest rectangle that contains the entire boundary. - Bounds boundaryBoundingBox = new Bounds(); - for (int i = 0; i < Bounds.Length; i++) - { - // The boundary geometry is a closed loop. As such, we can encapsulate only PointA of each Edge. - boundaryBoundingBox.Encapsulate(new Vector3(Bounds[i].PointA.x, BoundaryHeight * 0.5f, Bounds[i].PointA.y)); - } - - // Render the ceiling. - float ceilingDepth = boundaryObjectThickness; - currentCeilingObject = GameObject.CreatePrimitive(PrimitiveType.Cube); - currentCeilingObject.name = "Ceiling"; - currentCeilingObject.layer = ignoreRaycastLayerValue; - currentCeilingObject.transform.localScale = new Vector3(boundaryBoundingBox.size.x, ceilingDepth, boundaryBoundingBox.size.z); - currentCeilingObject.transform.Translate(new Vector3( - boundaryBoundingBox.center.x, - BoundaryHeight + (currentCeilingObject.transform.localScale.y * 0.5f), - boundaryBoundingBox.center.z)); - currentCeilingObject.GetComponent().sharedMaterial = profile.BoundaryCeilingMaterial; - currentCeilingObject.layer = CeilingPhysicsLayer; - currentCeilingObject.transform.parent = BoundaryVisualizationParent.transform; - - return currentCeilingObject; - } - - #endregion IMixedRealityBoundarySystem Implementation - - /// - /// The largest rectangle that is contained withing the play space geometry. - /// - protected InscribedRectangle RectangularBounds = null; - - private GameObject currentFloorObject = null; - private GameObject currentPlayAreaObject = null; - private GameObject currentTrackedAreaObject = null; - private GameObject currentBoundaryWallObject = null; - private GameObject currentCeilingObject = null; - - /// - /// Retrieves the boundary geometry. - /// - /// A list of geometry points, or null if geometry was unavailable. - protected abstract List GetBoundaryGeometry(); - - /// - /// Updates the tracking space on the XR device. - /// - protected abstract void SetTrackingSpace(); - - /// - /// Retrieves the boundary geometry and creates the boundary and inscribed play space volumes. - /// - private void CalculateBoundaryBounds() - { - // Reset the bounds - Bounds = System.Array.Empty(); - FloorHeight = null; - RectangularBounds = null; - - // Get the boundary geometry. - var boundaryGeometry = GetBoundaryGeometry(); - - if (boundaryGeometry != null && boundaryGeometry.Count > 0) - { - // Get the boundary geometry. - var boundaryEdges = new List(0); - - // FloorHeight starts out as null. Use a suitably high value for the floor to ensure - // that we do not accidentally set it too low. - float floorHeight = float.MaxValue; - - for (int i = 0; i < boundaryGeometry.Count; i++) - { - Vector3 pointA = boundaryGeometry[i]; - Vector3 pointB = boundaryGeometry[(i + 1) % boundaryGeometry.Count]; - boundaryEdges.Add(new Edge(pointA, pointB)); - - floorHeight = Mathf.Min(floorHeight, boundaryGeometry[i].y); - } - - FloorHeight = floorHeight; - Bounds = boundaryEdges.ToArray(); - CreateInscribedBounds(); - } - else - { - Debug.LogWarning("Failed to calculate boundary bounds."); - } - } - - /// - /// Creates the two dimensional volume described by the largest rectangle that - /// is contained withing the play space geometry and the configured height. - /// - private void CreateInscribedBounds() - { - // We always use the same seed so that from run to run, the inscribed bounds are consistent. - RectangularBounds = new InscribedRectangle(Bounds, Mathf.Abs("Mixed Reality Toolkit".GetHashCode())); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs.meta deleted file mode 100644 index a07a8c0c9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseBoundarySystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c0d5e9b1162c15046a015ddbb0901ea2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs b/AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs deleted file mode 100644 index d1c1ab96d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - - -namespace Microsoft.MixedReality.Toolkit -{ - public abstract class BaseCoreSystem : BaseEventSystem - { - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// The configuration profile for the service. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - protected BaseCoreSystem( - IMixedRealityServiceRegistrar registrar, - BaseMixedRealityProfile profile = null) : this(profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The configuration profile for the service. - protected BaseCoreSystem( - BaseMixedRealityProfile profile = null) : base() - { - ConfigurationProfile = profile; - Priority = 5; // Core systems have a higher default priority than other services - } - - /// - /// The service registrar instance that registered this service. - /// - [System.Obsolete("The Registrar property is obsolete and will be removed in a future version of the Microsoft Mixed Reality Toolkit")] - protected IMixedRealityServiceRegistrar Registrar { get; set; } = null; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs.meta deleted file mode 100644 index 2063afe41..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseCoreSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: af340818a59327247b401b39741c6eed -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs deleted file mode 100644 index bec6d6dcd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - [System.Obsolete("Add a of type IMixedRealityService, which defines the service type this data provider is valid for.")] - public abstract class BaseDataProvider : BaseDataProvider - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The to which the provider is providing data. - /// The friendly name of the data provider. - /// The registration priority of the data provider. - /// The configuration profile for the data provider. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - protected BaseDataProvider( - IMixedRealityServiceRegistrar registrar, - IMixedRealityService service, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(service, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The to which the provider is providing data. - /// The friendly name of the data provider. - /// The registration priority of the data provider. - /// The configuration profile for the data provider. - protected BaseDataProvider( - IMixedRealityService service, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(service, name, priority, profile) - { - } - } - - /// - /// The base data provider implements and provides default properties for all data providers. - /// - public abstract class BaseDataProvider : BaseService, IMixedRealityDataProvider where T : IMixedRealityService - { - /// - /// Constructor. - /// - /// The to which the provider is providing data. - /// The friendly name of the data provider. - /// The registration priority of the data provider. - /// The configuration profile for the data provider. - protected BaseDataProvider( - T service, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base() - { - if (service == null) - { - Debug.LogError($"{name} requires a valid service instance."); - } - - Service = service; - Name = name; - Priority = priority; - ConfigurationProfile = profile; - } - - /// - /// The service registrar instance that registered this service. - /// - [System.Obsolete("The Registrar property is obsolete and will be removed in a future version of the Microsoft Mixed Reality Toolkit")] - protected IMixedRealityServiceRegistrar Registrar { get; set; } = null; - - /// - /// The service instance to which this provider is providing data. - /// - protected T Service { get; set; } = default(T); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs.meta deleted file mode 100644 index 6fdf0cd0b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cc840fc539d2400b8117a41b1aa1733e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs b/AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs deleted file mode 100644 index f35cc02a7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs +++ /dev/null @@ -1,322 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Abstract class for core MRTK system with functionality defined for managing and accessing IMixedRealityDataProviders - /// - public abstract class BaseDataProviderAccessCoreSystem : BaseCoreSystem, IMixedRealityDataProviderAccess - { - private readonly List dataProviders = new List(); - - public override void Reset() - { - base.Reset(); - - foreach (var provider in dataProviders) - { - provider.Reset(); - } - } - - /// - public override void Enable() - { - base.Enable(); - - foreach (var provider in dataProviders) - { - provider.Enable(); - } - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] BaseDataProviderAccessCoreSystem.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - base.Update(); - - foreach (var provider in dataProviders) - { - provider.Update(); - } - } - } - - private static readonly ProfilerMarker LateUpdatePerfMarker = new ProfilerMarker("[MRTK] BaseDataProviderAccessCoreSystem.LateUpdate"); - - /// - public override void LateUpdate() - { - using (LateUpdatePerfMarker.Auto()) - { - base.LateUpdate(); - - foreach (var provider in dataProviders) - { - provider.LateUpdate(); - } - } - } - - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// The configuration profile for the service. - [Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - protected BaseDataProviderAccessCoreSystem( - IMixedRealityServiceRegistrar registrar, - BaseMixedRealityProfile profile = null) : this(profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The configuration profile for the service. - protected BaseDataProviderAccessCoreSystem( - BaseMixedRealityProfile profile = null) : base(profile) - { } - - #region IMixedRealityDataProviderAccess Implementation - - /// - public virtual IReadOnlyList GetDataProviders() - { - return dataProviders.AsReadOnly(); - } - - /// - public virtual IReadOnlyList GetDataProviders() where T : IMixedRealityDataProvider - { - List selected = new List(); - - foreach (var provider in dataProviders) - { - if (provider is T) - { - selected.Add((T)provider); - } - } - - return selected; - } - - /// - public virtual IMixedRealityDataProvider GetDataProvider(string name) - { - foreach (var provider in dataProviders) - { - if (provider.Name == name) - { - return provider; - } - } - - return null; - } - - /// - public virtual T GetDataProvider(string name = null) where T : IMixedRealityDataProvider - { - foreach (var provider in dataProviders) - { - if (provider is T) - { - if (name == null || provider.Name == name) - { - return (T)provider; - } - } - } - - return default(T); - } - - #endregion IMixedRealityDataProviderAccess Implementation - - /// - /// Registers a data provider of the specified type. - /// - protected bool RegisterDataProvider( - Type concreteType, - string providerName, - SupportedPlatforms supportedPlatforms = (SupportedPlatforms)(-1), - params object[] args) where T : IMixedRealityDataProvider - { - return RegisterDataProviderInternal( - true, // Retry with an added IMixedRealityService parameter - concreteType, - providerName, - supportedPlatforms, - args); - } - - /// - /// Registers a data provider of the specified type. - /// - [Obsolete("RegisterDataProvider(Type, SupportedPlatforms, param object[]) is obsolete and will be removed from a future version of MRTK\n" + - "Please use RegisterDataProvider(Type, string, SupportedPlatforms, params object[])")] - protected bool RegisterDataProvider( - Type concreteType, - SupportedPlatforms supportedPlatforms = (SupportedPlatforms)(-1), - params object[] args) where T : IMixedRealityDataProvider - { - return RegisterDataProvider( - concreteType, - string.Empty, - supportedPlatforms, - args); - } - - /// - /// Internal method that creates an instance of the specified concrete type and registers the provider. - /// - private bool RegisterDataProviderInternal( - bool retryWithRegistrar, - Type concreteType, - string providerName, - SupportedPlatforms supportedPlatforms = (SupportedPlatforms)(-1), - params object[] args) where T : IMixedRealityDataProvider - { - if (!PlatformUtility.IsPlatformSupported(supportedPlatforms)) - { - DebugUtilities.LogVerboseFormat( - "Not registering data provider of type {0} with name {1} because the current platform is not in supported platforms {2}", - concreteType, - providerName, - supportedPlatforms); - return false; - } - - if (concreteType == null) - { - Debug.LogError($"Unable to register {typeof(T).Name} data provider ({(!string.IsNullOrWhiteSpace(providerName) ? providerName : "unknown")}) because the value of concreteType is null.\n" + - "This may be caused by code being stripped during linking. The link.xml file in the MixedRealityToolkit.Generated folder is used to control code preservation.\n" + - "More information can be found at https://docs.unity3d.com/Manual/ManagedCodeStripping.html."); - return false; - } - - if (!typeof(IMixedRealityDataProvider).IsAssignableFrom(concreteType)) - { - Debug.LogError($"Unable to register the {concreteType.Name} data provider. It does not implement {typeof(IMixedRealityDataProvider)}."); - return false; - } - - T dataProviderInstance; - - try - { - dataProviderInstance = (T)Activator.CreateInstance(concreteType, args); - } - catch (Exception e) - { - if (retryWithRegistrar && (e is MissingMethodException)) - { - Debug.LogWarning($"Failed to find an appropriate constructor for the {concreteType.Name} data provider. Adding the Registrar instance and re-attempting registration."); -#pragma warning disable 0618 - List updatedArgs = new List(); - updatedArgs.Add(Registrar); - if (args != null) - { - updatedArgs.AddRange(args); - } - return RegisterDataProviderInternal( - false, // Do NOT retry, we have already added the configured IMIxedRealityServiceRegistrar - concreteType, - providerName, - supportedPlatforms, - updatedArgs.ToArray()); -#pragma warning restore 0618 - } - - Debug.LogError($"Failed to register the {concreteType.Name} data provider: {e.GetType()} - {e.Message}"); - - // Failures to create the concrete type generally surface as nested exceptions - just logging - // the top level exception itself may not be helpful. If there is a nested exception (for example, - // null reference in the constructor of the object itself), it's helpful to also surface those here. - if (e.InnerException != null) - { - Debug.LogError("Underlying exception information: " + e.InnerException); - } - return false; - } - - return RegisterDataProvider(dataProviderInstance); - } - - /// - /// Registers a service of the specified type. - /// - /// The interface type of the data provider to be registered. - /// An instance of the data provider to be registered. - protected bool RegisterDataProvider(T dataProviderInstance) where T : IMixedRealityDataProvider - { - if (dataProviderInstance == null) - { - Debug.LogWarning($"Unable to add a {dataProviderInstance.Name} data provider with a null instance."); - return false; - } - - dataProviders.Add(dataProviderInstance); - dataProviderInstance.Initialize(); - - return true; - } - - /// - /// Unregisters a data provider of the specified type. - /// - /// The interface type of the data provider to be unregistered. - /// The name of the data provider to unregister. - /// True if the data provider was successfully unregistered, false otherwise. - /// If the name argument is not specified, the first instance will be unregistered - protected bool UnregisterDataProvider(string name = null) where T : IMixedRealityDataProvider - { - T dataProviderInstance = GetDataProvider(name); - - if (dataProviderInstance == null) { return false; } - - return UnregisterDataProvider(dataProviderInstance); - } - - /// - /// Unregisters a data provider. - /// - /// The interface type of the data provider to be unregistered. - /// The specific data provider instance to unregister. - /// True if the data provider was successfully unregistered, false otherwise. - protected bool UnregisterDataProvider(T dataProviderInstance) where T : IMixedRealityDataProvider - { - if (dataProviderInstance == null) - { - return false; - } - - if (dataProviders.Contains(dataProviderInstance)) - { - dataProviders.Remove(dataProviderInstance); - - dataProviderInstance.Disable(); - dataProviderInstance.Destroy(); - - return true; - } - - return false; - } - - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs.meta deleted file mode 100644 index 3b3fdbbb3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseDataProviderAccessCoreSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ae55a55587048a94b936534f01720871 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs b/AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs deleted file mode 100644 index 8dfd4b083..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs +++ /dev/null @@ -1,463 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Base Event System that can be inherited from to give other system features event capabilities. - /// - public abstract class BaseEventSystem : BaseService, IMixedRealityEventSystem - { - // Utility flag controlling error messages in 'Destroy' method for reporting dangling event handlers. - // This may generate false warnings in usual Unity play mode due to arbitrary order - // of disabling and destroying components. It is enabled by tests and can be enabled for debugging purposes. - // Variable is static to be shared between all event system instances. - public static bool enableDanglingHandlerDiagnostics = false; - - // Tracks the number of HandleEvent calls in flight - while HandleEvent is happening, - // set of registered listeners isn't safe to modify because doing so would cause an - // update on a collection that is being iterated over. Note that this also could be worked - // around by snapshotting the listener collection prior to making callouts, but this would - // also incur memory allocation on each event. - private int eventExecutionDepth = 0; - private readonly Type eventSystemHandlerType = typeof(IEventSystemHandler); - - private enum Action - { - Add, - Remove - } - - // Lists for handlers which are added/removed during event dispatching. - // Game objects and handlers are processed independently, so can be kept in separate lists. - private List> postponedActions = new List>(); - private List> postponedObjectActions = new List>(); - - public struct EventHandlerEntry - { - public IEventSystemHandler handler; - - // Cached value, whether handler is implemented by a unity component, and this component's object - // is in EventListeners collection. - // Cached for performance reasons. - public bool parentObjectIsInObjectCollection; - - public EventHandlerEntry(IEventSystemHandler h, bool isParentListener = false) - { - handler = h; - parentObjectIsInObjectCollection = isParentListener; - } - - // For better diagnostics in Unit tests - public override string ToString() - { - return $"{handler}. Parent object registered: {parentObjectIsInObjectCollection}"; - } - } - - /// - /// List of all event handlers grouped by type that are registered to this Event System. - /// - public Dictionary> EventHandlersByType { get; } = new Dictionary>(); - - #region IMixedRealityEventSystem Implementation - - /// - public List EventListeners { get; } = new List(); - - /// - public virtual void HandleEvent(BaseEventData eventData, ExecuteEvents.EventFunction eventHandler) where T : IEventSystemHandler - { - Debug.Assert(!eventData.used); - - eventExecutionDepth++; - - // This sends the event to every component that implements the corresponding event handling interface, - // regardless of whether it was the one registering the object as global listener or not. - // This behavior is kept for backwards compatibility. Will be removed together with the IMixedRealityEventSystem.Register(GameObject listener) interface. - for (int i = EventListeners.Count - 1; i >= 0; i--) - { - // Ensure client code does not put the event dispatch system into a bad state. - // Note that ExecuteEvents.Execute internally safeguards against exceptions, but - // this is another layer to ensure that nothing below this layer can affect the state - // of our eventExecutionDepth tracker. - try - { - ExecuteEvents.Execute(EventListeners[i], eventData, eventHandler); - } - catch (Exception ex) - { - Debug.LogException(ex); - } - } - - // Send events to all handlers registered via RegisterHandler API. - List handlers; - if (EventHandlersByType.TryGetValue(typeof(T), out handlers)) - { - for (int i = handlers.Count - 1; i >= 0; i--) - { - var handlerEntry = handlers[i]; - - // If handler's parent is in object collection (traversed above), it has already received an event. - if (handlerEntry.parentObjectIsInObjectCollection) - { - continue; - } - - // Ensure client code does not put the event dispatch system into a bad state. - try - { - eventHandler.Invoke((T)handlerEntry.handler, eventData); - } - catch (Exception ex) - { - Debug.LogException(ex); - } - } - } - - eventExecutionDepth--; - - if (eventExecutionDepth == 0 && (postponedActions.Count > 0 || postponedObjectActions.Count > 0)) - { - foreach (var handler in postponedActions) - { - if (handler.Item1 == Action.Add) - { - AddHandlerToMap(handler.Item2, handler.Item3); - } - else if (handler.Item1 == Action.Remove) - { - RemoveHandlerFromMap(handler.Item2, handler.Item3); - } - } - - foreach (var obj in postponedObjectActions) - { - if (obj.Item1 == Action.Add) - { - // Can call it here, because guaranteed that eventExecutionDepth is 0 - Register(obj.Item2); - } - else if (obj.Item1 == Action.Remove) - { - Unregister(obj.Item2); - } - } - - postponedActions.Clear(); - postponedObjectActions.Clear(); - } - } - - /// - public virtual void RegisterHandler(IEventSystemHandler handler) where T : IEventSystemHandler - { - if (handler == null) - { - return; - } - - // #if due to Microsoft.MixedReality.Toolkit.ReflectionExtensions overload of Type.IsInterface -#if WINDOWS_UWP && !ENABLE_IL2CPP - Debug.Assert(typeof(T).IsInterface(), "RegisterHandler must be called with an interface as a generic parameter."); -#else - Debug.Assert(typeof(T).IsInterface, "RegisterHandler must be called with an interface as a generic parameter."); -#endif - Debug.Assert(typeof(T).IsAssignableFrom(handler.GetType()), "Handler passed to RegisterHandler doesn't implement a type given as generic parameter."); - - DebugUtilities.LogVerboseFormat("Registering handler {0} against system {1}", handler, this); - - TraverseEventSystemHandlerHierarchy(handler, RegisterHandler); - } - - /// - public virtual void UnregisterHandler(IEventSystemHandler handler) where T : IEventSystemHandler - { - if (handler == null) - { - return; - } - - // #if due to Microsoft.MixedReality.Toolkit.ReflectionExtensions overload of Type.IsInterface -#if WINDOWS_UWP && !ENABLE_IL2CPP - Debug.Assert(typeof(T).IsInterface(), "UnregisterHandler must be called with an interface as a generic parameter."); -#else - Debug.Assert(typeof(T).IsInterface, "UnregisterHandler must be called with an interface as a generic parameter."); -#endif - Debug.Assert(typeof(T).IsAssignableFrom(handler.GetType()), "Handler passed to UnregisterHandler doesn't implement a type given as generic parameter."); - - DebugUtilities.LogVerboseFormat("Unregistering handler {0} against system {1}", handler, this); - - TraverseEventSystemHandlerHierarchy(handler, UnregisterHandler); - } - - /// - public virtual void Register(GameObject listener) - { - // Because components on an object can change during its lifetime, we can't enumerate all handlers on an object - // at this point in time and register them via the new API. - // This forces us to store an object and use ExecuteEvents traversal at time of handling events. - if (eventExecutionDepth == 0) - { - if (!EventListeners.Contains(listener)) - { - // Due to how events are sent to game objects, if any of registered handlers sits on a - // registered object it will receive any event passed to this object. - // We need to mark such handlers, so they don't receive their events twice. - // It can be checked in HandleEvent with less code, but this becomes a - // performance bottleneck with many handlers in the system - - bool report = false; - foreach (var typeEntry in EventHandlersByType) - { - for (int index = 0; index < typeEntry.Value.Count; index++) - { - var handlerEntry = typeEntry.Value[index]; - - var comp = handlerEntry.handler as Component; - - if (comp != null && comp.gameObject == listener) - { - handlerEntry.parentObjectIsInObjectCollection = true; - typeEntry.Value[index] = handlerEntry; - report = true; - } - } - } - - if (report) - { - WarnAboutConflictingApis(listener.name); - } - - EventListeners.Add(listener); - } - } - else - { - postponedObjectActions.Add(Tuple.Create(Action.Add, listener)); - } - } - - /// - public virtual void Unregister(GameObject listener) - { - if (eventExecutionDepth == 0) - { - if (EventListeners.Contains(listener)) - { - // Reset cached flags in handler collection as object will not intercept the events anymore. - // This is a slow loop, which is here to maintain backward compatibility and enable co-existing of - // new and old API. - foreach (var typeEntry in EventHandlersByType) - { - for (int index = 0; index < typeEntry.Value.Count; index++) - { - var handlerEntry = typeEntry.Value[index]; - - // if cache flag is true, handler is guaranteed to be a unity component. - if (handlerEntry.parentObjectIsInObjectCollection && (handlerEntry.handler as Component).gameObject == listener) - { - // Don't need to report, because it was reported during registration - handlerEntry.parentObjectIsInObjectCollection = false; - typeEntry.Value[index] = handlerEntry; - } - } - } - - EventListeners.Remove(listener); - } - } - else - { - postponedObjectActions.Add(Tuple.Create(Action.Remove, listener)); - } - } - - /// - public override void Destroy() - { - if (!enableDanglingHandlerDiagnostics) - { - return; - } - - foreach (var listener in EventListeners) - { - Debug.LogError($"Event system {Name} is destroyed, while still having a registered listener. " + - "Make sure that all global event listeners have been unregistered before destroying the event system. " + - $"Dangling listener: object {listener.name}"); - } - - foreach (var typeEntry in EventHandlersByType) - { - for (int index = 0; index < typeEntry.Value.Count; index++) - { - var handlerEntry = typeEntry.Value[index]; - Debug.LogError($"Event system {Name} is being destroyed while still having a registered listener. " + - "Make sure that all global event listeners have been unregistered before destroying the event system. " + - $"Dangling listener: handler {handlerEntry.handler}"); - } - } - } - - #endregion IMixedRealityEventSystem Implementation - - #region Registration helpers - - private void UnregisterHandler(Type handlerType, IEventSystemHandler handler) - { - if (eventExecutionDepth == 0) - { - RemoveHandlerFromMap(handlerType, handler); - } - else - { - postponedActions.Add(Tuple.Create(Action.Remove, handlerType, handler)); - } - } - - private void RegisterHandler(Type handlerType, IEventSystemHandler handler) - { - if (eventExecutionDepth == 0) - { - AddHandlerToMap(handlerType, handler); - } - else - { - postponedActions.Add(Tuple.Create(Action.Add, handlerType, handler)); - } - } - - private void AddHandlerToMap(Type handlerType, IEventSystemHandler handler) - { - bool isParentObjectRegistered = false; - - var componentHandler = handler as Component; - if (componentHandler != null && EventListeners.Contains(componentHandler.gameObject)) - { - isParentObjectRegistered = true; - WarnAboutConflictingApis(componentHandler.gameObject.name); - } - - List handlers; - if (!EventHandlersByType.TryGetValue(handlerType, out handlers)) - { - handlers = new List { new EventHandlerEntry(handler, isParentObjectRegistered) }; - EventHandlersByType.Add(handlerType, handlers); - return; - } - - bool handlerExists = false; - for (int i = handlers.Count - 1; i >= 0; i--) - { - if (handlers[i].handler == handler) - { - handlerExists = true; - break; - } - } - - if (!handlerExists) - { - handlers.Add(new EventHandlerEntry(handler, isParentObjectRegistered)); - } - } - - /// - private void RemoveHandlerFromMap(Type handlerType, IEventSystemHandler handler) - { - List handlers; - if (!EventHandlersByType.TryGetValue(handlerType, out handlers)) - { - return; - } - - for (int i = handlers.Count - 1; i >= 0; i--) - { - if (handlers[i].handler == handler) - { - handlers.RemoveAt(i); - } - } - - if (handlers.Count == 0) - { - EventHandlersByType.Remove(handlerType); - } - } - - #endregion Registration helpers - - #region Utilities - - private static readonly ProfilerMarker TraverseEventSystemHandlerHierarchyPerfMarker = new ProfilerMarker("[MRTK] BaseEventSystem.TraverseEventSystemHandlerHierarchy"); - - /// - /// Utility function for registering parent interfaces of a given handler. - /// - /// - /// Event handler interfaces may derive from each other. Some events will be raised using a base handler class, and are supposed to trigger on - /// all derived handler classes too. Example of that is IMixedRealityBaseInputHandler hierarchy. - /// To support that current implementation registers multiple dictionary entries per handler, one for each level of event handler hierarchy. - /// Alternative would be to register just one root type and - /// then determine which handlers to call dynamically in 'HandleEvent'. - /// Implementation was chosen based on performance of 'HandleEvent'. Without determining type it is about 2+ times faster. - /// There are possible ways to bypass that, but this will make implementation of classes - /// that derive from Input System unnecessarily more complicated. - /// - private void TraverseEventSystemHandlerHierarchy(IEventSystemHandler handler, Action func) where T : IEventSystemHandler - { - using (TraverseEventSystemHandlerHierarchyPerfMarker.Auto()) - { - var handlerType = typeof(T); - - // Need to call on handlerType first, because GetInterfaces below will only return parent types. - func(handlerType, handler); - - foreach (var iface in handlerType.GetInterfaces()) - { - if (!iface.Equals(eventSystemHandlerType)) - { - func(iface, handler); - } - } - } - } - - private void WarnAboutConflictingApis(string objectName) - { - Debug.LogError("Detected simultaneous usage of IMixedRealityEventSystem.Register and IMixedRealityEventSystem.RegisterHandler " + - $"on the same game object '{objectName}' for global input events registration. This is a compatibility behavior which might " + - "cause performance issues. It is recommended to remove or replace usages of 'Register/Unregister' methods with 'RegisterHandler/UnregisterHandler'."); - } - - #endregion Utilities - - // Example Event Pattern ############################################################# - - // public void RaiseGenericEvent(IEventSource eventSource) - // { - // genericEventData.Initialize(eventSource); - // HandleEvent(genericEventData, GenericEventHandler); - // } - - // private static readonly ExecuteEvents.EventFunction GenericEventHandler = - // delegate (IEventHandler handler, BaseEventData eventData) - // { - // var casted = ExecuteEvents.ValidateEventData(eventData); - // handler.OnEventRaised(casted); - // }; - - // Example Event Pattern ############################################################# - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs.meta deleted file mode 100644 index 07355b272..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseEventSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0a001f9876e3487ba18336e493d7f34f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs b/AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs deleted file mode 100644 index a53402e35..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// The base extension service implements and provides default properties for all extension services. - /// - /// - /// Empty, but reserved for future use, in case additional properties or methods are assigned. - /// - public abstract class BaseExtensionService : BaseService, IMixedRealityExtensionService - { - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// The friendly name of the service. - /// The registration priority of the service. - /// The configuration profile for the service. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - protected BaseExtensionService( - IMixedRealityServiceRegistrar registrar, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The friendly name of the service. - /// The registration priority of the service. - /// The configuration profile for the service. - protected BaseExtensionService( - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base() - { - Name = name; - Priority = priority; - ConfigurationProfile = profile; - } - - /// - /// The service registrar instance that registered this service. - /// - [System.Obsolete("The Registrar property is obsolete and will be removed in a future version of the Microsoft Mixed Reality Toolkit")] - protected IMixedRealityServiceRegistrar Registrar { get; set; } = null; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs.meta deleted file mode 100644 index 793e7650e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseExtensionService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2832b34294b2492db43df3eee176bc91 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseService.cs b/AR-ROS/Assets/MRTK/Core/Services/BaseService.cs deleted file mode 100644 index 51f186fd3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseService.cs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// The base service implements and provides default properties for all services. - /// - public abstract class BaseService : IMixedRealityService - { - public const uint DefaultPriority = 10; - - #region IMixedRealityService Implementation - - /// - public virtual string Name { get; protected set; } - - /// - public virtual uint Priority { get; protected set; } = DefaultPriority; - - /// - public virtual BaseMixedRealityProfile ConfigurationProfile { get; protected set; } = null; - - /// - public virtual void Initialize() { } - - /// - public virtual void Reset() { } - - /// - public virtual void Enable() { } - - /// - public virtual void Update() { } - - /// - public virtual void LateUpdate() { } - - /// - public virtual void Disable() { } - - /// - public virtual void Destroy() { } - - #endregion IMixedRealityService Implementation - - #region IDisposable Implementation - - /// - /// Value indicating if the object has completed disposal. - /// - /// - /// Set by derived classes to indicate that disposal has been completed. - /// - protected bool disposed = false; - - /// - /// Finalizer - /// - ~BaseService() - { - Dispose(); - } - - /// - /// Cleanup resources used by this object. - /// - public void Dispose() - { - // Clean up our resources (managed and unmanaged resources) - Dispose(true); - - // Suppress finalization as the finalizer also calls our cleanup code. - GC.SuppressFinalize(this); - } - - /// - /// Cleanup resources used by the object - /// - /// Are we fully disposing the object? - /// True will release all managed resources, unmanaged resources are always released. - /// - protected virtual void Dispose(bool disposing) { } - - #endregion IDisposable Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/BaseService.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/BaseService.cs.meta deleted file mode 100644 index a8b956580..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/BaseService.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 315094ff755f4ec6889aa3c0eddc7760 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs b/AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs deleted file mode 100644 index d29bc1627..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs +++ /dev/null @@ -1,1565 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Boundary; -using Microsoft.MixedReality.Toolkit.Diagnostics; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Teleport; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Linq; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.EventSystems; -using Microsoft.MixedReality.Toolkit.SceneSystem; -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Rendering; - -#if UNITY_EDITOR -using Microsoft.MixedReality.Toolkit.Input.Editor; -using UnityEditor; -#endif - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// This class is responsible for coordinating the operation of the Mixed Reality Toolkit. It is the only Singleton in the entire project. - /// It provides a service registry for all active services that are used within a project as well as providing the active configuration profile for the project. - /// The Profile can be swapped out at any time to meet the needs of your project. - /// - [DisallowMultipleComponent] - [AddComponentMenu("Scripts/MRTK/Core/MixedRealityToolkit")] - public class MixedRealityToolkit : MonoBehaviour, IMixedRealityServiceRegistrar - { - private static bool isInitializing = false; - private static bool isApplicationQuitting = false; - private static bool internalShutdown = false; - private const string NoMRTKProfileErrorMessage = "No Mixed Reality Configuration Profile found, cannot initialize the Mixed Reality Toolkit"; - - #region Mixed Reality Toolkit Profile configuration - - /// - /// Checks if there is a valid instance of the MixedRealityToolkit, then checks if there is there a valid Active Profile. - /// - public bool HasActiveProfile - { - get - { - if (!IsInitialized) - { - return false; - } - - return ActiveProfile != null; - } - } - - /// - /// Returns true if this is the active instance. - /// - public bool IsActiveInstance - { - get - { - return activeInstance == this; - } - } - - private bool HasProfileAndIsInitialized => activeProfile != null && IsInitialized; - - /// - /// The active profile of the Mixed Reality Toolkit which controls which services are active and their initial configuration. - /// *Note configuration is used on project initialization or replacement, changes to properties while it is running has no effect. - /// - [SerializeField] - [Tooltip("The current active configuration for the Mixed Reality project")] - private MixedRealityToolkitConfigurationProfile activeProfile = null; - - /// - /// The public property of the Active Profile, ensuring events are raised on the change of the configuration - /// - /// - /// When setting the ActiveProfile during runtime, the destroy of the currently running services will happen after the last LateUpdate() - /// of all services, and the instantiation and initialization of the services associated with the new profile will happen before the - /// first Update() of all services. - /// A noticable application hesitation may occur during this process. Also any scripts with high priority than this can enter its Update - /// before the new profiles are properly setup. - /// - public MixedRealityToolkitConfigurationProfile ActiveProfile - { - get - { - return activeProfile; - } - set - { - // Behavior during a valid runtime profile switch - if (Application.isPlaying && activeProfile != null && value != null) - { - newProfile = value; - } - // Behavior in other scenarios (e.g. when profile switch is being requested by editor code) - else - { - ResetConfiguration(value); - } - - } - } - - /// - /// When a configuration Profile is replaced with a new configuration, force all services to reset and read the new values - /// - public void ResetConfiguration(MixedRealityToolkitConfigurationProfile profile) - { - RemoveCurrentProfile(profile); - InitializeNewProfile(profile); - } - - private void InitializeNewProfile(MixedRealityToolkitConfigurationProfile profile) - { - InitializeServiceLocator(); - - if (profile != null && Application.IsPlaying(profile)) - { - EnableAllServices(); - } - } - - private void RemoveCurrentProfile(MixedRealityToolkitConfigurationProfile profile) - { - if (activeProfile != null) - { - // Services are only enabled when playing. - if (Application.IsPlaying(activeProfile)) - { - DisableAllServices(); - } - DestroyAllServices(); - } - - activeProfile = profile; - - if (profile != null) - { - if (Application.IsPlaying(profile)) - { - DisableAllServices(); - } - DestroyAllServices(); - } - } - - private MixedRealityToolkitConfigurationProfile newProfile; - - #endregion Mixed Reality Toolkit Profile configuration - - #region Mixed Reality runtime service registry - - private static readonly Dictionary activeSystems = new Dictionary(); - - /// - /// Current active systems registered with the MixedRealityToolkit. - /// - /// - /// Systems can only be registered once by - /// - [Obsolete("Use CoreService, MixedRealityServiceRegistry, or GetService instead")] - public IReadOnlyDictionary ActiveSystems => new Dictionary(activeSystems) as IReadOnlyDictionary; - - private static readonly List> registeredMixedRealityServices = new List>(); - - /// - /// Local service registry for the Mixed Reality Toolkit, to allow runtime use of the . - /// - [Obsolete("Use GetDataProvider of MixedRealityService registering the desired IMixedRealityDataProvider")] - public IReadOnlyList> RegisteredMixedRealityServices => new List>(registeredMixedRealityServices) as IReadOnlyList>; - - #endregion Mixed Reality runtime service registry - - #region IMixedRealityServiceRegistrar implementation - - /// - public bool RegisterService(T serviceInstance) where T : IMixedRealityService - { - return RegisterServiceInternal(serviceInstance); - } - - /// - public bool RegisterService( - Type concreteType, - SupportedPlatforms supportedPlatforms = (SupportedPlatforms)(-1), - params object[] args) where T : IMixedRealityService - { - return RegisterServiceInternal( - true, // Retry with an added IMixedRealityService parameter - concreteType, - supportedPlatforms, - args); - } - - /// - /// Internal method that creates an instance of the specified concrete type and registers the service. - /// - private bool RegisterServiceInternal( - bool retryWithRegistrar, - Type concreteType, - SupportedPlatforms supportedPlatforms = (SupportedPlatforms)(-1), - params object[] args) where T : IMixedRealityService - { - DebugUtilities.LogVerboseFormat("Attempting to register service of type: {0}", concreteType); - - if (isApplicationQuitting) - { - return false; - } - - if (!PlatformUtility.IsPlatformSupported(supportedPlatforms)) - { - DebugUtilities.LogVerboseFormat("Service of type: {0} does not support the current platform given supported platforms {1}", concreteType, supportedPlatforms); - return false; - } - - if (concreteType == null) - { - Debug.LogError($"Unable to register {typeof(T).Name} service because the value of concreteType is null.\n" + - "This may be caused by code being stripped during linking. The link.xml file in the MixedRealityToolkit.Generated folder is used to control code preservation.\n" + - "More information can be found at https://docs.unity3d.com/Manual/ManagedCodeStripping.html."); - return false; - } - - if (!typeof(IMixedRealityService).IsAssignableFrom(concreteType)) - { - Debug.LogError($"Unable to register the {concreteType.Name} service. It does not implement {typeof(IMixedRealityService)}."); - return false; - } - - T serviceInstance; - - try - { - serviceInstance = (T)Activator.CreateInstance(concreteType, args); - } - catch (Exception e) - { - if (retryWithRegistrar && (e is MissingMethodException)) - { - Debug.LogWarning($"Failed to find an appropriate constructor for the {concreteType.Name} service. Adding the Registrar instance and re-attempting registration."); - List updatedArgs = new List(); - updatedArgs.Add(this); - if (args != null) - { - updatedArgs.AddRange(args); - } - return RegisterServiceInternal( - false, // Do NOT retry, we have already added the configured IMIxedRealityServiceRegistrar - concreteType, - supportedPlatforms, - updatedArgs.ToArray()); - } - - Debug.LogError($"Failed to register the {concreteType.Name} service: {e.GetType()} - {e.Message}"); - - // Failures to create the concrete type generally surface as nested exceptions - just logging - // the top level exception itself may not be helpful. If there is a nested exception (for example, - // null reference in the constructor of the object itself), it's helpful to also surface those here. - if (e.InnerException != null) - { - Debug.LogError("Underlying exception information: " + e.InnerException); - } - return false; - } - - return RegisterServiceInternal(serviceInstance); - } - - /// - public bool UnregisterService(string name = null) where T : IMixedRealityService - { - T serviceInstance = GetServiceByName(name); - - if (serviceInstance == null) { return false; } - - return UnregisterService(serviceInstance); - } - - /// - public bool UnregisterService(T serviceInstance) where T : IMixedRealityService - { - DebugUtilities.LogVerboseFormat("Unregistering service of type: {0}", typeof(T)); - - Type interfaceType = typeof(T); - - if (IsInitialized) - { - DebugUtilities.LogVerboseFormat("Unregistered service of type {0} was an initialized service, disabling and destroying it", typeof(T)); - serviceInstance.Disable(); - serviceInstance.Destroy(); - } - - if (IsCoreSystem(interfaceType)) - { - DebugUtilities.LogVerboseFormat("Unregistered service of type {0} was a core system", typeof(T)); - activeSystems.Remove(interfaceType); - - CoreServices.ResetCacheReference(interfaceType); - return true; - } - - return MixedRealityServiceRegistry.RemoveService(serviceInstance, this); - } - - /// - public bool IsServiceRegistered(string name = null) where T : IMixedRealityService - { - Type interfaceType = typeof(T); - if (typeof(IMixedRealityDataProvider).IsAssignableFrom(interfaceType)) - { - Debug.LogWarning($"Unable to check a service of type {typeof(IMixedRealityDataProvider).Name}. Inquire with the MixedRealityService that registered the DataProvider type in question"); - return false; - } - - T service; - MixedRealityServiceRegistry.TryGetService(out service, name); - return service != null; - } - - /// - public T GetService(string name = null, bool showLogs = true) where T : IMixedRealityService - { - Type interfaceType = typeof(T); - T serviceInstance = GetServiceByName(name); - - if ((serviceInstance == null) && showLogs) - { - Debug.LogError($"Unable to find {(string.IsNullOrWhiteSpace(name) ? interfaceType.Name : name)} service."); - } - - return serviceInstance; - } - - /// - public IReadOnlyList GetServices(string name = null) where T : IMixedRealityService - { - return GetAllServicesByNameInternal(typeof(T), name); - } - - #endregion IMixedRealityServiceRegistrar implementation - - /// - /// Once all services are registered and properties updated, the Mixed Reality Toolkit will initialize all active services. - /// This ensures all services can reference each other once started. - /// - private void InitializeServiceLocator() - { - isInitializing = true; - - // If the Mixed Reality Toolkit is not configured, stop. - if (ActiveProfile == null) - { - if (!Application.isPlaying) - { - // Log as warning if in edit mode. Likely user is making changes etc. - Debug.LogWarning(NoMRTKProfileErrorMessage); - } - else - { - Debug.LogError(NoMRTKProfileErrorMessage); - } - - return; - } - - // If verbose logging is to be enabled, this should be done as early in service - // initialization as possible to allow for other services to use verbose logging - // as they initialize. - DebugUtilities.LogLevel = activeProfile.EnableVerboseLogging ? DebugUtilities.LoggingLevel.Verbose : DebugUtilities.LoggingLevel.Information; - -#if UNITY_EDITOR - if (activeSystems.Count > 0) - { - activeSystems.Clear(); - } - - if (registeredMixedRealityServices.Count > 0) - { - registeredMixedRealityServices.Clear(); - } - - EnsureEditorSetup(); -#endif - - CoreServices.ResetCacheReferences(); - EnsureMixedRealityRequirements(); - - #region Services Registration - - // If the Input system has been selected for initialization in the Active profile, enable it in the project - if (ActiveProfile.IsInputSystemEnabled) - { - DebugUtilities.LogVerbose("Begin registration of the input system"); - -#if UNITY_EDITOR - // Make sure unity axis mappings are set. - InputMappingAxisUtility.CheckUnityInputManagerMappings(ControllerMappingLibrary.UnityInputManagerAxes); -#endif - - object[] args = { ActiveProfile.InputSystemProfile }; - if (!RegisterService(ActiveProfile.InputSystemType, args: args) || CoreServices.InputSystem == null) - { - Debug.LogError("Failed to start the Input System!"); - } - - args = new object[] { ActiveProfile.InputSystemProfile }; - if (!RegisterService(ActiveProfile.InputSystemProfile.FocusProviderType, args: args)) - { - Debug.LogError("Failed to register the focus provider! The input system will not function without it."); - return; - } - - args = new object[] { ActiveProfile.InputSystemProfile }; - if (!RegisterService(ActiveProfile.InputSystemProfile.RaycastProviderType, args: args)) - { - Debug.LogError("Failed to register the raycast provider! The input system will not function without it."); - return; - } - - DebugUtilities.LogVerbose("End registration of the input system"); - } - else - { -#if UNITY_EDITOR - InputMappingAxisUtility.RemoveMappings(ControllerMappingLibrary.UnityInputManagerAxes); -#endif - } - - // If the Boundary system has been selected for initialization in the Active profile, enable it in the project - if (ActiveProfile.IsBoundarySystemEnabled) - { - DebugUtilities.LogVerbose("Begin registration of the boundary system"); - object[] args = { ActiveProfile.BoundaryVisualizationProfile, ActiveProfile.TargetExperienceScale }; - if (!RegisterService(ActiveProfile.BoundarySystemSystemType, args: args) || CoreServices.BoundarySystem == null) - { - Debug.LogError("Failed to start the Boundary System!"); - } - DebugUtilities.LogVerbose("End registration of the boundary system"); - } - - // If the Camera system has been selected for initialization in the Active profile, enable it in the project - if (ActiveProfile.IsCameraSystemEnabled) - { - DebugUtilities.LogVerbose("Begin registration of the camera system"); - object[] args = { ActiveProfile.CameraProfile }; - if (!RegisterService(ActiveProfile.CameraSystemType, args: args) || CoreServices.CameraSystem == null) - { - Debug.LogError("Failed to start the Camera System!"); - } - DebugUtilities.LogVerbose("End registration of the camera system"); - } - - // If the Spatial Awareness system has been selected for initialization in the Active profile, enable it in the project - if (ActiveProfile.IsSpatialAwarenessSystemEnabled) - { - DebugUtilities.LogVerbose("Begin registration of the spatial awareness system"); - object[] args = { ActiveProfile.SpatialAwarenessSystemProfile }; - if (!RegisterService(ActiveProfile.SpatialAwarenessSystemSystemType, args: args) && CoreServices.SpatialAwarenessSystem != null) - { - Debug.LogError("Failed to start the Spatial Awareness System!"); - } - DebugUtilities.LogVerbose("End registration of the spatial awareness system"); - } - - // If the Teleport system has been selected for initialization in the Active profile, enable it in the project - if (ActiveProfile.IsTeleportSystemEnabled) - { - DebugUtilities.LogVerbose("Begin registration of the teleport system"); - if (!RegisterService(ActiveProfile.TeleportSystemSystemType) || CoreServices.TeleportSystem == null) - { - Debug.LogError("Failed to start the Teleport System!"); - } - DebugUtilities.LogVerbose("End registration of the teleport system"); - } - - if (ActiveProfile.IsDiagnosticsSystemEnabled) - { - DebugUtilities.LogVerbose("Begin registration of the diagnostic system"); - object[] args = { ActiveProfile.DiagnosticsSystemProfile }; - if (!RegisterService(ActiveProfile.DiagnosticsSystemSystemType, args: args) || CoreServices.DiagnosticsSystem == null) - { - Debug.LogError("Failed to start the Diagnostics System!"); - } - DebugUtilities.LogVerbose("End registration of the diagnostic system"); - } - - if (ActiveProfile.IsSceneSystemEnabled) - { - DebugUtilities.LogVerbose("Begin registration of the scene system"); - object[] args = { ActiveProfile.SceneSystemProfile }; - if (!RegisterService(ActiveProfile.SceneSystemSystemType, args: args) || CoreServices.SceneSystem == null) - { - Debug.LogError("Failed to start the Scene System!"); - } - DebugUtilities.LogVerbose("End registration of the scene system"); - } - - if (ActiveProfile.RegisteredServiceProvidersProfile != null) - { - for (int i = 0; i < ActiveProfile.RegisteredServiceProvidersProfile.Configurations?.Length; i++) - { - var configuration = ActiveProfile.RegisteredServiceProvidersProfile.Configurations[i]; - - if (typeof(IMixedRealityExtensionService).IsAssignableFrom(configuration.ComponentType.Type)) - { - object[] args = { configuration.ComponentName, configuration.Priority, configuration.Profile }; - RegisterService(configuration.ComponentType, configuration.RuntimePlatform, args); - } - } - } - - #endregion Service Registration - - InitializeAllServices(); - - isInitializing = false; - } - - private void EnsureEditorSetup() - { - if (ActiveProfile.RenderDepthBuffer) - { - CameraCache.Main.gameObject.EnsureComponent(); - DebugUtilities.LogVerbose("Added a DepthBufferRenderer to the main camera"); - } - } - - private void EnsureMixedRealityRequirements() - { - // There's lots of documented cases that if the camera doesn't start at 0,0,0, things break with the WMR SDK specifically. - // We'll enforce that here, then tracking can update it to the appropriate position later. - CameraCache.Main.transform.position = Vector3.zero; - CameraCache.Main.transform.rotation = Quaternion.identity; - - // This will create the playspace - _ = MixedRealityPlayspace.Transform; - - bool addedComponents = false; - if (!Application.isPlaying) - { - var eventSystems = FindObjectsOfType(); - - if (eventSystems.Length == 0) - { - CameraCache.Main.gameObject.EnsureComponent(); - addedComponents = true; - } - else - { - bool raiseWarning; - - if (eventSystems.Length == 1) - { - raiseWarning = eventSystems[0].gameObject != CameraCache.Main.gameObject; - } - else - { - raiseWarning = true; - } - - if (raiseWarning) - { - Debug.LogWarning("Found an existing event system in your scene. The Mixed Reality Toolkit requires only one, and must be found on the main camera."); - } - } - } - - if (!addedComponents) - { - CameraCache.Main.gameObject.EnsureComponent(); - DebugUtilities.LogVerbose("Added an EventSystem to the main camera"); - } - } - - #region MonoBehaviour Implementation - - private static MixedRealityToolkit activeInstance; - private static bool newInstanceBeingInitialized = false; - -#if UNITY_EDITOR - /// - /// Returns the Singleton instance of the classes type. - /// - public static MixedRealityToolkit Instance - { - get - { - if (activeInstance != null) - { - return activeInstance; - } - - // It's possible for MRTK to exist in the scene but for activeInstance to be - // null when a custom editor component accesses Instance before the MRTK - // object has clicked on in object hierarchy (see https://github.com/microsoft/MixedRealityToolkit-Unity/pull/4618) - // - // To avoid returning null in this case, make sure to search the scene for MRTK. - // We do this only when in editor to avoid any performance cost at runtime. - List mrtks = new List(FindObjectsOfType()); - // Sort the list by instance ID so we get deterministic results when selecting our next active instance - mrtks.Sort(delegate (MixedRealityToolkit i1, MixedRealityToolkit i2) { return i1.GetInstanceID().CompareTo(i2.GetInstanceID()); }); - - for (int i = 0; i < mrtks.Count; i++) - { - RegisterInstance(mrtks[i]); - } - return activeInstance; - } - } -#else - /// - /// Returns the Singleton instance of the classes type. - /// - public static MixedRealityToolkit Instance => activeInstance; -#endif - - private void InitializeInstance() - { - if (newInstanceBeingInitialized) - { - return; - } - - newInstanceBeingInitialized = true; - - gameObject.SetActive(true); - - if (HasActiveProfile) - { - InitializeServiceLocator(); - } - - newInstanceBeingInitialized = false; - } - - /// - /// Expose an assertion whether the MixedRealityToolkit class is initialized. - /// - public static void AssertIsInitialized() - { - Debug.Assert(IsInitialized, "The MixedRealityToolkit has not been initialized."); - } - - /// - /// Returns whether the instance has been initialized or not. - /// - public static bool IsInitialized => activeInstance != null; - - /// - /// Static function to determine if the MixedRealityToolkit class has been initialized or not. - /// - public static bool ConfirmInitialized() - { - // Calling the Instance property performs important initialization work. - _ = Instance; - return IsInitialized; - } - - private void Awake() - { - RegisterInstance(this); - } - - private void OnEnable() - { - if (IsActiveInstance) - { - EnableAllServices(); - } - } - - private void Update() - { - if (IsActiveInstance) - { - // Before any Update() of a service is performed check to see if we need to switch profile - // If so we instantiate and initialize the services associated with the new profile. - if (newProfile != null) - { - InitializeNewProfile(newProfile); - newProfile = null; - } - UpdateAllServices(); - } - } - - private void LateUpdate() - { - if (IsActiveInstance) - { - LateUpdateAllServices(); - // After LateUpdate()s of all services are finished check to see if we need to switch profile - // If so we destroy currently running services. - if (newProfile != null) - { - RemoveCurrentProfile(newProfile); - } - } - } - - private void OnDisable() - { - if (IsActiveInstance) - { - DisableAllServices(); - } - } - - private void OnDestroy() - { - UnregisterInstance(this); - } - - #endregion MonoBehaviour Implementation - - #region Instance Registration - - private const string activeInstanceGameObjectName = "MixedRealityToolkit"; - private const string inactiveInstanceGameObjectName = "MixedRealityToolkit (Inactive)"; - private static List toolkitInstances = new List(); - - public static void SetActiveInstance(MixedRealityToolkit toolkitInstance) - { - if (MixedRealityToolkit.isApplicationQuitting) - { // Don't register instances while application is quitting - return; - } - - if (toolkitInstance == activeInstance) - { // Don't do anything - return; - } - - // Disable the old instance - SetInstanceInactive(activeInstance); - - // Immediately register the new instance - RegisterInstance(toolkitInstance, true); - } - - private static void RegisterInstance(MixedRealityToolkit toolkitInstance, bool setAsActiveInstance = false) - { - if (MixedRealityToolkit.isApplicationQuitting || toolkitInstance == null) - { // Don't register instances while application is quitting - return; - } - - internalShutdown = false; - - if (!toolkitInstances.Contains(toolkitInstance)) - { // If we're already registered, no need to proceed - // Add to list - toolkitInstances.Add(toolkitInstance); - // Sort the list by instance ID so we get deterministic results when selecting our next active instance - toolkitInstances.Sort(delegate (MixedRealityToolkit i1, MixedRealityToolkit i2) { return i1.GetInstanceID().CompareTo(i2.GetInstanceID()); }); - } - - if (activeInstance == null) - { - // If we don't have an active instance, either set this instance - // to be the active instance if requested, or get the first valid remaining instance - // in the list. - if (setAsActiveInstance) - { - activeInstance = toolkitInstance; - } - else - { - for (int i = 0; i < toolkitInstances.Count; i++) - { - if (toolkitInstances[i] != null) - { - activeInstance = toolkitInstances[i]; - break; - } - } - } - - activeInstance.DestroyAllServices(); - activeInstance.InitializeInstance(); - } - - // Update instance's Name so it's clear who is the active instance - for (int i = toolkitInstances.Count - 1; i >= 0; i--) - { - if (toolkitInstances[i] == null) - { - toolkitInstances.RemoveAt(i); - } - else - { - toolkitInstances[i].name = toolkitInstances[i].IsActiveInstance ? activeInstanceGameObjectName : inactiveInstanceGameObjectName; - } - } - } - - private static void UnregisterInstance(MixedRealityToolkit toolkitInstance) - { - // We are shutting an instance down. - internalShutdown = true; - - toolkitInstances.Remove(toolkitInstance); - // Sort the list by instance ID so we get deterministic results when selecting our next active instance - toolkitInstances.Sort(delegate (MixedRealityToolkit i1, MixedRealityToolkit i2) { return i1.GetInstanceID().CompareTo(i2.GetInstanceID()); }); - - if (MixedRealityToolkit.activeInstance == toolkitInstance) - { // If this is the active instance, we need to break it down - toolkitInstance.DestroyAllServices(); - CoreServices.ResetCacheReferences(); - - // If this was the active instance, unregister the active instance - MixedRealityToolkit.activeInstance = null; - if (MixedRealityToolkit.isApplicationQuitting) - { // Don't search for additional instances if we're quitting - return; - } - - for (int i = 0; i < toolkitInstances.Count; i++) - { - if (toolkitInstances[i] == null) - { // This may have been a mass-deletion - be wary of soon-to-be-unregistered instances - continue; - } - // Select the first available instance and register it immediately - RegisterInstance(toolkitInstances[i]); - break; - } - } - } - - public static void SetInstanceInactive(MixedRealityToolkit toolkitInstance) - { - if (toolkitInstance == null) - { // Don't do anything. - return; - } - - if (toolkitInstance == activeInstance) - { // If this was the active instance, un-register the active instance - // Break down all services - if (Application.isPlaying) - { - toolkitInstance.DisableAllServices(); - } - - toolkitInstance.DestroyAllServices(); - - CoreServices.ResetCacheReferences(); - - // If this was the active instance, unregister the active instance - MixedRealityToolkit.activeInstance = null; - } - } - - #endregion Instance Registration - - #region Service Container Management - - #region Registration - // NOTE: This method intentionally does not add to the registry. This is actually mostly a helper function for RegisterServiceInternal. - private bool RegisterServiceInternal(Type interfaceType, IMixedRealityService serviceInstance) - { - if (serviceInstance == null) - { - Debug.LogWarning($"Unable to register a {interfaceType.Name} service with a null instance."); - return false; - } - - if (typeof(IMixedRealityDataProvider).IsAssignableFrom(interfaceType)) - { - Debug.LogWarning($"Unable to register a service of type {typeof(IMixedRealityDataProvider).Name}. Register this DataProvider with the MixedRealityService that depends on it."); - return false; - } - - if (!CanGetService(interfaceType)) - { - return false; - } - - IMixedRealityService preExistingService = GetServiceByNameInternal(interfaceType, serviceInstance.Name); - - if (preExistingService != null) - { - Debug.LogError($"There's already a {interfaceType.Name}.{preExistingService.Name} registered!"); - return false; - } - - if (IsCoreSystem(interfaceType)) - { - DebugUtilities.LogVerboseFormat("Added core service of type {0}", interfaceType); - activeSystems.Add(interfaceType, serviceInstance); - } - - if (!isInitializing) - { - serviceInstance.Initialize(); - } - return true; - } - - /// - /// Internal service registration. - /// - /// The interface type for the system to be registered. - /// Instance of the service. - /// True if registration is successful, false otherwise. - private bool RegisterServiceInternal(T serviceInstance) where T : IMixedRealityService - { - Type interfaceType = typeof(T); - if (RegisterServiceInternal(interfaceType, serviceInstance)) - { - MixedRealityServiceRegistry.AddService(serviceInstance, this); - return true; - } - - return false; - } - - #endregion Registration - - #region Multiple Service Management - - /// - /// Enable all services in the Mixed Reality Toolkit active service registry for a given type - /// - /// The interface type for the system to be enabled. E.G. InputSystem, BoundarySystem - public void EnableAllServicesByType(Type interfaceType) - { - EnableAllServicesByTypeAndName(interfaceType, string.Empty); - } - - /// - /// Enable all services in the Mixed Reality Toolkit active service registry for a given type and name - /// - /// The interface type for the system to be enabled. E.G. InputSystem, BoundarySystem - /// Name of the specific service - public void EnableAllServicesByTypeAndName(Type interfaceType, string serviceName) - { - if (interfaceType == null) - { - Debug.LogError("Unable to enable null service type."); - return; - } - - IReadOnlyList services = GetAllServicesByNameInternal(interfaceType, serviceName); - for (int i = 0; i < services.Count; i++) - { - services[i].Enable(); - } - } - - /// - /// Disable all services in the Mixed Reality Toolkit active service registry for a given type - /// - /// The interface type for the system to be removed. E.G. InputSystem, BoundarySystem - public void DisableAllServicesByType(Type interfaceType) - { - DisableAllServicesByTypeAndName(interfaceType, string.Empty); - } - - /// - /// Disable all services in the Mixed Reality Toolkit active service registry for a given type and name - /// - /// The interface type for the system to be disabled. E.G. InputSystem, BoundarySystem - /// Name of the specific service - public void DisableAllServicesByTypeAndName(Type interfaceType, string serviceName) - { - if (interfaceType == null) - { - Debug.LogError("Unable to disable null service type."); - return; - } - - IReadOnlyList services = GetAllServicesByNameInternal(interfaceType, serviceName); - for (int i = 0; i < services.Count; i++) - { - services[i].Disable(); - } - } - - private void InitializeAllServices() - { - // Initialize all systems - DebugUtilities.LogVerboseFormat("Calling Initialize() on all services"); - ExecuteOnAllServicesInOrder(service => service.Initialize()); - } - - private void ResetAllServices() - { - // Reset all systems - DebugUtilities.LogVerboseFormat("Calling Reset() on all services"); - ExecuteOnAllServicesInOrder(service => service.Reset()); - } - - private void EnableAllServices() - { - // Enable all systems - DebugUtilities.LogVerboseFormat("Calling Enable() on all services"); - ExecuteOnAllServicesInOrder(service => service.Enable()); - } - - private static readonly ProfilerMarker UpdateAllServicesPerfMarker = new ProfilerMarker("[MRTK] MixedRealityToolkit.UpdateAllServices"); - - private void UpdateAllServices() - { - using (UpdateAllServicesPerfMarker.Auto()) - { - // Update all systems - ExecuteOnAllServicesInOrder(service => service.Update()); - } - } - - private static readonly ProfilerMarker LateUpdateAllServicesPerfMarker = new ProfilerMarker("[MRTK] MixedRealityToolkit.LateUpdateAllServices"); - - private void LateUpdateAllServices() - { - using (LateUpdateAllServicesPerfMarker.Auto()) - { - // If the Mixed Reality Toolkit is not configured, stop. - if (activeProfile == null) { return; } - - // If the Mixed Reality Toolkit is not initialized, stop. - if (!IsInitialized) { return; } - - // Update all systems - ExecuteOnAllServicesInOrder(service => service.LateUpdate()); - } - } - - private void DisableAllServices() - { - // Disable all systems - DebugUtilities.LogVerboseFormat("Calling Disable() on all services"); - ExecuteOnAllServicesReverseOrder(service => service.Disable()); - } - - private void DestroyAllServices() - { - DebugUtilities.LogVerboseFormat("Destroying all services"); - - // Unregister core services (active systems) - // We need to destroy services in backwards order as those which are initialized - // later may rely on those which are initialized first. - var orderedActiveSystems = activeSystems.OrderByDescending(m => m.Value.Priority); - - foreach (var service in orderedActiveSystems) - { - Type type = service.Key; - - if (typeof(IMixedRealityBoundarySystem).IsAssignableFrom(type)) - { - UnregisterService(); - } - else if (typeof(IMixedRealityCameraSystem).IsAssignableFrom(type)) - { - UnregisterService(); - } - else if (typeof(IMixedRealityDiagnosticsSystem).IsAssignableFrom(type)) - { - UnregisterService(); - } - else if (typeof(IMixedRealityFocusProvider).IsAssignableFrom(type)) - { - UnregisterService(); - } - else if (typeof(IMixedRealityInputSystem).IsAssignableFrom(type)) - { - UnregisterService(); - } - else if (typeof(IMixedRealitySpatialAwarenessSystem).IsAssignableFrom(type)) - { - UnregisterService(); - } - else if (typeof(IMixedRealityTeleportSystem).IsAssignableFrom(type)) - { - UnregisterService(); - } - } - - activeSystems.Clear(); - CoreServices.ResetCacheReferences(); - MixedRealityServiceRegistry.ClearAllServices(); - } - - private static readonly ProfilerMarker ExecuteOnAllServicesInOrderPerfMarker = new ProfilerMarker("[MRTK] MixedRealityToolkit.ExecuteOnAllServicesInOrder"); - - private bool ExecuteOnAllServicesInOrder(Action execute) - { - using (ExecuteOnAllServicesInOrderPerfMarker.Auto()) - { - if (!HasProfileAndIsInitialized) - { - return false; - } - - var services = MixedRealityServiceRegistry.GetAllServices(); - int length = services.Count; - for (int i = 0; i < length; i++) - { - execute(services[i]); - } - - return true; - } - } - - private static readonly ProfilerMarker ExecuteOnAllServicesReverseOrderPerfMarker = new ProfilerMarker("[MRTK] MixedRealityToolkit.ExecuteOnAllServicesReverseOrder"); - - private bool ExecuteOnAllServicesReverseOrder(Action execute) - { - using (ExecuteOnAllServicesReverseOrderPerfMarker.Auto()) - { - if (!HasProfileAndIsInitialized) - { - return false; - } - - var services = MixedRealityServiceRegistry.GetAllServices(); - int length = services.Count; - - for (int i = length - 1; i >= 0; i--) - { - execute(services[i]); - } - - return true; - } - } - - #endregion Multiple Service Management - - #region Service Utilities - - /// - /// Generic function used to interrogate the Mixed Reality Toolkit active system registry for the existence of a core system. - /// - /// The interface type for the system to be retrieved. E.G. InputSystem, BoundarySystem. - /// - /// Note: type should be the Interface of the system to be retrieved and not the concrete class itself. - /// - /// True, there is a system registered with the selected interface, False, no system found for that interface - [Obsolete("Use IsServiceRegistered instead")] - public bool IsSystemRegistered() where T : IMixedRealityService - { - if (!IsCoreSystem(typeof(T))) return false; - - T service; - MixedRealityServiceRegistry.TryGetService(out service); - - if (service == null) - { - IMixedRealityService activeSerivce; - activeSystems.TryGetValue(typeof(T), out activeSerivce); - return activeSerivce != null; - } - - return service != null; - } - - private static bool IsCoreSystem(Type type) - { - if (type == null) - { - Debug.LogWarning("Null cannot be a core system."); - return false; - } - - return typeof(IMixedRealityInputSystem).IsAssignableFrom(type) || - typeof(IMixedRealityCameraSystem).IsAssignableFrom(type) || - typeof(IMixedRealityFocusProvider).IsAssignableFrom(type) || - typeof(IMixedRealityRaycastProvider).IsAssignableFrom(type) || - typeof(IMixedRealityTeleportSystem).IsAssignableFrom(type) || - typeof(IMixedRealityBoundarySystem).IsAssignableFrom(type) || - typeof(IMixedRealitySpatialAwarenessSystem).IsAssignableFrom(type) || - typeof(IMixedRealityDiagnosticsSystem).IsAssignableFrom(type) || - typeof(IMixedRealitySceneSystem).IsAssignableFrom(type); - } - - private IMixedRealityService GetServiceByNameInternal(Type interfaceType, string serviceName) - { - if (typeof(IMixedRealityDataProvider).IsAssignableFrom(interfaceType)) - { - Debug.LogWarning($"Unable to get a service of type {typeof(IMixedRealityDataProvider).Name}."); - return null; - } - - if (!CanGetService(interfaceType)) { return null; } - - IMixedRealityService service; - MixedRealityServiceRegistry.TryGetService(interfaceType, out service, out _, serviceName); - if (service != null) - { - return service; - } - - return null; - } - - /// - /// Retrieve the first service from the registry that meets the selected type and name - /// - /// Interface type of the service being requested - /// Name of the specific service - /// return parameter of the function - private T GetServiceByName(string serviceName) where T : IMixedRealityService - { - return (T)GetServiceByNameInternal(typeof(T), serviceName); - } - - /// - /// Gets all services by type and name. - /// - /// The name of the service to search for. If the string is empty than any matching will be added to the list. - private IReadOnlyList GetAllServicesByNameInternal(Type interfaceType, string serviceName) where T : IMixedRealityService - { - List services = new List(); - - if (!CanGetService(interfaceType)) { return new List() as IReadOnlyList; } - - bool isNullServiceName = string.IsNullOrEmpty(serviceName); - var systems = MixedRealityServiceRegistry.GetAllServices(); - int length = systems.Count; - for (int i = 0; i < length; i++) - { - IMixedRealityService service = systems[i]; - if (service is T && (isNullServiceName || service.Name == serviceName)) - { - services.Add((T)service); - } - } - - return services; - } - - /// - /// Check if the interface type and name matches the registered interface type and service instance found. - /// - /// The interface type of the service to check. - /// The name of the service to check. - /// The registered interface type. - /// The instance of the registered service. - /// True, if the registered service contains the interface type and name. - private static bool CheckServiceMatch(Type interfaceType, string serviceName, Type registeredInterfaceType, IMixedRealityService serviceInstance) - { - bool isValid = string.IsNullOrEmpty(serviceName) || serviceInstance.Name == serviceName; - - if ((registeredInterfaceType.Name == interfaceType.Name || serviceInstance.GetType().Name == interfaceType.Name) && isValid) - { - return true; - } - - var interfaces = serviceInstance.GetType().GetInterfaces(); - - for (int i = 0; i < interfaces.Length; i++) - { - if (interfaces[i].Name == interfaceType.Name && isValid) - { - return true; - } - } - - return false; - } - - /// - /// Checks if the system is ready to get a service. - /// - /// The interface type of the service being checked. - private static bool CanGetService(Type interfaceType) - { - if (isApplicationQuitting && !internalShutdown) - { - return false; - } - - if (!IsInitialized) - { - Debug.LogError("The Mixed Reality Toolkit has not been initialized!"); - return false; - } - - if (interfaceType == null) - { - Debug.LogError($"Interface type is null."); - return false; - } - - if (!typeof(IMixedRealityService).IsAssignableFrom(interfaceType)) - { - Debug.LogError($"{interfaceType.Name} does not implement {typeof(IMixedRealityService).Name}."); - return false; - } - - return true; - } - - #endregion Service Utilities - - #endregion Service Container Management - - #region Core System Accessors - - /// - /// The current Input System registered with the Mixed Reality Toolkit. - /// - [Obsolete("Utilize CoreServices.InputSystem instead")] - public static IMixedRealityInputSystem InputSystem - { - get - { - if (isApplicationQuitting) - { - return null; - } - - return CoreServices.InputSystem; - } - } - - /// - /// The current Boundary System registered with the Mixed Reality Toolkit. - /// - [Obsolete("Utilize CoreServices.BoundarySystem instead")] - public static IMixedRealityBoundarySystem BoundarySystem - { - get - { - if (isApplicationQuitting) - { - return null; - } - - return CoreServices.BoundarySystem; - } - } - - /// - /// The current Camera System registered with the Mixed Reality Toolkit. - /// - [Obsolete("Utilize CoreServices.CameraSystem instead")] - public static IMixedRealityCameraSystem CameraSystem - { - get - { - if (isApplicationQuitting) - { - return null; - } - - return CoreServices.CameraSystem; - } - } - - /// - /// The current Spatial Awareness System registered with the Mixed Reality Toolkit. - /// - [Obsolete("Utilize CoreServices.SpatialAwarenessSystem instead")] - public static IMixedRealitySpatialAwarenessSystem SpatialAwarenessSystem - { - get - { - if (isApplicationQuitting) - { - return null; - } - - return CoreServices.SpatialAwarenessSystem; - } - } - - /// - /// Returns true if the MixedRealityToolkit exists and has an active profile that has Teleport system enabled. - /// - public static bool IsTeleportSystemEnabled => IsInitialized && Instance.HasActiveProfile && Instance.ActiveProfile.IsTeleportSystemEnabled; - - /// - /// The current Teleport System registered with the Mixed Reality Toolkit. - /// - [Obsolete("Utilize CoreServices.TeleportSystem instead")] - public static IMixedRealityTeleportSystem TeleportSystem - { - get - { - if (isApplicationQuitting) - { - return null; - } - - return CoreServices.TeleportSystem; - } - } - - /// - /// The current Diagnostics System registered with the Mixed Reality Toolkit. - /// - [Obsolete("Utilize CoreServices.DiagnosticsSystem instead")] - public static IMixedRealityDiagnosticsSystem DiagnosticsSystem - { - get - { - if (isApplicationQuitting) - { - return null; - } - - return CoreServices.DiagnosticsSystem; - } - } - - /// - /// Returns true if the MixedRealityToolkit exists and has an active profile that has Scene system enabled. - /// - public static bool IsSceneSystemEnabled => IsInitialized && Instance.HasActiveProfile && Instance.ActiveProfile.IsSceneSystemEnabled; - - /// - /// The current Scene System registered with the Mixed Reality Toolkit. - /// - [Obsolete("Utilize CoreServices.SceneSystem instead")] - public static IMixedRealitySceneSystem SceneSystem - { - get - { - if (isApplicationQuitting) - { - return null; - } - - return CoreServices.SceneSystem; - } - } - - #endregion Core System Accessors - - #region Application Event Listeners - /// - /// Registers once on startup and sets isApplicationQuitting to true when quit event is detected. - /// - [RuntimeInitializeOnLoadMethod] - private static void RegisterRuntimePlayModeListener() - { - Application.quitting += () => - { - isApplicationQuitting = true; - }; - } - -#if UNITY_EDITOR - /// - /// Static class whose constructor is called once on startup. Listens for editor events. - /// Removes the need for individual instances to listen for events. - /// - [InitializeOnLoad] - private static class EditorEventListener - { - private const string WarnUser_EmptyActiveProfile = "WarnUser_EmptyActiveProfile"; - - static EditorEventListener() - { - // Detect when we enter edit mode so we can reset isApplicationQuitting - EditorApplication.playModeStateChanged += playModeState => - { - switch (playModeState) - { - case PlayModeStateChange.EnteredEditMode: - isApplicationQuitting = false; - break; - case PlayModeStateChange.ExitingEditMode: - isApplicationQuitting = false; - - if (activeInstance != null && activeInstance.activeProfile == null) - { - // If we have an active instance, and its profile is null, - // Alert the user that we don't have an active profile - // Keep track though whether user has instructed to ignore this warning - if (SessionState.GetBool(WarnUser_EmptyActiveProfile, true)) - { - if (EditorUtility.DisplayDialog("Warning!", "Mixed Reality Toolkit cannot initialize because no Active Profile has been assigned.", "OK", "Ignore")) - { - // Stop play mode as changes done in play mode will be lost - EditorApplication.isPlaying = false; - Selection.activeObject = Instance; - EditorGUIUtility.PingObject(Instance); - } - else - { - SessionState.SetBool(WarnUser_EmptyActiveProfile, false); - } - } - } - break; - default: - break; - } - }; - - EditorApplication.hierarchyChanged += () => - { - // These checks are only necessary in edit mode - if (!Application.isPlaying) - { - // Clean the toolkit instances hierarchy in case instances were deleted. - for (int i = toolkitInstances.Count - 1; i >= 0; i--) - { - if (toolkitInstances[i] == null) - { - // If it has been destroyed, remove it - toolkitInstances.RemoveAt(i); - } - } - - // If the active instance is null, it may not have been set, or it may have been deleted. - if (activeInstance == null) - { - // Do a search for a new active instance - MixedRealityToolkit instanceCheck = Instance; - } - } - - for (int i = toolkitInstances.Count - 1; i >= 0; i--) - { - // Make sure MRTK is not parented under anything - Debug.Assert(toolkitInstances[i].transform.parent == null, "MixedRealityToolkit instances should not be parented under any other GameObject."); - } - }; - } - } - - private void OnValidate() - { - EditorApplication.delayCall += DelayOnValidate; // This is a workaround for a known unity issue when calling refresh assetdatabase from inside a on validate scope. - } - - /// - /// Used to register newly created instances in edit mode. - /// Initially handled by using ExecuteAlways, but this attribute causes the instance to be destroyed as we enter play mode, which is disruptive to services. - /// - private void DelayOnValidate() - { - EditorApplication.delayCall -= DelayOnValidate; - - // This check is only necessary in edit mode. This can also get called during player builds as well, - // and shouldn't be run during that time. - if (EditorApplication.isPlayingOrWillChangePlaymode || - EditorApplication.isCompiling || - BuildPipeline.isBuildingPlayer) - { - return; - } - - RegisterInstance(this); - } -#endif // UNITY_EDITOR - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs.meta b/AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs.meta deleted file mode 100644 index d5cff2881..000000000 --- a/AR-ROS/Assets/MRTK/Core/Services/MixedRealityToolkit.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 83d9acc7968244a8886f3af591305bcb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: - - activeProfile: {instanceID: 0} - executionOrder: -100 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities.meta b/AR-ROS/Assets/MRTK/Core/Utilities.meta deleted file mode 100644 index d6b125d74..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c3b66410d2414720a6a01e0e702370c0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async.meta deleted file mode 100644 index 339ebf6dd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 596fc92fc221492ea73d376e8f079fd8 -folderAsset: yes -timeCreated: 1522521931 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs.meta deleted file mode 100644 index 635518530..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 44ee1d1559aee6f44baa0232b8e93e0b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions.meta deleted file mode 100644 index 7c8e7b58c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: fbbf8166801544bda3f9432ba0a37a03 -folderAsset: yes -timeCreated: 1522522836 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs deleted file mode 100644 index b829db006..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs +++ /dev/null @@ -1,35 +0,0 @@ -// MIT License - -// Copyright(c) 2016 Modest Tree Media Inc - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -using System.Runtime.CompilerServices; -using System.Threading.Tasks; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public class WaitForBackgroundThread - { - public ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() - { - return Task.Run(() => { }).ConfigureAwait(false).GetAwaiter(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs.meta deleted file mode 100644 index 7d1180837..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForBackgroundThread.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 80ac38df55fa4387a3a1dbf5e3035e2f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs deleted file mode 100644 index b4ac348c1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs +++ /dev/null @@ -1,35 +0,0 @@ -// MIT License - -// Copyright(c) 2016 Modest Tree Media Inc - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// This can be used as a way to return to the main unity thread - /// when using multiple threads with async methods. - /// - public class WaitForUpdate : CustomYieldInstruction - { - public override bool keepWaiting => false; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs.meta deleted file mode 100644 index af457bc8c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaitYieldInstructions/WaitForUpdate.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d57fb5f203e84f5497a1df9e9d39d82e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs deleted file mode 100644 index 29b57fc84..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs +++ /dev/null @@ -1,396 +0,0 @@ -// MIT License - -// Copyright(c) 2016 Modest Tree Media Inc - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.ExceptionServices; -using System.Text; -using System.Threading; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// We could just add a generic GetAwaiter to YieldInstruction and CustomYieldInstruction - /// but instead we add specific methods to each derived class to allow for return values - /// that make the most sense for the specific instruction type. - /// - public static class AwaiterExtensions - { - public static SimpleCoroutineAwaiter GetAwaiter(this WaitForSeconds instruction) - { - return GetAwaiterReturnVoid(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this WaitForUpdate instruction) - { - return GetAwaiterReturnVoid(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this WaitForEndOfFrame instruction) - { - return GetAwaiterReturnVoid(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this WaitForFixedUpdate instruction) - { - return GetAwaiterReturnVoid(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this WaitForSecondsRealtime instruction) - { - return GetAwaiterReturnVoid(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this WaitUntil instruction) - { - return GetAwaiterReturnVoid(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this WaitWhile instruction) - { - return GetAwaiterReturnVoid(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this AsyncOperation instruction) - { - return GetAwaiterReturnSelf(instruction); - } - - public static SimpleCoroutineAwaiter GetAwaiter(this ResourceRequest instruction) - { - var awaiter = new SimpleCoroutineAwaiter(); - RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( - InstructionWrappers.ResourceRequest(awaiter, instruction))); - return awaiter; - } - - public static SimpleCoroutineAwaiter GetAwaiter(this AssetBundleCreateRequest instruction) - { - var awaiter = new SimpleCoroutineAwaiter(); - RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( - InstructionWrappers.AssetBundleCreateRequest(awaiter, instruction))); - return awaiter; - } - - public static SimpleCoroutineAwaiter GetAwaiter(this AssetBundleRequest instruction) - { - var awaiter = new SimpleCoroutineAwaiter(); - RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( - InstructionWrappers.AssetBundleRequest(awaiter, instruction))); - return awaiter; - } - - public static SimpleCoroutineAwaiter GetAwaiter(this IEnumerator coroutine) - { - var awaiter = new SimpleCoroutineAwaiter(); - RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( - new CoroutineWrapper(coroutine, awaiter).Run())); - return awaiter; - } - - public static SimpleCoroutineAwaiter GetAwaiter(this IEnumerator coroutine) - { - var awaiter = new SimpleCoroutineAwaiter(); - RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( - new CoroutineWrapper(coroutine, awaiter).Run())); - return awaiter; - } - - private static SimpleCoroutineAwaiter GetAwaiterReturnVoid(object instruction) - { - var awaiter = new SimpleCoroutineAwaiter(); - RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( - InstructionWrappers.ReturnVoid(awaiter, instruction))); - return awaiter; - } - - private static SimpleCoroutineAwaiter GetAwaiterReturnSelf(T instruction) - { - var awaiter = new SimpleCoroutineAwaiter(); - RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine( - InstructionWrappers.ReturnSelf(awaiter, instruction))); - return awaiter; - } - - private static void RunOnUnityScheduler(Action action) - { - if (SynchronizationContext.Current == SyncContextUtility.UnitySynchronizationContext) - { - action(); - } - else - { - AsyncCoroutineRunner.Post(action); - } - } - - /// - /// Processes Coroutine and notifies completion with result. - /// - /// The result type. - public class SimpleCoroutineAwaiter : INotifyCompletion - { - private Exception exception; - private Action continuation; - private T result; - - public bool IsCompleted { get; private set; } - - public T GetResult() - { - Debug.Assert(IsCompleted); - - if (exception != null) - { - ExceptionDispatchInfo.Capture(exception).Throw(); - } - - return result; - } - - public void Complete(T taskResult, Exception e) - { - Debug.Assert(!IsCompleted); - - IsCompleted = true; - exception = e; - result = taskResult; - - // Always trigger the continuation on the unity thread - // when awaiting on unity yield instructions. - if (continuation != null) - { - RunOnUnityScheduler(continuation); - } - } - - void INotifyCompletion.OnCompleted(Action notifyContinuation) - { - Debug.Assert(continuation == null); - Debug.Assert(!IsCompleted); - - continuation = notifyContinuation; - } - } - - /// - /// Processes Coroutine and notifies completion. - /// - public class SimpleCoroutineAwaiter : INotifyCompletion - { - private Exception exception; - private Action continuation; - - public bool IsCompleted { get; private set; } - - public void GetResult() - { - Debug.Assert(IsCompleted); - - if (exception != null) - { - ExceptionDispatchInfo.Capture(exception).Throw(); - } - } - - public void Complete(Exception e) - { - Debug.Assert(!IsCompleted); - - IsCompleted = true; - exception = e; - - // Always trigger the continuation on the unity thread - // when awaiting on unity yield instructions. - if (continuation != null) - { - RunOnUnityScheduler(continuation); - } - } - - void INotifyCompletion.OnCompleted(Action notifyContinuation) - { - Debug.Assert(continuation == null); - Debug.Assert(!IsCompleted); - - continuation = notifyContinuation; - } - } - - private class CoroutineWrapper - { - private readonly SimpleCoroutineAwaiter awaiter; - private readonly Stack processStack; - - public CoroutineWrapper(IEnumerator coroutine, SimpleCoroutineAwaiter awaiter) - { - processStack = new Stack(); - processStack.Push(coroutine); - this.awaiter = awaiter; - } - - public IEnumerator Run() - { - while (true) - { - var topWorker = processStack.Peek(); - - bool isDone; - - try - { - isDone = !topWorker.MoveNext(); - } - catch (Exception e) - { - // The IEnumerators we have in the process stack do not tell us the - // actual names of the coroutine methods but it does tell us the objects - // that the IEnumerators are associated with, so we can at least try - // adding that to the exception output - var objectTrace = GenerateObjectTrace(processStack); - awaiter.Complete(default(T), objectTrace.Any() ? new Exception(GenerateObjectTraceMessage(objectTrace), e) : e); - - yield break; - } - - if (isDone) - { - processStack.Pop(); - - if (processStack.Count == 0) - { - awaiter.Complete((T)topWorker.Current, null); - yield break; - } - } - - // We could just yield return nested IEnumerator's here but we choose to do - // our own handling here so that we can catch exceptions in nested coroutines - // instead of just top level coroutine - var item = topWorker.Current as IEnumerator; - if (item != null) - { - processStack.Push(item); - } - else - { - // Return the current value to the unity engine so it can handle things like - // WaitForSeconds, WaitToEndOfFrame, etc. - yield return topWorker.Current; - } - } - } - - private static string GenerateObjectTraceMessage(List objTrace) - { - var result = new StringBuilder(); - - foreach (var objType in objTrace) - { - if (result.Length != 0) - { - result.Append(" -> "); - } - - result.Append(objType); - } - - result.AppendLine(); - return $"Unity Coroutine Object Trace: {result}"; - } - - private static List GenerateObjectTrace(IEnumerable enumerators) - { - var objTrace = new List(); - - foreach (var enumerator in enumerators) - { - // NOTE: This only works with scripting engine 4.6 - // And could easily stop working with unity updates - var field = enumerator.GetType().GetField("$this", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); - - if (field == null) - { - continue; - } - - var obj = field.GetValue(enumerator); - - if (obj == null) - { - continue; - } - - var objType = obj.GetType(); - - if (!objTrace.Any() || objType != objTrace.Last()) - { - objTrace.Add(objType); - } - } - - objTrace.Reverse(); - return objTrace; - } - } - - private static class InstructionWrappers - { - public static IEnumerator ReturnVoid(SimpleCoroutineAwaiter awaiter, object instruction) - { - // For simple instructions we assume that they don't throw exceptions - yield return instruction; - awaiter.Complete(null); - } - - public static IEnumerator AssetBundleCreateRequest(SimpleCoroutineAwaiter awaiter, AssetBundleCreateRequest instruction) - { - yield return instruction; - awaiter.Complete(instruction.assetBundle, null); - } - - public static IEnumerator ReturnSelf(SimpleCoroutineAwaiter awaiter, T instruction) - { - yield return instruction; - awaiter.Complete(instruction, null); - } - - public static IEnumerator AssetBundleRequest(SimpleCoroutineAwaiter awaiter, AssetBundleRequest instruction) - { - yield return instruction; - awaiter.Complete(instruction.asset, null); - } - - public static IEnumerator ResourceRequest(SimpleCoroutineAwaiter awaiter, ResourceRequest instruction) - { - yield return instruction; - awaiter.Complete(instruction.asset, null); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs.meta deleted file mode 100644 index e828dfa5e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/AwaiterExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 18fc99997625412c93380bed2e577891 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal.meta deleted file mode 100644 index d28c23f03..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 4c5fd3c3d8d74e10afa9af0a7df30f97 -folderAsset: yes -timeCreated: 1506153419 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs deleted file mode 100644 index ea7520423..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs +++ /dev/null @@ -1,137 +0,0 @@ -// MIT License - -// Copyright(c) 2016 Modest Tree Media Inc - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using UnityEngine; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.PlayModeTests")] -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// This Async Coroutine Runner is just an object to - /// ensure that coroutines run properly with async/await. - /// - /// - /// The object that this MonoBehavior is attached to must be a root object in the - /// scene, as it will be marked as DontDestroyOnLoad (so that when scenes are changed, - /// it will persist instead of being destroyed). The runner will force itself to - /// the root of the scene if it's rooted elsewhere. - /// - [AddComponentMenu("Scripts/MRTK/Core/AsyncCoroutineRunner")] - internal sealed class AsyncCoroutineRunner : MonoBehaviour - { - private static AsyncCoroutineRunner instance; - - private static readonly Queue Actions = new Queue(); - - internal static AsyncCoroutineRunner Instance - { - get - { - if (instance == null) - { - instance = FindObjectOfType(); - } - - if (instance == null) - { - var instanceGameObject = GameObject.Find("AsyncCoroutineRunner"); - - if (instanceGameObject != null) - { - instance = instanceGameObject.GetComponent(); - - if (instance == null) - { - Debug.Log("[AsyncCoroutineRunner] Found GameObject but didn't have component"); - - if (Application.isPlaying) - { - Destroy(instanceGameObject); - } - else - { - DestroyImmediate(instanceGameObject); - } - } - } - } - - if (instance == null) - { - instance = new GameObject("AsyncCoroutineRunner").AddComponent(); - } - - instance.gameObject.hideFlags = HideFlags.None; - - // AsyncCoroutineRunner must be at the root so that we can call DontDestroyOnLoad on it. - // This is ultimately to ensure that it persists across scene loads/unloads. - if (instance.transform.parent != null) - { - Debug.LogWarning($"AsyncCoroutineRunner was found as a child of another GameObject {instance.transform.parent}, " + - "it must be a root object in the scene. Moving the AsyncCoroutineRunner to the root."); - instance.transform.parent = null; - } - -#if !UNITY_EDITOR - DontDestroyOnLoad(instance); -#endif - - return instance; - } - } - - internal static void Post(Action task) - { - lock (Actions) - { - Actions.Enqueue(task); - } - } - - private void Update() - { - Debug.Assert(Instance != null); - - int actionCount; - - lock (Actions) - { - actionCount = Actions.Count; - } - - for (int i = 0; i < actionCount; i++) - { - Action next; - - lock (Actions) - { - next = Actions.Dequeue(); - } - - next(); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs.meta deleted file mode 100644 index 4e9189ef6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/AsyncCoroutineRunner.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8e6ecbbf0b5840b09d7b4ee7f0a62b7a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs deleted file mode 100644 index ef7c1b2ef..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs +++ /dev/null @@ -1,83 +0,0 @@ -// MIT License - -// Copyright(c) 2016 Modest Tree Media Inc - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -using System.Threading; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Utility class to assist in thread and context synchronization. - /// - public static class SyncContextUtility - { -#if UNITY_EDITOR - private static System.Reflection.MethodInfo executionMethod; - - /// - /// HACK: makes Unity Editor execute continuations in edit mode. - /// - private static void ExecuteContinuations() - { - if (UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode) - { - return; - } - - var context = SynchronizationContext.Current; - - if (executionMethod == null) - { - executionMethod = context.GetType().GetMethod("Exec", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); - } - - executionMethod?.Invoke(context, null); - } - - [UnityEditor.InitializeOnLoadMethod] -#endif - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] - private static void Initialize() - { -#if UNITY_EDITOR - UnityEditor.EditorApplication.update += ExecuteContinuations; -#endif - UnitySynchronizationContext = SynchronizationContext.Current; - UnityThreadId = Thread.CurrentThread.ManagedThreadId; - } - - /// - /// This Unity Player's Thread Id. - /// - public static int UnityThreadId { get; private set; } - - /// - /// This Unity Player's Synchronization Context. - /// - public static SynchronizationContext UnitySynchronizationContext { get; private set; } - - /// - /// Is this being called from the main thread? - /// - public static bool IsMainThread => UnitySynchronizationContext == SynchronizationContext.Current; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs.meta deleted file mode 100644 index 47c3b0c7c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/Internal/SyncContextUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bc68e3acdbe147c697bb4f98fa3561b3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md b/AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md deleted file mode 100644 index 63c849cc8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Modest Tree Media Inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md.meta deleted file mode 100644 index 0564b1315..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/License.md.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 4720a70314cd45729b51c5bdc08b99cb -timeCreated: 1522521660 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef b/AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef deleted file mode 100644 index 82e205dc9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Async", - "references": [], - "optionalUnityReferences": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef.meta deleted file mode 100644 index 327cacdfa..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/MRTK.Async.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 9fbc8fd1d6852be45a58bd547a8cb17e -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md b/AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md deleted file mode 100644 index 737334d48..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md +++ /dev/null @@ -1,3 +0,0 @@ -Adapted from https://github.com/svermeulen/Unity3dAsyncAwaitUtil - -For details on usage see the associated blog post [here](http://www.stevevermeulen.com/index.php/2017/09/23/using-async-await-in-unity3d-2017/). diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md.meta deleted file mode 100644 index d8ea6adfc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Async/ReadMe.md.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 45001b726aa54ff787618c2a3ea3fb3f -timeCreated: 1522521660 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy.meta deleted file mode 100644 index 894303b96..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 427e523fb1b9407f9311afc6cbd32b85 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs.meta deleted file mode 100644 index 513cd94e5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 47031852118f3be4f8361655b8551dbd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs deleted file mode 100644 index bb3ad2d9b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - /// - /// Build and Deploy Specific Editor Preferences for the Build and Deploy Window. - /// - public static class BuildDeployPreferences - { - // Constants - private const string EDITOR_PREF_BUILD_DIR = "BuildDeployWindow_BuildDir"; - private const string EDITOR_PREF_INCREMENT_BUILD_VERSION = "BuildDeployWindow_IncrementBuildVersion"; - - /// - /// The Build Directory that the Mixed Reality Toolkit will build to. - /// - /// - /// This is a root build folder path. Each platform build will be put into a child directory with the name of the current active build target. - /// - public static string BuildDirectory - { - get => $"{EditorPreferences.Get(EDITOR_PREF_BUILD_DIR, "Builds")}/{EditorUserBuildSettings.activeBuildTarget}"; - set => EditorPreferences.Set(EDITOR_PREF_BUILD_DIR, value.Replace($"/{EditorUserBuildSettings.activeBuildTarget}", string.Empty)); - } - - /// - /// The absolute path to - /// - public static string AbsoluteBuildDirectory - { - get - { - string rootBuildDirectory = BuildDirectory; - int dirCharIndex = rootBuildDirectory.IndexOf("/", StringComparison.Ordinal); - - if (dirCharIndex != -1) - { - rootBuildDirectory = rootBuildDirectory.Substring(0, dirCharIndex); - } - - return Path.GetFullPath(Path.Combine(Path.Combine(Application.dataPath, ".."), rootBuildDirectory)); - } - } - - /// - /// Current setting to increment build visioning. - /// - public static bool IncrementBuildVersion - { - get => EditorPreferences.Get(EDITOR_PREF_INCREMENT_BUILD_VERSION, true); - set => EditorPreferences.Set(EDITOR_PREF_INCREMENT_BUILD_VERSION, value); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs.meta deleted file mode 100644 index bd4d002ca..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildDeployPreferences.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2007744f2a5c49a6bab39c15489f52ae -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs deleted file mode 100644 index 70e3e1a5a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor; -using UnityEditor.Build.Reporting; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - public class BuildInfo : IBuildInfo - { - public BuildInfo(bool isCommandLine = false) - { - IsCommandLine = isCommandLine; - BuildSymbols = string.Empty; - BuildTarget = EditorUserBuildSettings.activeBuildTarget; - Scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(scene => scene.path); - } - - /// - public virtual BuildTarget BuildTarget { get; } - - /// - public bool IsCommandLine { get; } - - private string outputDirectory; - - /// - public string OutputDirectory - { - get => string.IsNullOrEmpty(outputDirectory) ? outputDirectory = BuildDeployPreferences.BuildDirectory : outputDirectory; - set => outputDirectory = value; - } - - /// - public IEnumerable Scenes { get; set; } - - /// - public Action PreBuildAction { get; set; } - - /// - public Action PostBuildAction { get; set; } - - /// - public BuildOptions BuildOptions { get; set; } - - /// - public ColorSpace? ColorSpace { get; set; } - - /// - public ScriptingImplementation? ScriptingBackend { get; set; } - - /// - public bool AutoIncrement { get; set; } = false; - - /// - public string BuildSymbols { get; set; } - - /// - public string BuildPlatform { get; set; } - - /// - public string Configuration - { - get - { - if (!this.HasConfigurationSymbol()) - { - return UnityPlayerBuildTools.BuildSymbolMaster; - } - - return this.HasAnySymbols(UnityPlayerBuildTools.BuildSymbolDebug) - ? UnityPlayerBuildTools.BuildSymbolDebug - : this.HasAnySymbols(UnityPlayerBuildTools.BuildSymbolRelease) - ? UnityPlayerBuildTools.BuildSymbolRelease - : UnityPlayerBuildTools.BuildSymbolMaster; - } - set - { - if (this.HasConfigurationSymbol()) - { - this.RemoveSymbols(new[] - { - UnityPlayerBuildTools.BuildSymbolDebug, - UnityPlayerBuildTools.BuildSymbolRelease, - UnityPlayerBuildTools.BuildSymbolMaster - }); - } - - this.AppendSymbols(value); - } - } - - /// - public string LogDirectory { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs.meta deleted file mode 100644 index f2beb4360..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0aa28db2f79742eabc7d71824c1a12c4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs deleted file mode 100644 index 7fd2ae461..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Linq; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - public static class BuildInfoExtensions - { - /// - /// Append symbols to the end of the 's. - /// - /// The string array to append. - public static void AppendSymbols(this IBuildInfo buildInfo, params string[] symbol) - { - buildInfo.AppendSymbols((IEnumerable)symbol); - } - - /// - /// Append symbols to the end of the 's . - /// - /// The string collection to append. - public static void AppendSymbols(this IBuildInfo buildInfo, IEnumerable symbols) - { - string[] toAdd = symbols.Except(buildInfo.BuildSymbols.Split(';')) - .Where(symbol => !string.IsNullOrEmpty(symbol)).ToArray(); - - if (!toAdd.Any()) - { - return; - } - - if (!string.IsNullOrEmpty(buildInfo.BuildSymbols)) - { - buildInfo.BuildSymbols += ";"; - } - - buildInfo.BuildSymbols += string.Join(";", toAdd); - } - - /// - /// Remove symbols from the 's . - /// - /// The string collection to remove. - public static void RemoveSymbols(this IBuildInfo buildInfo, IEnumerable symbolsToRemove) - { - string[] toKeep = buildInfo.BuildSymbols.Split(';').Except(symbolsToRemove).ToArray(); - - if (!toKeep.Any()) - { - return; - } - - if (!string.IsNullOrEmpty(buildInfo.BuildSymbols)) - { - buildInfo.BuildSymbols = string.Empty; - } - - buildInfo.BuildSymbols += string.Join(";", toKeep); - } - - /// - /// Does the contain any of the provided symbols in the ? - /// - /// The string array of symbols to match. - /// True, if any of the provided symbols are in the - public static bool HasAnySymbols(this IBuildInfo buildInfo, params string[] symbols) - { - if (string.IsNullOrEmpty(buildInfo.BuildSymbols)) { return false; } - - return buildInfo.BuildSymbols.Split(';').Intersect(symbols).Any(); - } - - /// - /// Does the contain any of the provided symbols in the ? - /// - /// The string collection of symbols to match. - /// True, if any of the provided symbols are in the - public static bool HasAnySymbols(this IBuildInfo buildInfo, IEnumerable symbols) - { - if (string.IsNullOrEmpty(buildInfo.BuildSymbols)) { return false; } - - return buildInfo.BuildSymbols.Split(';').Intersect(symbols).Any(); - } - - /// - /// Checks if the has any configuration symbols (i.e. debug, release, or master). - /// - /// True, if the contains debug, release, or master. - public static bool HasConfigurationSymbol(this IBuildInfo buildInfo) - { - return buildInfo.HasAnySymbols( - UnityPlayerBuildTools.BuildSymbolDebug, - UnityPlayerBuildTools.BuildSymbolRelease, - UnityPlayerBuildTools.BuildSymbolMaster); - } - - /// - /// Appends the 's without including debug, release or master. - /// - /// Symbols to append. - public static void AppendWithoutConfigurationSymbols(this IBuildInfo buildInfo, string symbols) - { - buildInfo.AppendSymbols(symbols.Split(';').Except(new[] - { - UnityPlayerBuildTools.BuildSymbolDebug, - UnityPlayerBuildTools.BuildSymbolRelease, - UnityPlayerBuildTools.BuildSymbolMaster - }).ToArray()); - } - - /// - /// Gets the BuildTargetGroup for the 's BuildTarget - /// - /// The BuildTargetGroup for the 's BuildTarget - public static BuildTargetGroup GetGroup(this BuildTarget buildTarget) - { - switch (buildTarget) - { - case BuildTarget.WSAPlayer: - return BuildTargetGroup.WSA; - case BuildTarget.StandaloneWindows: - case BuildTarget.StandaloneWindows64: - return BuildTargetGroup.Standalone; - default: - return BuildTargetGroup.Unknown; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs.meta deleted file mode 100644 index 8f3ff19ef..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/BuildInfoExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 02f317fb33dc4d27b5ffb7a71211fcd5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs deleted file mode 100644 index c949027ad..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEditor; -using UnityEditor.Build.Reporting; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - /// - /// The Build Info defines common properties for a build. - /// - public interface IBuildInfo - { - /// - /// Is this build being issued from the command line? - /// - bool IsCommandLine { get; } - - /// - /// The directory to put the final build output. - /// - /// - /// Defaults to "Application.dataPath/Builds/Platform Target/" - /// - string OutputDirectory { get; set; } - - /// - /// The list of scenes to include in the build. - /// - IEnumerable Scenes { get; set; } - - /// - /// A pre-build action to raise before building the Unity player. - /// - Action PreBuildAction { get; set; } - - /// - /// A post-build action to raise after building the Unity player. - /// - Action PostBuildAction { get; set; } - - /// - /// Build options to include in the Unity player build pipeline. - /// - BuildOptions BuildOptions { get; set; } - - /// - /// The build target. - /// - BuildTarget BuildTarget { get; } - - /// - /// Optional parameter to set the player's - /// - ColorSpace? ColorSpace { get; set; } - - /// - /// Optional parameter to set the scripting backend - /// - ScriptingImplementation? ScriptingBackend { get; set; } - - /// - /// Should the build auto increment the build version number? - /// - bool AutoIncrement { get; set; } - - /// - /// The symbols associated with this build. - /// - string BuildSymbols { get; set; } - - /// - /// The build configuration (i.e. debug, release, or master) - /// - string Configuration { get; set; } - - /// - /// The build platform (i.e. x86, x64) - /// - string BuildPlatform { get; set; } - - /// - /// The default location of log files generated by sub-processes of the build system. - /// - /// - /// Note that this different from the Unity flag -logFile, which controls the location - /// of the Unity log file. This is specifically for logs generated by other processes - /// that the MRTK build tools produces (for example, when msbuild.exe is involved) - /// - string LogDirectory { get; set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs.meta deleted file mode 100644 index d5fedde66..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/IBuildInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ecf7640dc24e4c2e9f992233ee15e55d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef deleted file mode 100644 index d52904daf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Editor.BuildAndDeploy", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Utilities" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef.meta deleted file mode 100644 index 5195fbe04..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/MRTK.BuildAndDeploy.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: cadcbfb06c3f4683bccf2c955c150d0d -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs deleted file mode 100644 index c5ad09da4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; -using UnityEditor; -using UnityEditor.Build.Reporting; -using UnityEngine; -using Debug = UnityEngine.Debug; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - /// - /// Cross platform player build tools - /// - public static class UnityPlayerBuildTools - { - // Build configurations. Exactly one of these should be defined for any given build. - public const string BuildSymbolDebug = "debug"; - public const string BuildSymbolRelease = "release"; - public const string BuildSymbolMaster = "master"; - - /// - /// Starts the build process - /// - /// The BuildReport from Unity's BuildPipeline - public static BuildReport BuildUnityPlayer(IBuildInfo buildInfo) - { - EditorUtility.DisplayProgressBar("Build Pipeline", "Gathering Build Data...", 0.25f); - - // Call the pre-build action, if any - buildInfo.PreBuildAction?.Invoke(buildInfo); - - BuildTargetGroup buildTargetGroup = buildInfo.BuildTarget.GetGroup(); - string playerBuildSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup); - - if (!string.IsNullOrEmpty(playerBuildSymbols)) - { - if (buildInfo.HasConfigurationSymbol()) - { - buildInfo.AppendWithoutConfigurationSymbols(playerBuildSymbols); - } - else - { - buildInfo.AppendSymbols(playerBuildSymbols.Split(';')); - } - } - - if (!string.IsNullOrEmpty(buildInfo.BuildSymbols)) - { - PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, buildInfo.BuildSymbols); - } - - if ((buildInfo.BuildOptions & BuildOptions.Development) == BuildOptions.Development && - !buildInfo.HasConfigurationSymbol()) - { - buildInfo.AppendSymbols(BuildSymbolDebug); - } - - if (buildInfo.HasAnySymbols(BuildSymbolDebug)) - { - buildInfo.BuildOptions |= BuildOptions.Development | BuildOptions.AllowDebugging; - } - - if (buildInfo.HasAnySymbols(BuildSymbolRelease)) - { - // Unity automatically adds the DEBUG symbol if the BuildOptions.Development flag is - // specified. In order to have debug symbols and the RELEASE symbols we have to - // inject the symbol Unity relies on to enable the /debug+ flag of csc.exe which is "DEVELOPMENT_BUILD" - buildInfo.AppendSymbols("DEVELOPMENT_BUILD"); - } - - var oldColorSpace = PlayerSettings.colorSpace; - - if (buildInfo.ColorSpace.HasValue) - { - PlayerSettings.colorSpace = buildInfo.ColorSpace.Value; - } - - if (buildInfo.ScriptingBackend.HasValue) - { - PlayerSettings.SetScriptingBackend(buildTargetGroup, buildInfo.ScriptingBackend.Value); - } - - BuildTarget oldBuildTarget = EditorUserBuildSettings.activeBuildTarget; - BuildTargetGroup oldBuildTargetGroup = oldBuildTarget.GetGroup(); - - if (EditorUserBuildSettings.activeBuildTarget != buildInfo.BuildTarget) - { - EditorUserBuildSettings.SwitchActiveBuildTarget(buildTargetGroup, buildInfo.BuildTarget); - } - - switch (buildInfo.BuildTarget) - { - case BuildTarget.Android: - buildInfo.OutputDirectory = $"{buildInfo.OutputDirectory}/{PlayerSettings.productName}.apk"; - break; - case BuildTarget.StandaloneWindows: - case BuildTarget.StandaloneWindows64: - buildInfo.OutputDirectory = $"{buildInfo.OutputDirectory}/{PlayerSettings.productName}.exe"; - break; - } - - BuildReport buildReport = default; - - try - { - buildReport = BuildPipeline.BuildPlayer( - buildInfo.Scenes.ToArray(), - buildInfo.OutputDirectory, - buildInfo.BuildTarget, - buildInfo.BuildOptions); - } - catch (Exception e) - { - Debug.LogError($"{e.Message}\n{e.StackTrace}"); - } - - PlayerSettings.colorSpace = oldColorSpace; - - if (EditorUserBuildSettings.activeBuildTarget != oldBuildTarget) - { - EditorUserBuildSettings.SwitchActiveBuildTarget(oldBuildTargetGroup, oldBuildTarget); - } - - // Call the post-build action, if any - buildInfo.PostBuildAction?.Invoke(buildInfo, buildReport); - - return buildReport; - } - - /// - /// Force Unity To Write Project Files - /// - public static void SyncSolution() - { - var syncVs = Type.GetType("UnityEditor.SyncVS,UnityEditor"); - var syncSolution = syncVs.GetMethod("SyncSolution", BindingFlags.Public | BindingFlags.Static); - syncSolution.Invoke(null, null); - } - - /// - /// Start a build using Unity's command line. - /// - public static async void StartCommandLineBuild() - { - var success = await BuildUnityPlayerSimplified(); - Debug.Log($"Exiting build..."); - EditorApplication.Exit(success ? 0 : 1); - } - - public static async Task BuildUnityPlayerSimplified() - { - // We don't need stack traces on all our logs. Makes things a lot easier to read. - Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); - Debug.Log($"Starting command line build for {EditorUserBuildSettings.activeBuildTarget}..."); - EditorAssemblyReloadManager.LockReloadAssemblies = true; - - bool success; - try - { - SyncSolution(); - switch (EditorUserBuildSettings.activeBuildTarget) - { - case BuildTarget.WSAPlayer: - success = await UwpPlayerBuildTools.BuildPlayer(new UwpBuildInfo(true)); - break; - default: - var buildInfo = new BuildInfo(true) as IBuildInfo; - ParseBuildCommandLine(ref buildInfo); - var buildResult = BuildUnityPlayer(buildInfo); - success = buildResult.summary.result == BuildResult.Succeeded; - break; - } - } - catch (Exception e) - { - Debug.LogError($"Build Failed!\n{e.Message}\n{e.StackTrace}"); - success = false; - } - - Debug.Log($"Finished build... Build success? {success}"); - return success; - } - - internal static bool CheckBuildScenes() - { - if (EditorBuildSettings.scenes.Length == 0) - { - return EditorUtility.DisplayDialog("Attention!", - "No scenes are present in the build settings.\n" + - "The current scene will be the one built.\n\n" + - "Do you want to cancel and add one?", - "Continue Anyway", "Cancel Build"); - } - - return true; - } - - /// - /// Get the Unity Project Root Path. - /// - /// The full path to the project's root. - public static string GetProjectPath() - { - return Path.GetDirectoryName(Path.GetFullPath(Application.dataPath)); - } - - public static void ParseBuildCommandLine(ref IBuildInfo buildInfo) - { - string[] arguments = Environment.GetCommandLineArgs(); - - for (int i = 0; i < arguments.Length; ++i) - { - switch (arguments[i]) - { - case "-autoIncrement": - buildInfo.AutoIncrement = true; - break; - case "-sceneList": - buildInfo.Scenes = buildInfo.Scenes.Union(SplitSceneList(arguments[++i])); - break; - case "-sceneListFile": - string path = arguments[++i]; - if (File.Exists(path)) - { - buildInfo.Scenes = buildInfo.Scenes.Union(SplitSceneList(File.ReadAllText(path))); - } - else - { - Debug.LogWarning($"Scene list file at '{path}' does not exist."); - } - break; - case "-buildOutput": - buildInfo.OutputDirectory = arguments[++i]; - break; - case "-colorSpace": - buildInfo.ColorSpace = (ColorSpace)Enum.Parse(typeof(ColorSpace), arguments[++i]); - break; - case "-scriptingBackend": - buildInfo.ScriptingBackend = (ScriptingImplementation)Enum.Parse(typeof(ScriptingImplementation), arguments[++i]); - break; - case "-x86": - case "-x64": - case "-arm": - case "-arm64": - buildInfo.BuildPlatform = arguments[i].Substring(1); - break; - case "-debug": - case "-master": - case "-release": - buildInfo.Configuration = arguments[i].Substring(1).ToLower(); - break; - case "-logDirectory": - buildInfo.LogDirectory = arguments[++i]; - break; - } - } - } - - private static IEnumerable SplitSceneList(string sceneList) - { - return from scene in sceneList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) - select scene.Trim(); - } - - /// - /// Restores any nuget packages at the path specified. - /// - /// True, if the nuget packages were successfully restored. - public static async Task RestoreNugetPackagesAsync(string nugetPath, string storePath) - { - Debug.Assert(File.Exists(nugetPath)); - Debug.Assert(Directory.Exists(storePath)); - - string projectJSONPath = Path.Combine(storePath, "project.json"); - string projectJSONLockPath = Path.Combine(storePath, "project.lock.json"); - - await new Process().StartProcessAsync(nugetPath, $"restore \"{projectJSONPath}\""); - - return File.Exists(projectJSONLockPath); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs.meta deleted file mode 100644 index 1acbb9d06..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UnityPlayerBuildTools.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 340fbdb47de243b0a0c8d029b9d479d1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs deleted file mode 100644 index 654c356dc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs +++ /dev/null @@ -1,685 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Xml.Linq; -using UnityEditor; -using UnityEngine; -using Debug = UnityEngine.Debug; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - public static class UwpAppxBuildTools - { - /// - /// Query the build process to see if we're already building. - /// - public static bool IsBuilding { get; private set; } = false; - - /// - /// The list of filename extensions that are valid VCProjects. - /// - private static readonly string[] VcProjExtensions = { "vcsproj", "vcxproj" }; - - /// - /// Build the UWP appx bundle for this project. Requires that has already be run or a user has - /// previously built the Unity Player with the WSA Player as the Build Target. - /// - /// True, if the appx build was successful. - public static async Task BuildAppxAsync(UwpBuildInfo buildInfo, CancellationToken cancellationToken = default) - { - if (!EditorAssemblyReloadManager.LockReloadAssemblies) - { - Debug.LogError("Lock Reload assemblies before attempting to build appx!"); - return false; - } - - if (IsBuilding) - { - Debug.LogWarning("Build already in progress!"); - return false; - } - - if (Application.isBatchMode) - { - // We don't need stack traces on all our logs. Makes things a lot easier to read. - Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); - } - - Debug.Log("Starting Unity Appx Build..."); - - IsBuilding = true; - string slnFilename = Path.Combine(buildInfo.OutputDirectory, $"{PlayerSettings.productName}.sln"); - - if (!File.Exists(slnFilename)) - { - Debug.LogError("Unable to find Solution to build from!"); - return IsBuilding = false; - } - - // Get and validate the msBuild path... - var msBuildPath = await FindMsBuildPathAsync(); - - if (!File.Exists(msBuildPath)) - { - Debug.LogError($"MSBuild.exe is missing or invalid!\n{msBuildPath}"); - return IsBuilding = false; - } - - // Ensure that the generated .appx version increments by modifying Package.appxmanifest - try - { - if (!UpdateAppxManifest(buildInfo)) - { - throw new Exception(); - } - } - catch (Exception e) - { - Debug.LogError($"Failed to update appxmanifest!\n{e.Message}"); - return IsBuilding = false; - } - - string storagePath = Path.GetFullPath(Path.Combine(Path.Combine(Application.dataPath, ".."), buildInfo.OutputDirectory)); - string solutionProjectPath = Path.GetFullPath(Path.Combine(storagePath, $@"{PlayerSettings.productName}.sln")); - - // Building the solution requires first restoring NuGet packages - when built through - // Visual Studio, VS does this automatically - when building via msbuild like we're doing here, - // we have to do that step manually. - int exitCode = await Run(msBuildPath, - $"\"{solutionProjectPath}\" /t:restore {GetMSBuildLoggingCommand(buildInfo.LogDirectory, "nugetRestore.log")}", - !Application.isBatchMode, - cancellationToken); - if (exitCode != 0) - { - IsBuilding = false; - return false; - } - - // Need to add ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch to MixedRealityToolkit.vcxproj - if (buildInfo.BuildPlatform == "arm64") - { - if (!UpdateVSProj(buildInfo)) - { - return IsBuilding = false; - } - } - - // Now that NuGet packages have been restored, we can run the actual build process. - exitCode = await Run(msBuildPath, - $"\"{solutionProjectPath}\" {(buildInfo.Multicore ? "/m /nr:false" : "")} /t:{(buildInfo.RebuildAppx ? "Rebuild" : "Build")} /p:Configuration={buildInfo.Configuration} /p:Platform={buildInfo.BuildPlatform} {(string.IsNullOrEmpty(buildInfo.PlatformToolset) ? string.Empty : $"/p:PlatformToolset={buildInfo.PlatformToolset}")} {GetMSBuildLoggingCommand(buildInfo.LogDirectory, "buildAppx.log")}", - !Application.isBatchMode, - cancellationToken); - AssetDatabase.SaveAssets(); - - IsBuilding = false; - return exitCode == 0; - } - - private static async Task Run(string fileName, string args, bool showDebug, CancellationToken cancellationToken) - { - Debug.Log($"Running command: {fileName} {args}"); - - var processResult = await new Process().StartProcessAsync( - fileName, args, !Application.isBatchMode, cancellationToken); - - switch (processResult.ExitCode) - { - case 0: - Debug.Log($"Command successful"); - - if (Application.isBatchMode) - { - Debug.Log(string.Join("\n", processResult.Output)); - } - break; - case -1073741510: - Debug.LogWarning("The build was terminated either by user's keyboard input CTRL+C or CTRL+Break or closing command prompt window."); - break; - default: - { - if (processResult.ExitCode != 0) - { - Debug.Log($"Command failed, errorCode: {processResult.ExitCode}"); - - if (Application.isBatchMode) - { - var output = "Command output:\n"; - - foreach (var message in processResult.Output) - { - output += $"{message}\n"; - } - - output += "Command errors:"; - - foreach (var error in processResult.Errors) - { - output += $"{error}\n"; - } - - Debug.LogError(output); - } - } - break; - } - } - return processResult.ExitCode; - } - - private static async Task FindMsBuildPathAsync() - { - // Finding msbuild.exe involves different work depending on whether or not users - // have VS2017 or VS2019 installed. - foreach (VSWhereFindOption findOption in VSWhereFindOptions) - { - string arguments = findOption.arguments; - if (string.IsNullOrWhiteSpace(EditorUserBuildSettings.wsaUWPVisualStudioVersion)) - { - arguments += " -latest"; - } - else - { - // Add version number with brackets to find only the specified version - arguments += $" -version [{EditorUserBuildSettings.wsaUWPVisualStudioVersion}]"; - } - - var result = await new Process().StartProcessAsync( - new ProcessStartInfo - { - FileName = "cmd.exe", - CreateNoWindow = true, - UseShellExecute = false, - RedirectStandardOutput = true, - RedirectStandardError = true, - Arguments = arguments, - WorkingDirectory = @"C:\Program Files (x86)\Microsoft Visual Studio\Installer" - }); - - foreach (var path in result.Output) - { - if (!string.IsNullOrEmpty(path)) - { - string[] paths = path.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); - - if (paths.Length > 0) - { - // if there are multiple visual studio installs, - // prefer enterprise, then pro, then community - string bestPath = paths.OrderByDescending(p => p.ToLower().Contains("enterprise")) - .ThenByDescending(p => p.ToLower().Contains("professional")) - .ThenByDescending(p => p.ToLower().Contains("community")).First(); - - string finalPath = $@"{bestPath}{findOption.pathSuffix}"; - if (File.Exists(finalPath)) - { - return finalPath; - } - } - } - } - } - - return string.Empty; - } - - private static bool UpdateVSProj(IBuildInfo buildInfo) - { - // For ARM64 builds we need to add ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch - // to vcxproj file in order to ensure that the build passes - string projectFilePath = GetProjectFilePath(buildInfo); - if (projectFilePath == null) - { - return false; - } - - var rootNode = XElement.Load(projectFilePath); - var defaultNamespace = rootNode.GetDefaultNamespace(); - var propertyGroupNode = rootNode.Element(defaultNamespace + "PropertyGroup"); - - if (propertyGroupNode == null) - { - propertyGroupNode = new XElement(defaultNamespace + "PropertyGroup", new XAttribute("Label", "Globals")); - rootNode.Add(propertyGroupNode); - } - - var newNode = propertyGroupNode.Element(defaultNamespace + "ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch"); - if (newNode != null) - { - // If this setting already exists in the project, ensure its value is "None" - newNode.Value = "None"; - } - else - { - propertyGroupNode.Add(new XElement(defaultNamespace + "ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch", "None")); - } - - rootNode.Save(projectFilePath); - - return true; - } - - /// - /// Given the project name and build path, resolves the valid VcProject file (i.e. .vcsproj, vcxproj) - /// - /// A valid path if the project file exists, null otherwise - private static string GetProjectFilePath(IBuildInfo buildInfo) - { - string projectName = PlayerSettings.productName; - foreach (string extension in VcProjExtensions) - { - string projectFilePath = Path.Combine(Path.GetFullPath(buildInfo.OutputDirectory), projectName, $"{projectName}.{extension}"); - if (File.Exists(projectFilePath)) - { - return projectFilePath; - } - } - - string projectDirectory = Path.Combine(Path.GetFullPath(buildInfo.OutputDirectory), projectName); - string combinedExtensions = String.Join("|", VcProjExtensions); - Debug.LogError($"Cannot find project file {projectDirectory} given names {projectName}.{combinedExtensions}"); - return null; - } - - private static bool UpdateAppxManifest(IBuildInfo buildInfo) - { - string manifestFilePath = GetManifestFilePath(buildInfo); - if (manifestFilePath == null) - { - // Error has already been logged - return false; - } - - var rootNode = XElement.Load(manifestFilePath); - var identityNode = rootNode.Element(rootNode.GetDefaultNamespace() + "Identity"); - - if (identityNode == null) - { - Debug.LogError($"Package.appxmanifest for build (in path - {manifestFilePath}) is missing an node"); - return false; - } - - var dependencies = rootNode.Element(rootNode.GetDefaultNamespace() + "Dependencies"); - - if (dependencies == null) - { - Debug.LogError($"Package.appxmanifest for build (in path - {manifestFilePath}) is missing node."); - return false; - } - - UpdateDependenciesElement(dependencies, rootNode.GetDefaultNamespace()); - AddCapabilities(buildInfo, rootNode); - - // We use XName.Get instead of string -> XName implicit conversion because - // when we pass in the string "Version", the program doesn't find the attribute. - // Best guess as to why this happens is that implicit string conversion doesn't set the namespace to empty - var versionAttr = identityNode.Attribute(XName.Get("Version")); - - if (versionAttr == null) - { - Debug.LogError($"Package.appxmanifest for build (in path - {manifestFilePath}) is missing a Version attribute in the node."); - return false; - } - - // Assume package version always has a '.' between each number. - // According to https://msdn.microsoft.com/library/windows/apps/br211441.aspx - // Package versions are always of the form Major.Minor.Build.Revision. - // Note: Revision number reserved for Windows Store, and a value other than 0 will fail WACK. - var version = PlayerSettings.WSA.packageVersion; - var newVersion = new Version(version.Major, version.Minor, buildInfo.AutoIncrement ? version.Build + 1 : version.Build, version.Revision); - - PlayerSettings.WSA.packageVersion = newVersion; - versionAttr.Value = newVersion.ToString(); - rootNode.Save(manifestFilePath); - return true; - } - - /// - /// Gets the AppX manifest path in the project output directory. - /// - private static string GetManifestFilePath(IBuildInfo buildInfo) - { - var fullPathOutputDirectory = Path.GetFullPath(buildInfo.OutputDirectory); - Debug.Log($"Searching for appx manifest in {fullPathOutputDirectory}..."); - - // Find the manifest, assume the one we want is the first one - string[] manifests = Directory.GetFiles(fullPathOutputDirectory, "Package.appxmanifest", SearchOption.AllDirectories); - - if (manifests.Length == 0) - { - Debug.LogError($"Unable to find Package.appxmanifest file for build (in path - {fullPathOutputDirectory})"); - return null; - } - - if (manifests.Length > 1) - { - Debug.LogWarning("Found more than one appxmanifest in the target build folder!"); - } - - return manifests[0]; - } - - /// - /// Updates 'Assembly-CSharp.csproj' file according to the values set in buildInfo. - /// - /// An IBuildInfo containing a valid OutputDirectory - /// Only used with the .NET backend in Unity 2018 or older, with Unity C# Projects enabled. - public static void UpdateAssemblyCSharpProject(IBuildInfo buildInfo) - { -#if !UNITY_2019_1_OR_NEWER - if (!EditorUserBuildSettings.wsaGenerateReferenceProjects || - PlayerSettings.GetScriptingBackend(BuildTargetGroup.WSA) != ScriptingImplementation.WinRTDotNET) - { - // Assembly-CSharp.csproj is only generated when the above is true - return; - } - - string projectFilePath = GetAssemblyCSharpProjectFilePath(buildInfo); - if (projectFilePath == null) - { - throw new FileNotFoundException("Unable to find 'Assembly-CSharp.csproj' file."); - } - - var rootElement = XElement.Load(projectFilePath); - var uwpBuildInfo = buildInfo as UwpBuildInfo; - Debug.Assert(uwpBuildInfo != null); - - if (uwpBuildInfo.AllowUnsafeCode) - { - AllowUnsafeCode(rootElement); - } - - rootElement.Save(projectFilePath); -#endif // !UNITY_2019_1_OR_NEWER - } - - /// - /// Gets the 'Assembly-CSharp.csproj' files path in the project output directory. - /// - private static string GetAssemblyCSharpProjectFilePath(IBuildInfo buildInfo) - { - var fullPathOutputDirectory = Path.GetFullPath(buildInfo.OutputDirectory); - Debug.Log($"Searching for 'Assembly-CSharp.csproj' in {fullPathOutputDirectory}..."); - - // Find the manifest, assume the one we want is the first one - string[] manifests = Directory.GetFiles(fullPathOutputDirectory, "Assembly-CSharp.csproj", SearchOption.AllDirectories); - - if (manifests.Length == 0) - { - Debug.LogError($"Unable to find 'Assembly-CSharp.csproj' file for build (in path - {fullPathOutputDirectory})"); - return null; - } - - if (manifests.Length > 1) - { - Debug.LogWarning("Found more than one 'Assembly-CSharp.csproj' in the target build folder!"); - } - - return manifests[0]; - } - - private static void UpdateDependenciesElement(XElement dependencies, XNamespace defaultNamespace) - { - var values = (PlayerSettings.WSATargetFamily[])Enum.GetValues(typeof(PlayerSettings.WSATargetFamily)); - - if (string.IsNullOrWhiteSpace(EditorUserBuildSettings.wsaUWPSDK)) - { - var windowsSdkPaths = Directory.GetDirectories(@"C:\Program Files (x86)\Windows Kits\10\Lib"); - - for (int i = 0; i < windowsSdkPaths.Length; i++) - { - windowsSdkPaths[i] = windowsSdkPaths[i].Substring(windowsSdkPaths[i].LastIndexOf(@"\", StringComparison.Ordinal) + 1); - } - - EditorUserBuildSettings.wsaUWPSDK = windowsSdkPaths[windowsSdkPaths.Length - 1]; - } - - string maxVersionTested = EditorUserBuildSettings.wsaUWPSDK; - - if (string.IsNullOrWhiteSpace(EditorUserBuildSettings.wsaMinUWPSDK)) - { - EditorUserBuildSettings.wsaMinUWPSDK = UwpBuildDeployPreferences.MIN_PLATFORM_VERSION.ToString(); - } - - string minVersion = EditorUserBuildSettings.wsaMinUWPSDK; - - // Clear any we had before. - dependencies.RemoveAll(); - - foreach (PlayerSettings.WSATargetFamily family in values) - { - if (PlayerSettings.WSA.GetTargetDeviceFamily(family)) - { - dependencies.Add( - new XElement(defaultNamespace + "TargetDeviceFamily", - new XAttribute("Name", $"Windows.{family}"), - new XAttribute("MinVersion", minVersion), - new XAttribute("MaxVersionTested", maxVersionTested))); - } - } - - if (!dependencies.HasElements) - { - dependencies.Add( - new XElement(defaultNamespace + "TargetDeviceFamily", - new XAttribute("Name", "Windows.Universal"), - new XAttribute("MinVersion", minVersion), - new XAttribute("MaxVersionTested", maxVersionTested))); - } - } - - /// Gets the subpart of the msbuild.exe command to save log information - /// in the given logFileName. - /// - /// - /// Will return an empty string if logDirectory is not set. - /// - private static string GetMSBuildLoggingCommand(string logDirectory, string logFileName) - { - if (String.IsNullOrEmpty(logDirectory)) - { - Debug.Log($"Not logging {logFileName} because no logDirectory was provided"); - return ""; - } - - return $"-fl -flp:logfile={Path.Combine(logDirectory, logFileName)};verbosity=detailed"; - } - - /// - /// Adds capabilities according to the values in the buildInfo to the manifest file. - /// - /// An IBuildInfo containing a valid OutputDirectory and all capabilities - public static void AddCapabilities(IBuildInfo buildInfo, XElement rootElement = null) - { - var manifestFilePath = GetManifestFilePath(buildInfo); - if (manifestFilePath == null) - { - throw new FileNotFoundException("Unable to find manifest file"); - } - - rootElement = rootElement ?? XElement.Load(manifestFilePath); - var uwpBuildInfo = buildInfo as UwpBuildInfo; - - Debug.Assert(uwpBuildInfo != null); - if (uwpBuildInfo.DeviceCapabilities != null) - { - AddCapabilities(rootElement, uwpBuildInfo.DeviceCapabilities); - } - if (uwpBuildInfo.GazeInputCapabilityEnabled) - { - AddGazeInputCapability(rootElement); - } - - if (uwpBuildInfo.ResearchModeCapabilityEnabled && EditorUserBuildSettings.wsaSubtarget == WSASubtarget.HoloLens) - { - AddResearchModeCapability(rootElement); - } - - rootElement.Save(manifestFilePath); - } - - /// - /// Adds a capability to the given rootNode, which must be the read AppX manifest from - /// the build output. - /// - /// An XElement containing the AppX manifest from - /// the build output - /// The added capabilities tag as XName - /// Value of the Name-XAttribute of the added capability - public static void AddCapability(XElement rootNode, XName capability, string value) - { - // If the capabilities container tag is missing, make sure it gets added. - var capabilitiesTag = rootNode.GetDefaultNamespace() + "Capabilities"; - XElement capabilitiesNode = rootNode.Element(capabilitiesTag); - if (capabilitiesNode == null) - { - capabilitiesNode = new XElement(capabilitiesTag); - rootNode.Add(capabilitiesNode); - } - - XElement existingCapability = capabilitiesNode.Elements(capability) - .FirstOrDefault(element => element.Attribute("Name")?.Value == value); - - // Only add the capability if it isn't there already. - if (existingCapability == null) - { - capabilitiesNode.Add( - new XElement(capability, new XAttribute("Name", value))); - } - } - - /// - /// Adds the 'Gaze Input' capability to the manifest. - /// - /// - /// This is a workaround for versions of Unity which don't have native support - /// for the 'Gaze Input' capability in its Player Settings preference location. - /// Note that this function is only public to poke a hole for testing - do not - /// take a dependency on this function. - /// - public static void AddGazeInputCapability(XElement rootNode) - { - AddCapability(rootNode, rootNode.GetDefaultNamespace() + "DeviceCapability", "gazeInput"); - } - - /// - /// Adds the given capabilities to the manifest. - /// - public static void AddCapabilities(XElement rootNode, List capabilities) - { - foreach (string capability in capabilities) - { - AddCapability(rootNode, rootNode.GetDefaultNamespace() + "DeviceCapability", capability); - } - } - - /// - /// Adds the 'Research Mode' capability to the manifest. - /// - /// - /// This is only for research projects and should not be used in production. - /// For further information take a look at https://docs.microsoft.com/windows/mixed-reality/research-mode. - /// Note that this function is only public to poke a hole for testing - do not - /// take a dependency on this function. - /// - public static void AddResearchModeCapability(XElement rootNode) - { - // Add rescap Namespace to package tag - XNamespace rescapNs = "http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"; - var rescapAttribute = rootNode.Attribute(XNamespace.Xmlns + "rescap"); - if (rescapAttribute == null) - { - rescapAttribute = new XAttribute(XNamespace.Xmlns + "rescap", rescapNs); - rootNode.Add(rescapAttribute); - } - - // Add rescap to IgnorableNamespaces - var ignNsAttribute = rootNode.Attribute("IgnorableNamespaces"); - if (ignNsAttribute == null) - { - ignNsAttribute = new XAttribute("IgnorableNamespaces", "rescap"); - rootNode.Add(ignNsAttribute); - } - - if (!ignNsAttribute.Value.Contains("rescap")) - { - ignNsAttribute.Value += " rescap"; - } - - AddCapability(rootNode, rescapNs + "Capability", "perceptionSensorsExperimental"); - } - - /// - /// Enables unsafe code in the generated Assembly-CSharp project. - /// - /// - /// This is not required by the research mode, but not using unsafe code with - /// direct memory access results in poor performance. So its kinda recommended - /// to use unsafe code. - /// For further information take a look at https://docs.microsoft.com/windows/mixed-reality/research-mode. - /// Note that this function is only public to poke a hole for testing - do not - /// take a dependency on this function. - /// - public static void AllowUnsafeCode(XElement rootNode) - { - foreach (XElement propertyGroupNode in rootNode.Descendants(rootNode.GetDefaultNamespace() + "PropertyGroup")) - { - if (propertyGroupNode.Attribute("Condition") != null) - { - var allowUnsafeBlocks = propertyGroupNode.Element(propertyGroupNode.GetDefaultNamespace() + "AllowUnsafeBlocks"); - if (allowUnsafeBlocks == null) - { - allowUnsafeBlocks = new XElement(propertyGroupNode.GetDefaultNamespace() + "AllowUnsafeBlocks"); - propertyGroupNode.Add(allowUnsafeBlocks); - } - allowUnsafeBlocks.Value = "true"; - } - } - } - - /// - /// This struct controls the behavior of the arguments that are used - /// when finding msbuild.exe. - /// - private struct VSWhereFindOption - { - public VSWhereFindOption(string args, string suffix) - { - arguments = args; - pathSuffix = suffix; - } - - /// - /// Used to populate the Arguments of ProcessStartInfo when invoking - /// vswhere. - /// - public string arguments; - - /// - /// This string is added as a suffix to the result of the vswhere path - /// search. - /// - public string pathSuffix; - } - - private static readonly VSWhereFindOption[] VSWhereFindOptions = - { - // This find option corresponds to the version of vswhere that ships with VS2019. - new VSWhereFindOption( - @"/C vswhere -all -products * -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe", - ""), - // This find option corresponds to the version of vswhere that ships with VS2017 - this doesn't have - // support for the -find command switch. - new VSWhereFindOption( - @"/C vswhere -all -products * -requires Microsoft.Component.MSBuild -property installationPath", - "\\MSBuild\\15.0\\Bin\\MSBuild.exe"), - }; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs.meta deleted file mode 100644 index e7a1d6576..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpAppxBuildTools.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 88b53ab37523412c965ea90f00f9bc7c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs deleted file mode 100644 index 06f8f871f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using Microsoft.MixedReality.Toolkit.WindowsDevicePortal; -using System; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - public static class UwpBuildDeployPreferences - { - /// - /// The minimum Windows SDK that must be present on the build machine in order - /// for a build to be successful. - /// - /// - /// This controls the version of the Windows SDK that is build against on the local - /// machine, NOT the version of the OS that must be present on the device that - /// the built application is deployed to (this other aspect is controlled by - /// MIN_PLATFORM_VERSION) - /// - public static Version MIN_SDK_VERSION = new Version("10.0.18362.0"); - - /// - /// The minimum version of the OS that must exist on the device that the application - /// is deployed to. - /// - /// - /// This is intentionally set to a very low version, so that the application can be - /// deployed to variety of different devices which may be on older OS versions. - /// - public static Version MIN_PLATFORM_VERSION = new Version("10.0.10240.0"); - - private const string EDITOR_PREF_BUILD_CONFIG = "BuildDeployWindow_BuildConfig"; - private const string EDITOR_PREF_PLATFORM_TOOLSET = "BuildDeployWindow_PlatformToolset"; - private const string EDITOR_PREF_FORCE_REBUILD = "BuildDeployWindow_ForceRebuild"; - private const string EDITOR_PREF_CONNECT_INFOS = "BuildDeployWindow_DeviceConnections"; - private const string EDITOR_PREF_LOCAL_CONNECT_INFO = "BuildDeployWindow_LocalConnection"; - private const string EDITOR_PREF_FULL_REINSTALL = "BuildDeployWindow_FullReinstall"; - private const string EDITOR_PREF_USE_SSL = "BuildDeployWindow_UseSSL"; - private const string EDITOR_PREF_VERIFY_SSL = "BuildDeployWindow_VerifySSL"; - private const string EDITOR_PREF_PROCESS_ALL = "BuildDeployWindow_ProcessAll"; - private const string EDITOR_PREF_GAZE_INPUT_CAPABILITY_ENABLED = "BuildDeployWindow_GazeInputCapabilityEnabled"; - private const string EDITOR_PREF_MULTICORE_APPX_BUILD_ENABLED = "BuildDeployWindow_MulticoreAppxBuildEnabled"; - private const string EDITOR_PREF_RESEARCH_MODE_CAPABILITY_ENABLED = "BuildDeployWindow_ResearchModeCapabilityEnabled"; - private const string EDITOR_PREF_ALLOW_UNSAFE_CODE = "BuildDeployWindow_AllowUnsafeCode"; - - /// - /// The current Build Configuration. (Debug, Release, or Master) - /// - public static string BuildConfig - { - get => EditorPreferences.Get(EDITOR_PREF_BUILD_CONFIG, "master"); - set => EditorPreferences.Set(EDITOR_PREF_BUILD_CONFIG, value.ToLower()); - } - - /// - /// Gets the build configuration type as a WSABuildType enum - /// - public static WSABuildType BuildConfigType - { - get - { - string curBuildConfigString = BuildConfig; - if (curBuildConfigString.Equals("master", StringComparison.OrdinalIgnoreCase)) - { - return WSABuildType.Master; - } - else if (curBuildConfigString.Equals("release", StringComparison.OrdinalIgnoreCase)) - { - return WSABuildType.Release; - } - else - { - return WSABuildType.Debug; - } - } - } - - /// - /// The current Platform Toolset. (Solution, v141, or v142) - /// - public static string PlatformToolset - { - get => EditorPreferences.Get(EDITOR_PREF_PLATFORM_TOOLSET, string.Empty); - set => EditorPreferences.Set(EDITOR_PREF_PLATFORM_TOOLSET, value.ToLower()); - } - - /// - /// Current setting to force rebuilding the appx. - /// - public static bool ForceRebuild - { - get => EditorPreferences.Get(EDITOR_PREF_FORCE_REBUILD, false); - set => EditorPreferences.Set(EDITOR_PREF_FORCE_REBUILD, value); - } - - /// - /// Current setting to fully uninstall and reinstall the appx. - /// - public static bool FullReinstall - { - get => EditorPreferences.Get(EDITOR_PREF_FULL_REINSTALL, true); - set => EditorPreferences.Set(EDITOR_PREF_FULL_REINSTALL, value); - } - - /// - /// The current device portal connections. - /// - public static string DevicePortalConnections - { - get => EditorPreferences.Get( - EDITOR_PREF_CONNECT_INFOS, - JsonUtility.ToJson( - new DevicePortalConnections( - new DeviceInfo(DeviceInfo.LocalIPAddress, string.Empty, string.Empty, DeviceInfo.LocalMachine)))); - set => EditorPreferences.Set(EDITOR_PREF_CONNECT_INFOS, value); - } - - /// - /// The current device portal connections. - /// - public static string LocalConnectionInfo - { - get => EditorPreferences.Get( - EDITOR_PREF_LOCAL_CONNECT_INFO, - JsonUtility.ToJson(new DeviceInfo(DeviceInfo.LocalIPAddress, string.Empty, string.Empty, DeviceInfo.LocalMachine))); - set => EditorPreferences.Set(EDITOR_PREF_LOCAL_CONNECT_INFO, value); - } - - /// - /// Current setting to use Single Socket Layer connections to the device portal. - /// - public static bool UseSSL - { - get => EditorPreferences.Get(EDITOR_PREF_USE_SSL, false); - set => EditorPreferences.Set(EDITOR_PREF_USE_SSL, value); - } - - /// - /// Current setting to verify SSL certificates for connections to the device portal. - /// - public static bool VerifySSL - { - get => EditorPreferences.Get(EDITOR_PREF_VERIFY_SSL, true); - set => EditorPreferences.Set(EDITOR_PREF_VERIFY_SSL, value); - } - - /// - /// Current setting to target all the devices registered to the build window. - /// - public static bool TargetAllConnections - { - get => EditorPreferences.Get(EDITOR_PREF_PROCESS_ALL, false); - set => EditorPreferences.Set(EDITOR_PREF_PROCESS_ALL, value); - } - - /// - /// If true, the 'Gaze Input' capability will be added to the AppX manifest - /// after the Unity build. - /// - public static bool GazeInputCapabilityEnabled - { - get => EditorPreferences.Get(EDITOR_PREF_GAZE_INPUT_CAPABILITY_ENABLED, false); - set => EditorPreferences.Set(EDITOR_PREF_GAZE_INPUT_CAPABILITY_ENABLED, value); - } - - /// - /// If true, the appx will be built with multicore support enabled in the - /// MSBuild process. - /// - public static bool MulticoreAppxBuildEnabled - { - get => EditorPreferences.Get(EDITOR_PREF_MULTICORE_APPX_BUILD_ENABLED, false); - set => EditorPreferences.Set(EDITOR_PREF_MULTICORE_APPX_BUILD_ENABLED, value); - } - - /// - /// Current setting to modify 'Package.appxmanifest' file for sensor access. - /// - public static bool ResearchModeCapabilityEnabled - { - get => EditorPreferences.Get(EDITOR_PREF_RESEARCH_MODE_CAPABILITY_ENABLED, false); - set => EditorPreferences.Set(EDITOR_PREF_RESEARCH_MODE_CAPABILITY_ENABLED, value); - } - - /// - /// Current setting to modify 'Assembly-CSharp.csproj' file to allow unsafe code. - /// - public static bool AllowUnsafeCode - { - get => EditorPreferences.Get(EDITOR_PREF_ALLOW_UNSAFE_CODE, false); - set => EditorPreferences.Set(EDITOR_PREF_ALLOW_UNSAFE_CODE, value); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs.meta deleted file mode 100644 index 40d9c962f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildDeployPreferences.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b78118db070740a0bda430f26b276383 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs deleted file mode 100644 index bb02789d4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - public class UwpBuildInfo : BuildInfo - { - public UwpBuildInfo(bool isCommandLine = false) : base(isCommandLine) - { - } - - /// - public override BuildTarget BuildTarget => BuildTarget.WSAPlayer; - - /// - /// Build the appx bundle after building Unity Player? - /// - public bool BuildAppx { get; set; } = false; - - /// - /// Force rebuilding the appx bundle? - /// - public bool RebuildAppx { get; set; } = false; - - /// - /// VC Platform Toolset used building the appx bundle - /// - public string PlatformToolset { get; set; } - - /// - /// If true, the 'Gaze Input' capability will be added to the AppX - /// manifest after the Unity build. - /// - public bool GazeInputCapabilityEnabled { get; set; } = false; - - /// - /// Use multiple cores for building the appx bundle? - /// - public bool Multicore { get; set; } = false; - - /// - /// If true, the 'Research Mode' capability will be added to the AppX - /// manifest after the Unity build. - /// - public bool ResearchModeCapabilityEnabled { get; set; } = false; - - /// - /// If true, unsafe code will be allowed in the generated - /// Assembly-CSharp project. - /// - public bool AllowUnsafeCode { get; set; } = false; - - /// - /// When present, adds a DeviceCapability for each entry - /// in the list to the manifest - /// - public List DeviceCapabilities { get; set; } = null; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs.meta deleted file mode 100644 index 8a3a57d30..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpBuildInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3912079af314440497034e6603893b2b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs deleted file mode 100644 index d27153552..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using UnityEditor; -using UnityEditor.Build.Reporting; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Build.Editor -{ - /// - /// Class containing various utility methods to build a WSA solution from a Unity project. - /// - public static class UwpPlayerBuildTools - { - private static void ParseBuildCommandLine(ref UwpBuildInfo buildInfo) - { - IBuildInfo iBuildInfo = buildInfo; - UnityPlayerBuildTools.ParseBuildCommandLine(ref iBuildInfo); - - string[] arguments = Environment.GetCommandLineArgs(); - - for (int i = 0; i < arguments.Length; ++i) - { - switch (arguments[i]) - { - case "-buildAppx": - buildInfo.BuildAppx = true; - break; - case "-rebuildAppx": - buildInfo.RebuildAppx = true; - break; - case "-targetUwpSdk": - // Note: the min sdk target cannot be changed. - EditorUserBuildSettings.wsaUWPSDK = arguments[++i]; - break; - } - } - } - - /// - /// Do a build configured for UWP Applications to the specified path, returns the error from - /// - /// Should the user be prompted to build the appx as well? - /// True, if build was successful. - public static async Task BuildPlayer(string buildDirectory, bool showDialog = true, CancellationToken cancellationToken = default) - { - if (UnityPlayerBuildTools.CheckBuildScenes() == false) - { - return false; - } - - var buildInfo = new UwpBuildInfo - { - OutputDirectory = buildDirectory, - Scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled && !string.IsNullOrEmpty(scene.path)).Select(scene => scene.path), - BuildAppx = !showDialog, - GazeInputCapabilityEnabled = UwpBuildDeployPreferences.GazeInputCapabilityEnabled, - - // Configure Appx build preferences for post build action - RebuildAppx = UwpBuildDeployPreferences.ForceRebuild, - Configuration = UwpBuildDeployPreferences.BuildConfig, - BuildPlatform = EditorUserBuildSettings.wsaArchitecture, - PlatformToolset = UwpBuildDeployPreferences.PlatformToolset, - AutoIncrement = BuildDeployPreferences.IncrementBuildVersion, - Multicore = UwpBuildDeployPreferences.MulticoreAppxBuildEnabled, - ResearchModeCapabilityEnabled = UwpBuildDeployPreferences.ResearchModeCapabilityEnabled, - AllowUnsafeCode = UwpBuildDeployPreferences.AllowUnsafeCode, - - // Configure a post build action that will compile the generated solution - PostBuildAction = PostBuildAction - }; - - async void PostBuildAction(IBuildInfo innerBuildInfo, BuildReport buildReport) - { - if (buildReport.summary.result != BuildResult.Succeeded) - { - EditorUtility.DisplayDialog($"{PlayerSettings.productName} WindowsStoreApp Build {buildReport.summary.result}!", "See console for details", "OK"); - } - else - { - var uwpBuildInfo = innerBuildInfo as UwpBuildInfo; - Debug.Assert(uwpBuildInfo != null); - UwpAppxBuildTools.AddCapabilities(uwpBuildInfo); - UwpAppxBuildTools.UpdateAssemblyCSharpProject(uwpBuildInfo); - - if (showDialog && - !EditorUtility.DisplayDialog(PlayerSettings.productName, "Build Complete", "OK", "Build AppX")) - { - EditorAssemblyReloadManager.LockReloadAssemblies = true; - await UwpAppxBuildTools.BuildAppxAsync(uwpBuildInfo, cancellationToken); - EditorAssemblyReloadManager.LockReloadAssemblies = false; - } - } - } - - return await BuildPlayer(buildInfo, cancellationToken); - } - - /// - /// Build the Uwp Player. - /// - public static async Task BuildPlayer(UwpBuildInfo buildInfo, CancellationToken cancellationToken = default) - { - #region Gather Build Data - - if (buildInfo.IsCommandLine) - { - ParseBuildCommandLine(ref buildInfo); - } - - #endregion Gather Build Data - - BuildReport buildReport = UnityPlayerBuildTools.BuildUnityPlayer(buildInfo); - - bool success = buildReport != null && buildReport.summary.result == BuildResult.Succeeded; - - if (success && buildInfo.BuildAppx) - { - success &= await UwpAppxBuildTools.BuildAppxAsync(buildInfo, cancellationToken); - } - - return success; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs.meta deleted file mode 100644 index a7cd748c2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/BuildAndDeploy/UwpPlayerBuildTools.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bc819e3815004af2918d6e0c4c4dbb32 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs b/AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs deleted file mode 100644 index b593da301..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The purpose of this class is to provide a cached reference to the main camera. Calling Camera.main - /// executes a FindByTag on the scene, which will get worse and worse with more tagged objects. - /// - public static class CameraCache - { - private static Camera cachedCamera; - - /// - /// Returns a cached reference to the main camera and uses Camera.main if it hasn't been cached yet. - /// - public static Camera Main - { - get - { - if (cachedCamera != null) - { - if (cachedCamera.gameObject.activeInHierarchy) - { // If the cached camera is active, return it - // Otherwise, our playspace may have been disabled - // We'll have to search for the next available - return cachedCamera; - } - } - - // If the cached camera is null, search for main - var mainCamera = Camera.main; - - if (mainCamera == null) - { - Debug.Log("No main camera found. Searching for cameras in the scene."); - - // If no main camera was found, try to determine one. - Camera[] cameras = GameObject.FindObjectsOfType(); - if (cameras.Length == 0) - { - Debug.LogWarning("No cameras found. Creating a \"MainCamera\"."); - mainCamera = new GameObject("Main Camera", typeof(Camera), typeof(AudioListener)) { tag = "MainCamera" }.GetComponent(); - } - else - { - Debug.LogWarning("The Mixed Reality Toolkit requires one camera in the scene to be tagged as \"MainCamera\". Please ensure the application's main camera is tagged."); - } - } - - // Cache the main camera - cachedCamera = mainCamera; - - return cachedCamera; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs.meta deleted file mode 100644 index 855e46cb0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CameraCache.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a6effab0e04e44b48e2c21f244e8eaeb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs b/AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs deleted file mode 100644 index 985e6b934..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// A helper class to provide hooks into the Unity camera exclusive Lifecycle events - /// - [AddComponentMenu("Scripts/MRTK/Core/CameraEventRouter")] - public class CameraEventRouter : MonoBehaviour - { - /// - /// A callback to act upon MonoBehaviour.OnPreRender() without a script needing to exist on a Camera component - /// - public event Action OnCameraPreRender; - - private void OnPreRender() - { - OnCameraPreRender?.Invoke(this); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs.meta deleted file mode 100644 index bdf8516e1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CameraEventRouter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8b9c599bb8dcccf448a8788e94533644 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs b/AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs deleted file mode 100644 index 2c60a4d0d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Profiling; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Camera extension methods to test if colliders are within camera's FOV. Uses - /// caching to improve performance and ensure values are only computed once per frame - /// - public static class CameraFOVChecker - { - - // Help to clear caches when new frame runs - static private int inFOVLastCalculatedFrame = -1; - // Map from grabbable => is the grabbable in FOV for this frame. Cleared every frame - private static Dictionary, bool> inFOVColliderCache = new Dictionary, bool>(); - // List of corners shared across all sphere pointer query instances -- - // used to store list of corners for a bounds. Shared and static - // to avoid allocating memory each frame - private static List inFOVBoundsCornerPoints = new List(); - - /// - /// Returns true if a collider's bounds is within the camera FOV. - /// Utilizes a cache to test if this collider has been seen before and returns current frame's calculated result. - /// NOTE: This is a 'loose' FOV check -- it can return true in cases when the collider is actually not in the FOV - /// because it does an axis-aligned check when testing for large colliders. So, if the axis aligned bounds are in the bounds of the camera, it will return true. - /// - /// The collider to test - public static bool IsInFOVCached(this Camera cam, Collider myCollider) - { - // if the collider's size is zero, it is not visible. Return false. - if (myCollider.bounds.size == Vector3.zero || myCollider.transform.localScale == Vector3.zero) - { - return false; - } - - Tuple cameraColliderPair = new Tuple(myCollider, cam); - bool result = false; - if (inFOVLastCalculatedFrame != Time.frameCount) - { - inFOVColliderCache.Clear(); - inFOVLastCalculatedFrame = Time.frameCount; - } - else if (inFOVColliderCache.TryGetValue(cameraColliderPair, out result)) - { - return result; - } - - inFOVBoundsCornerPoints.Clear(); - BoundsExtensions.GetColliderBoundsPoints(myCollider, inFOVBoundsCornerPoints, 0); - - - float xMin = float.MaxValue, yMin = float.MaxValue, zMin = float.MaxValue; - float xMax = float.MinValue, yMax = float.MinValue, zMax = float.MinValue; - for (int i = 0; i < inFOVBoundsCornerPoints.Count; i++) - { - var corner = inFOVBoundsCornerPoints[i]; - Vector3 screenPoint = cam.WorldToViewportPoint(corner); - - bool isInFOV = screenPoint.z >= 0 && screenPoint.z <= cam.farClipPlane - && screenPoint.x >= 0 && screenPoint.x <= 1 - && screenPoint.y >= 0 && screenPoint.y <= 1; - - if (isInFOV) - { - inFOVColliderCache.Add(cameraColliderPair, true); - return true; - } - - // if the point is behind the camera, the x and y viewport positions are negated - var zViewport = screenPoint.z; - var xViewport = zViewport >= 0 ? screenPoint.x : -screenPoint.x; - var yViewport = zViewport >= 0 ? screenPoint.y : -screenPoint.y; - xMin = Mathf.Min(xMin, xViewport); - yMin = Mathf.Min(yMin, yViewport); - zMin = Mathf.Min(zMin, zViewport); - xMax = Mathf.Max(xMax, xViewport); - yMax = Mathf.Max(yMax, yViewport); - zMax = Mathf.Max(zMax, zViewport); - } - - // Check that collider is visible even if all corners are not visible - // such as when having a large collider - result = - zMax > 0 // Front of collider is in front of the camera. - && zMin < cam.farClipPlane // Back of collider is not too far away. - && xMin < 1 // Left edge is not too far to the right. - && xMax > 0 // Right edge is not too far to the left. - && yMin < 1 // Bottom edge is not too high. - && yMax > 0; // Top edge is not too low. - - inFOVColliderCache.Add(cameraColliderPair, result); - - return result; - } - - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs.meta deleted file mode 100644 index b54a54237..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CameraFOVChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a8c59951099e9354cb33118b9183713a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs b/AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs deleted file mode 100644 index ac497f66e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Boundary; -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Diagnostics; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.SceneSystem; -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Teleport; -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Utility class to easily access references to core runtime Mixed Reality Toolkit Services - /// If deallocating and re-allocating a new system at runtime, ResetCacheReferences() should be used to get a proper reference - /// - public static class CoreServices - { - /// - /// Cached reference to the active instance of the boundary system. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealityBoundarySystem BoundarySystem => GetService(); - - /// - /// Cached reference to the active instance of the camera system. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealityCameraSystem CameraSystem => GetService(); - - /// - /// Cached reference to the active instance of the diagnostics system. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealityDiagnosticsSystem DiagnosticsSystem => GetService(); - - /// - /// Cached reference to the active instance of the focus provider. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealityFocusProvider FocusProvider => GetService(); - - /// - /// Cached reference to the active instance of the input system. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealityInputSystem InputSystem => GetService(); - - /// - /// Cached reference to the active instance of the raycast provider. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealityRaycastProvider RaycastProvider => GetService(); - - /// - /// Cached reference to the active instance of the scene system. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealitySceneSystem SceneSystem => GetService(); - - /// - /// Cached reference to the active instance of the spatial awareness system. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealitySpatialAwarenessSystem SpatialAwarenessSystem => GetService(); - - /// - /// Cached reference to the active instance of the teleport system. - /// If system is destroyed, reference will be invalid. Please use ResetCacheReferences() - /// - public static IMixedRealityTeleportSystem TeleportSystem => GetService(); - - /// - /// Resets all cached system references to null - /// - public static void ResetCacheReferences() => serviceCache.Clear(); - - /// - /// Clears the cache of the reference with key of given type if present and applicable - /// - /// interface of service to key against. Must be of type IMixedRealityService - /// true if successfully cleared, false otherwise - public static bool ResetCacheReference(Type serviceType) - { - if (typeof(IMixedRealityService).IsAssignableFrom(serviceType)) - { - if (serviceCache.ContainsKey(serviceType)) - { - serviceCache.Remove(serviceType); - return true; - } - } - else - { - Debug.Log("Cache only contains types that implement IMixedRealityService"); - } - - return false; - } - - /// - /// Gets first matching or extension thereof for CoreServices.InputSystem - /// - public static T GetInputSystemDataProvider() where T : IMixedRealityInputDeviceManager - { - return GetDataProvider(InputSystem); - } - - /// - /// Gets first matching or extension thereof for CoreServices.SpatialAwarenessSystem - /// - public static T GetSpatialAwarenessSystemDataProvider() where T : IMixedRealitySpatialAwarenessObserver - { - return GetDataProvider(SpatialAwarenessSystem); - } - - /// - /// Gets first matching data provider of provided type T registered to the provided mixed reality service. - /// - /// Type of data provider to return. Must implement and/or extend from - /// This function will attempt to get first available data provider registered to this service. - /// - /// Service parameter is expected to implement . If not, then will return default(T) - /// - public static T GetDataProvider(IMixedRealityService service) where T : IMixedRealityDataProvider - { - var dataProviderAccess = service as IMixedRealityDataProviderAccess; - if (dataProviderAccess != null) - { - return dataProviderAccess.GetDataProvider(); - } - - return default(T); - } - - // We do not want to keep a service around so use WeakReference - private static readonly Dictionary> serviceCache = new Dictionary>(); - - private static T GetService() where T : IMixedRealityService - { - Type serviceType = typeof(T); - - // See if we already have a WeakReference entry for this service type - if (serviceCache.TryGetValue(serviceType, out WeakReference weakService)) - { - IMixedRealityService svc; - // If our reference object is still alive, return it - if (weakService.TryGetTarget(out svc)) - { - return (T)svc; - } - - // Our reference object has been collected by the GC. Try to get the latest service if available - serviceCache.Remove(serviceType); - } - - // This is the first request for the given service type. See if it is available and if so, add entry - T service; - if (!MixedRealityServiceRegistry.TryGetService(out service)) - { - return default(T); - } - - serviceCache.Add(serviceType, new WeakReference(service, false)); - return service; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs.meta deleted file mode 100644 index 5c3080c49..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/CoreServices.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b99f4d122e26e14448c49486cf96793f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs deleted file mode 100644 index 53062820f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs +++ /dev/null @@ -1,202 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public static class DebugUtilities - { - /// - /// An enum describing the level of logs that DebugUtilities will emit to the - /// Unity player log. - /// - /// - /// Note that the order of enums below is important, since when the log level is - /// set to any of the options below, all of the other log levels greater than it in - /// value will also be enabled. For example, setting LogLevel to Warn will show both - /// warnings and errors. The only exception for this is "None", which, when set, will - /// not show any logs. - /// - public enum LoggingLevel - { - Verbose, - Information, - Warn, - Error, - None, - } - - /// - /// This helper defaults to showing all messages of information and above (i.e. including warnings and errors) - /// - public static LoggingLevel LogLevel = LoggingLevel.Information; - - /// - /// Asserts a condition. - /// - /// The condition that is expected to be true. - /// The message to display if the condition evaluates to false. - public static void DebugAssert(bool condition, string message) - { - Debug.Assert(condition, message); - } - - /// - /// Asserts a condition. - /// - /// The condition that is expected to be true. - public static void DebugAssert(bool condition) - { - DebugAssert(condition, string.Empty); - } - - /// - /// Logs an error message. - /// - /// The message to log. - [Obsolete("Deprecated. Use LogError instead.")] - public static void DebugLogError(string message) - { - LogError(message); - } - - /// - /// Logs a warning message. - /// - /// The message to log. - [Obsolete("Deprecated. Use LogWarning instead.")] - public static void DebugLogWarning(string message) - { - LogWarning(message); - } - - /// - /// Logs a message. - /// - /// The message to log. - [Obsolete("Deprecated. Use Log instead.")] - public static void DebugLog(string message) - { - Log(message); - } - - /// - /// Logs an error message. - /// - /// The message to log. - public static void LogError(string message) - { - if (LogLevel <= LoggingLevel.Error) - { - Debug.LogError(message); - } - } - - /// - /// Logs a warning message. - /// - /// The message to log. - public static void LogWarning(string message) - { - if (LogLevel <= LoggingLevel.Warn) - { - Debug.LogWarning(message); - } - } - - /// - /// Logs a message at the informational level. - /// - /// The message to log. - public static void Log(string message) - { - // Note that the naming of this function (DebugUtilities.Log instead of DebugUtilities.LogInfo) - // is to ensure consistency with the naming of Unity's Debug.Log function. - if (LogLevel <= LoggingLevel.Information) - { - Debug.Log(message); - } - } - - /// - /// Logs the given message to the Unity console and player log if verbose logging is enabled. - /// - /// - /// If you are doing string concatentation or manipulation, use LogVerboseFormat - /// that formats the string, as that will not allocate memory when verbose logging is enabled. - /// - /// For example, don't do: - /// Debug.LogVerbose("This is my message: " + text); - /// - /// Do: - /// Debug.LogVerbose("This is my message: {0}", text); - /// - /// Note that verbose logs do not include the callstack to reduce the noise in the generated - /// editor log. Even with default stack trace parameter (StackTraceLogType.ScriptOnly), - /// the editor logs will grow significantly (i.e. a 10x+ line growth factor). - /// - public static void LogVerbose(string message) - { - if (LogLevel <= LoggingLevel.Verbose) - { - // Save/restore the previous stack trace configuration, rather than assuming that - // it's the default (StackTraceLogType.ScriptOnly) - StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(LogType.Log); - Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); - Debug.Log(message); - Application.SetStackTraceLogType(LogType.Log, stackTraceLogType); - } - } - - /// - /// Formats and logs the given message to the Unity console and player log if verbose logging is enabled. - /// Note that verbose logs do not include the callstack - /// - public static void LogVerboseFormat(string message, params object[] args) - { - if (LogLevel <= LoggingLevel.Verbose) - { - // Save/restore the previous stack trace configuration, rather than assuming that - // it's the default (StackTraceLogType.ScriptOnly) - StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(LogType.Log); - Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); - Debug.LogFormat(message, args); - Application.SetStackTraceLogType(LogType.Log, stackTraceLogType); - } - } - - /// - /// Draws a point in the Scene window. - /// - public static void DrawPoint(Vector3 point, Color color, float size = 0.05f) - { - DrawPoint(point, Quaternion.identity, color, size); - } - - /// - /// Draws a point with a rotation in the Scene window. - /// - public static void DrawPoint(Vector3 point, Quaternion rotation, Color color, float size = 0.05f) - { - Vector3[] axes = { rotation * Vector3.up, rotation * Vector3.right, rotation * Vector3.forward }; - - for (int i = 0; i < axes.Length; ++i) - { - Vector3 a = point + size * axes[i]; - Vector3 b = point - size * axes[i]; - Debug.DrawLine(a, b, color); - } - } - - /// - /// Draws the minimum and maximum points of the given bounds - /// - public static void DrawBounds(Bounds bounds, Color minColor, Color maxColor) - { - DrawPoint(bounds.min, minColor); - DrawPoint(bounds.max, maxColor); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs.meta deleted file mode 100644 index cfdcf1b6c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/DebugUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 83638bc8084240b99925d93bc9033ad7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs deleted file mode 100644 index 7f37fbd6e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if !UNITY_2020_1_OR_NEWER -using UnityEngine.XR; -#endif // UNITY_2019_3_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Helps with getting data from or about the current HMD or other XR device. - /// - public static class DeviceUtility - { - /// - /// If an HMD is present and running. - /// - public static bool IsPresent - { - get - { -#if UNITY_2019_3_OR_NEWER - if (XRSubsystemHelpers.DisplaySubsystem != null) - { - return true; - } -#endif // UNITY_2019_3_OR_NEWER - -#if UNITY_2020_1_OR_NEWER - return false; -#else - return XRDevice.isPresent; -#endif // UNITY_2020_1_OR_NEWER - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs.meta deleted file mode 100644 index 740b16984..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/DeviceUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ef69526e250d5f54ebaf4b703b6602bb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs deleted file mode 100644 index 3053a6aff..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Boundary; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// The EdgeUtilities class provides functionality for working with objects. - /// - public static class EdgeUtilities - { - /// - /// A value that should be larger than the maximum boundary width. - /// - /// - /// This value is used to ensure that line segments are created - /// that will intersect with a piece of the room boundary. - /// - internal static readonly float maxWidth = 10000f; - - /// - /// A value representing an invalid point. - /// - public static readonly Vector2 InvalidPoint = new Vector2(float.NegativeInfinity, float.NegativeInfinity); - - /// - /// Determines if the specified point is within the provided geometry. - /// - /// The geometry for which we are checking the point. - /// The point being checked. - /// - /// True if the point falls within the geometry, false otherwise. - /// - public static bool IsInsideBoundary(Edge[] geometryEdges, Vector2 point) - { - if (geometryEdges.Length == 0) - { - return false; - } - - // Check if a ray to the right (X+) intersects with an - // odd number of edges (inside) or an even number of edges (outside) - var rightEdge = new Edge(point, new Vector2(maxWidth, point.y)); - - int intersections = 0; - for (int i = 0; i < geometryEdges.Length; i++) - { - if (IsValidPoint(GetIntersectionPoint(geometryEdges[i], rightEdge))) - { - ++intersections; - } - } - - return (intersections & 1) == 1; - } - - /// - /// Checks to see if a point is valid. - /// - /// The point to check. - /// True if the point is valid, false otherwise. - /// - /// A point is considered invalid if any one of its coordinate values are infinite or not a number. - /// - public static bool IsValidPoint(Vector2 point) - { - return (!float.IsInfinity(point.x) && !float.IsInfinity(point.y) && - !float.IsNaN(point.x) && !float.IsNaN(point.y)); - } - - /// - /// Value calculated by GetIntersectionPoint() - /// - /// - /// This is to save multiple allocations when GetIntersectionPoint is called repeatedly. - /// - private static Vector2 intersectionPoint = Vector2.zero; - - /// - /// Returns the point at which two values intersect. - /// - /// The first edge - /// The second edge - /// - /// A Vector2 representing the point at which the two edges intersect, InscribedRectangleDescription.InvalidPoint otherwise. - /// - public static Vector2 GetIntersectionPoint(Edge edgeA, Edge edgeB) - { - float sA_x = edgeA.PointB.x - edgeA.PointA.x; - float sA_y = edgeA.PointB.y - edgeA.PointA.y; - float sB_x = edgeB.PointB.x - edgeB.PointA.x; - float sB_y = edgeB.PointB.y - edgeB.PointA.y; - - float s = (-sA_y * (edgeA.PointA.x - edgeB.PointA.x) + sA_x * (edgeA.PointA.y - edgeB.PointA.y)) / (-sB_x * sA_y + sA_x * sB_y); - float t = (sB_x * (edgeA.PointA.y - edgeB.PointA.y) - sB_y * (edgeA.PointA.x - edgeB.PointA.x)) / (-sB_x * sA_y + sA_x * sB_y); - - if ((s >= 0) && (s <= 1) && (t >= 0) && (t <= 1)) - { - // Collision detected - intersectionPoint.x = edgeA.PointA.x + (t * sA_x); - intersectionPoint.y = edgeA.PointA.y + (t * sA_y); - return intersectionPoint; - } - - return InvalidPoint; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs.meta deleted file mode 100644 index ea2b1858f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/EdgeUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 18c146ea6ea840e69891bf6c25860e4e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor.meta deleted file mode 100644 index 544e738d9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c93f7c40bf8e4497936a9f74bb4a47d7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs deleted file mode 100644 index 3d42b6dd9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs +++ /dev/null @@ -1,293 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A class that represents a Unity assembly definition (asmdef) file. - /// - [Serializable] - public class AssemblyDefinition - { - /// - /// Creates a new, empty assembly definition. - /// - public AssemblyDefinition() { } - - [SerializeField] - private string name = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public string Name - { - get => name; - set => name = value; - } - - [SerializeField] - private string[] references = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public string[] References - { - get => references; - set => references = value; - } - -#if !UNITY_2019_3_OR_NEWER - [SerializeField] - private string[] optionalUnityReferences = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public string[] OptionalUnityReferences - { - get => optionalUnityReferences; - set => optionalUnityReferences = value; - } -#endif // !UNITY_2019_3_OR_NEWER - - [SerializeField] - private string[] includePlatforms = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public string[] IncludePlatforms - { - get => includePlatforms; - set => includePlatforms = value; - } - - [SerializeField] - private string[] excludePlatforms = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public string[] ExcludePlatforms - { - get => excludePlatforms; - set => excludePlatforms = value; - } - - [SerializeField] - private bool allowUnsafeCode = false; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public bool AllowUnsafeCode - { - get => allowUnsafeCode; - set => allowUnsafeCode = value; - } - - [SerializeField] - private bool overrideReferences = false; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public bool OverrideReferences - { - get => overrideReferences; - set => overrideReferences = value; - } - - [SerializeField] - private string[] precompiledReferences = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public string[] PrecompiledReferences - { - get => precompiledReferences; - set => precompiledReferences = value; - } - - [SerializeField] - private bool autoReferenced = true; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public bool AutoReferenced - { - get => autoReferenced; - set => autoReferenced = value; - } - - [SerializeField] - private string[] defineConstraints = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public string[] DefineConstraints - { - get => defineConstraints; - set => defineConstraints = value; - } - -#if UNITY_2019_3_OR_NEWER - [SerializeField] - private VersionDefine[] versionDefines = null; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public VersionDefine[] VersionDefines - { - get => versionDefines; - set => versionDefines = value; - } - - [SerializeField] - private bool noEngineReferences = false; - - /// - /// Please see Assembly Definition properties on the Unity documentation site. - /// - public bool NoEngineReferences - { - get => noEngineReferences; - set => noEngineReferences = value; - } -#endif // UNITY_2019_3_OR_NEWER - - /// - /// Loads an existing assembly definition file. - /// - /// The file to be loaded. - /// The assembly definition that has been loaded, or null. - public static AssemblyDefinition Load(string fileName) - { - if (string.IsNullOrWhiteSpace(fileName)) - { - Debug.LogError("An assembly definition file name must be specified."); - return null; - } - - FileInfo file = new FileInfo(fileName); - if (!file.Exists) - { - Debug.LogError($"The {fileName} file could not be found."); - return null; - } - - return JsonUtility.FromJson(File.ReadAllText(file.FullName)); - } - - /// - /// Saves an assembly definition file. - /// - /// The name by which to save the assembly definition file. - /// - /// If the specified file exists, it will be overwritten. - /// - public void Save(string fileName) - { - if (string.IsNullOrWhiteSpace(fileName)) - { - Debug.LogError("A name for the assembly definition file must be specified."); - return; - } - - FileInfo file = new FileInfo(fileName); - - bool readOnly = (file.Exists) ? file.IsReadOnly : false; - if (readOnly) - { - file.IsReadOnly = false; - } - - Debug.Log($"Saving {fileName}"); - using (StreamWriter writer = new StreamWriter(fileName, false)) - { - writer.Write(JsonUtility.ToJson(this, true)); - } - - if (readOnly) - { - file.IsReadOnly = true; - } - } - - /// - /// Adds a reference to an existing assembly definition. Make sure to call Save() after using this method to save the changes. - /// - /// The name of the reference to add to this assembly definition - public void AddReference(string referenceName) - { - if (string.IsNullOrWhiteSpace(referenceName)) - { - Debug.LogError($"The reference name is empty and was not added to the {Name} assembly definition file."); - return; - } - - if (References == null) - { - References = new string[] { }; - } - - List refs = References.ToList(); - - if (!refs.Contains(referenceName)) - { - refs.Add(referenceName); - } - else - { - Debug.Log($"The {referenceName} reference name is already listed in the {Name} file."); - return; - } - - References = refs.ToArray(); - } - } - -#if UNITY_2019_3_OR_NEWER - /// - /// Represents a subclass of a Unity assembly definition (asmdef) file. - /// - [Serializable] - public struct VersionDefine : IEquatable - { - public VersionDefine(string name, string expression, string define) - { - this.name = name; - this.expression = expression; - this.define = define; - } - - [SerializeField] - private string name; - - [SerializeField] - private string expression; - - [SerializeField] - private string define; - - bool IEquatable.Equals(VersionDefine other) - { - return name.Equals(other.name) && - expression.Equals(other.expression) && - define.Equals(other.define); - } - } -#endif // UNITY_2019_3_OR_NEWER -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs.meta deleted file mode 100644 index 6ae820c85..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyDefinition.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a82020d6dec5f08419de6c30e9fc724f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index 8b22a3476..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3366555a8bc7ee748b4d330cd773fee8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs deleted file mode 100644 index d68e6d1c1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - public static class EditorAssemblyReloadManager - { - private static bool locked = false; - - /// - /// Locks the Editor's ability to reload assemblies. - /// - /// - /// This is useful for ensuring async tasks complete in the editor without having to worry if any script - /// changes that happen during the running task will cancel it when the editor re-compiles the assemblies. - /// - public static bool LockReloadAssemblies - { - set - { - locked = value; - - if (locked) - { - EditorApplication.LockReloadAssemblies(); - - if ((EditorWindow.focusedWindow != null) && - !Application.isBatchMode) - { - EditorWindow.focusedWindow.ShowNotification(new GUIContent("Assembly reloading temporarily paused.")); - } - } - else - { - EditorApplication.UnlockReloadAssemblies(); - EditorApplication.delayCall += () => AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); - - if ((EditorWindow.focusedWindow != null) && - !Application.isBatchMode) - { - EditorWindow.focusedWindow.ShowNotification(new GUIContent("Assembly reloading resumed.")); - } - } - } - get => locked; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs.meta deleted file mode 100644 index 902b21950..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorAssemblyReloadManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 036f1e9d403d4c9a8ef625c2e78d7b63 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs deleted file mode 100644 index 4338f6bf3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs +++ /dev/null @@ -1,267 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [InitializeOnLoad] - public static class EditorProjectUtilities - { - private const string SessionStateKey = "EditorProjectUtilitiesSessionStateKey"; - - /// - /// Static constructor that allows for executing code on project load. - /// - static EditorProjectUtilities() - { - // This InitializeOnLoad handler only runs once at editor launch in order to adjust for Unity version - // differences. These don't need to (and should not be) run on an ongoing basis. This uses the - // volatile SessionState which is clear when Unity launches to ensure that this only runs the - // expensive work (UpdateAsmDef) once. - if (!SessionState.GetBool(SessionStateKey, false)) - { - SessionState.SetBool(SessionStateKey, true); - CheckMinimumEditorVersion(); - ApplyARFoundationUWPCompileFix(); - MixedRealityToolkitPreserveSettings.EnsureLinkXml(); - } - } - - /// - /// Checks that a supported version of Unity is being used with this project. - /// - /// - /// This method displays a message to the user allowing them to continue or to exit the editor. - /// - public static void CheckMinimumEditorVersion() - { -#if !UNITY_2018_4_OR_NEWER && !UNITY_2019_1_OR_NEWER - DisplayIncorrectEditorVersionDialog(); -#endif - } - - /// - /// Displays a message indicating that a project was loaded in an unsupported version of Unity and allows the user - /// to continue or exit. - /// - private static void DisplayIncorrectEditorVersionDialog() - { - if (!EditorUtility.DisplayDialog( - "Mixed Reality Toolkit", - "The Mixed Reality Toolkit requires Unity 2018.4 or newer.\n\nUsing an older version of Unity may result in compile errors or incorrect behavior.", - "Continue", "Close Editor")) - { - EditorApplication.Exit(0); - } - } - - /// - /// Finds the path of a directory relative to the project directory. - /// - /// The name of the directory to search for. - /// The output parameter in which the fully qualified path is returned. - /// True if the directory could be found, false otherwise. - public static bool FindRelativeDirectory(string packageDirectory, out string path) - { - return FindRelativeDirectory(Application.dataPath, packageDirectory, out path); - } - - /// - /// Finds the path of a directory relative to the project folder. - /// - /// - /// The subtree's root path to search in. - /// - /// - /// The name of the directory to search for. - /// - internal static bool FindRelativeDirectory(string directoryPathToSearch, string directoryName, out string path) - { - string absolutePath; - if (FindDirectory(directoryPathToSearch, directoryName, out absolutePath)) - { - path = MixedRealityToolkitFiles.GetAssetDatabasePath(absolutePath); - return true; - } - - path = string.Empty; - return false; - } - - /// - /// Finds the absolute path of a directory. - /// - /// - /// The subtree's root path to search in. - /// - /// - /// The name of the directory to search for. - /// - internal static bool FindDirectory(string directoryPathToSearch, string directoryName, out string path) - { - path = string.Empty; - - var directories = Directory.GetDirectories(directoryPathToSearch); - - for (int i = 0; i < directories.Length; i++) - { - var name = Path.GetFileName(directories[i]); - - if (name != null && name.Equals(directoryName)) - { - path = directories[i]; - return true; - } - - if (FindDirectory(directories[i], directoryName, out path)) - { - return true; - } - } - - return false; - } - - /// - /// On Unity 2018, the .NET backend has been deprecated. AR Foundation components utilize functionality that is not present in the .NET assemblies - /// for the Universal Windows Platform. This method modifies the AR Foundation assembly definition files to exclude building on the Windows Universal - /// build target. - /// - /// - /// This method only executes on Unity 2018.x. - /// - private static void ApplyARFoundationUWPCompileFix() - { -#if !UNITY_2019_1_OR_NEWER - bool reloadLocked = EditorAssemblyReloadManager.LockReloadAssemblies; - if (reloadLocked) - { - EditorAssemblyReloadManager.LockReloadAssemblies = false; - } - - DirectoryInfo packageCache = FileUtilities.GetPackageCache(); - - if (packageCache.Exists) - { - string uwpPlatformName = "WSA"; - - FileInfo arFoundation = GetPackageCacheAssemblyDefinitionFile( - packageCache, - "com.unity.xr.arfoundation@*", - "Unity.XR.ARFoundation.asmdef"); - if (arFoundation != null) - { - bool changed = false; - - AssemblyDefinition asmDef = AssemblyDefinition.Load(arFoundation.FullName); - - if (asmDef.IncludePlatforms.Contains(uwpPlatformName)) - { - Debug.Log($"Removing Universal Windows Platform from the {arFoundation.FullName} included platforms list."); - List list = new List(asmDef.IncludePlatforms); - list.Remove(uwpPlatformName); - asmDef.IncludePlatforms = list.ToArray(); - changed = true; - } - else if (!asmDef.ExcludePlatforms.Contains(uwpPlatformName)) - { - Debug.Log($"Adding Universal Windows Platform to the {arFoundation.FullName} excluded platforms list."); - List list = new List(asmDef.ExcludePlatforms); - list.Add(uwpPlatformName); - asmDef.ExcludePlatforms = list.ToArray(); - changed = true; - } - - if (changed) - { - asmDef.Save(arFoundation.FullName); - } - } - - FileInfo arSubsystems = GetPackageCacheAssemblyDefinitionFile( - packageCache, - "com.unity.xr.arsubsystems@*", - "Unity.XR.ARSubsystems.asmdef"); - if (arSubsystems != null) - { - bool changed = false; - - AssemblyDefinition asmDef = AssemblyDefinition.Load(arSubsystems.FullName); - - if (asmDef.IncludePlatforms.Contains(uwpPlatformName)) - { - Debug.Log($"Removing Universal Windows Platform from the {arSubsystems.FullName} included platforms list."); - List list = new List(asmDef.IncludePlatforms); - list.Remove(uwpPlatformName); - asmDef.IncludePlatforms = list.ToArray(); - changed = true; - } - else if (!asmDef.ExcludePlatforms.Contains(uwpPlatformName)) - { - Debug.Log($"Adding Universal Windows Platform to the {arSubsystems.FullName} excluded platforms list."); - List list = new List(asmDef.ExcludePlatforms); - list.Add(uwpPlatformName); - asmDef.ExcludePlatforms = list.ToArray(); - changed = true; - } - - if (changed) - { - asmDef.Save(arSubsystems.FullName); - } - } - } - - if (reloadLocked) - { - EditorAssemblyReloadManager.LockReloadAssemblies = true; - } - -#endif // !UNITY_2019_OR_NEWER - } - - /// - /// Gets the assembly definition file that best matches the folder name pattern and the file names. - /// - /// DirectoryInfo that describes the package cache root folder. - /// The name of the folder in which to find the requested file. A wildcard ('*') can be specified to match a partial name. - /// The name of the assembly definition file. - /// - /// A FileInfo object that describes the assembly definition file or null. - /// - private static FileInfo GetPackageCacheAssemblyDefinitionFile( - DirectoryInfo root, - string folderName, - string fileName) - { - DirectoryInfo[] folders = root.GetDirectories(folderName); - if (folders.Length == 0) - { - return null; - } - if (folders.Length > 1) - { - Debug.LogWarning($"Too many instances of the {folderName} pattern, using the first one found."); - } - - folders = folders[0].GetDirectories("Runtime"); - if (folders.Length == 0) - { - return null; - } - - FileInfo[] files = folders[0].GetFiles(fileName); - if (files.Length == 0) - { - return null; - } - - return files[0]; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs.meta deleted file mode 100644 index 4503425b9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/EditorProjectUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c1384044aa4581c48a653d50d3492a15 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs deleted file mode 100644 index 8adc8a66a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A set of utilities for working with files. - /// - public static class FileUtilities - { - /// - /// Locates the files that match the specified name within the Assets folder structure. - /// - /// The name of the file to locate (ex: "TestFile.asmdef") - /// Array of FileInfo objects representing the located file(s). - public static FileInfo[] FindFilesInAssets(string fileName) - { - // FindAssets doesn't take a file extension - string[] assetGuids = AssetDatabase.FindAssets(Path.GetFileNameWithoutExtension(fileName)); - - List fileInfos = new List(); - for (int i = 0; i < assetGuids.Length; i++) - { - string assetPath = AssetDatabase.GUIDToAssetPath(assetGuids[i]); - // Since this is an asset search without extension, some filenames may contain parts of other filenames. - // Therefore, double check that the path actually contains the filename with extension. - if (assetPath.Contains(fileName)) - { - fileInfos.Add(new FileInfo(assetPath)); - } - } - - return fileInfos.ToArray(); - } - - /// - /// Locates the files that match the specified name within the package cache folder structure. - /// - /// The name of the file to locate (ex: "TestFile.asmdef") - /// Array of FileInfo objects representing the located file(s). - public static FileInfo[] FindFilesInPackageCache(string fileName) - { - DirectoryInfo root = GetPackageCache(); - return FindFiles(fileName, root); - } - - /// - /// Gets the package cache folder of this project. - /// - /// - /// A DirectoryInfo object that describes the package cache folder. - /// - public static DirectoryInfo GetPackageCache() - { - string packageCacheFolderName = Path.Combine("Library", "PackageCache"); - - DirectoryInfo projectRoot = new DirectoryInfo(Application.dataPath).Parent; - return new DirectoryInfo(Path.Combine(projectRoot.FullName, packageCacheFolderName)); - } - - /// - /// Finds all files matching the specified name. - /// - /// The name of the file to locate (ex: "TestFile.asmdef") - /// The folder in which to perform the search. - /// Array of FileInfo objects containing the search results. - private static FileInfo[] FindFiles(string fileName, DirectoryInfo root) - { - return root.GetFiles(fileName, SearchOption.AllDirectories); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs.meta deleted file mode 100644 index 398c591c8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/FileUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5bc6e2d63e2c9c94e8eaf48be75f78b5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs deleted file mode 100644 index fa7c2a7ee..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Similar to the scope classes in Unity (i.e VerticalScope), - /// This class is a helper class designed to force enable GUI.enabled over some lifetime. - /// Should be utilized with using{} code block. - /// - public class GUIEnabledWrapper : IDisposable - { - private readonly bool wasGUIEnabled; - - /// - /// Captures whether the Unity editor GUI state was enabled or not. Then forces enable to true - /// - public GUIEnabledWrapper() - { - wasGUIEnabled = GUI.enabled; - GUI.enabled = true; - } - - public void Dispose() - { - // Dispose of unmanaged resources. - Dispose(true); - // Suppress finalization. - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - GUI.enabled = wasGUIEnabled; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs.meta deleted file mode 100644 index 962fe519b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/GUIEnabledWrapper.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3719cf74f97235241b02a408ed8c66f0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs deleted file mode 100644 index 0b4ac3b10..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Used to define an entire InputManagerAxis, with each variable defined by the same term the Inspector shows. - /// - public class InputManagerAxis - { - public string Name = string.Empty; - public string DescriptiveName = string.Empty; - public string DescriptiveNegativeName = string.Empty; - public string NegativeButton = string.Empty; - public string PositiveButton = string.Empty; - public string AltNegativeButton = string.Empty; - public string AltPositiveButton = string.Empty; - public float Gravity = 0.0f; - public float Dead = 0.0f; - public float Sensitivity = 0.0f; - public bool Snap = false; - public bool Invert = false; - public InputManagerAxisType Type = default(InputManagerAxisType); - public int Axis = 0; - public int JoyNum = 0; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs.meta deleted file mode 100644 index cdebbedc5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxis.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 852ca94c13174a748dee929d5750e843 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs deleted file mode 100644 index bbb192df7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Used to map AxisType from a useful name to the int value the InputManager wants. - /// - public enum InputManagerAxisType - { - KeyOrMouseButton = 0, - MouseMovement, - JoystickAxis - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs.meta deleted file mode 100644 index 560034b0c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputManagerAxisType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8197aa0463ea467bacb4107fdb3ba125 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs deleted file mode 100644 index 6f4445e35..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Collections.Generic; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - /// - /// Utility class for Unity's Input Manager mappings. - /// - public static class InputMappingAxisUtility - { - #region Configuration elements - - /// - /// This is used to keep a local list of axis names, so we don't have to keep iterating through each SerializedProperty. - /// - private static readonly List AxisNames = new List(); - - /// - /// This is used to keep a single reference to InputManager.asset, refreshed when necessary. - /// - private static SerializedObject inputManagerAsset; - - #endregion Configuration elements - - #region Mappings Functions - - /// - /// Simple static function to check Unity InputManager Axis configuration, and apply if needed. - /// - /// - /// This only exists as the Unity input manager CANNOT map Axis to an id; it has to be through a mapping. - /// - /// Array of axis mappings, to configure your own custom set. - /// If the mappings should be updated to match axisMappings or simply check that they match. Defaults to true. - /// True if the mappings needed an update. False if they match axisMappings already. - public static bool CheckUnityInputManagerMappings(InputManagerAxis[] axisMappings, bool updateMappings = true) - { - EnsureInputManagerReference(); - - bool mappingsNeedUpdate = false; - - if (axisMappings != null) - { - for (var i = 0; i < axisMappings.Length; i++) - { - if (!DoesAxisNameExist(axisMappings[i].Name)) - { - if (updateMappings) - { - AddAxis(axisMappings[i]); - } - mappingsNeedUpdate = true; - } - } - - if (mappingsNeedUpdate && updateMappings) - { - inputManagerAsset.ApplyModifiedProperties(); - } - } - - return mappingsNeedUpdate; - } - - /// - /// Simple static function to apply Unity InputManager Axis configuration - /// - /// - /// This only exists as the Unity input manager CANNOT map Axis to an id, it has to be through a mapping - /// - /// Optional array of Axis Mappings, to configure your own custom set - public static void RemoveMappings(InputManagerAxis[] axisMappings) - { - EnsureInputManagerReference(); - - if (axisMappings != null) - { - foreach (InputManagerAxis axis in axisMappings) - { - if (DoesAxisNameExist(axis.Name)) - { - RemoveAxis(axis.Name); - } - } - } - - inputManagerAsset.ApplyModifiedProperties(); - } - - private static void AddAxis(InputManagerAxis axis) - { - EnsureInputManagerReference(); - - SerializedProperty axesProperty = inputManagerAsset.FindProperty("m_Axes"); - - // Creates a new axis by incrementing the size of the m_Axes array. - axesProperty.arraySize++; - - // Get the new axis be querying for the last array element. - SerializedProperty axisProperty = axesProperty.GetArrayElementAtIndex(axesProperty.arraySize - 1); - - // Iterate through all the properties of the new axis. - while (axisProperty.Next(true)) - { - switch (axisProperty.name) - { - case "m_Name": - axisProperty.stringValue = axis.Name; - break; - case "descriptiveName": - axisProperty.stringValue = axis.DescriptiveName; - break; - case "descriptiveNegativeName": - axisProperty.stringValue = axis.DescriptiveNegativeName; - break; - case "negativeButton": - axisProperty.stringValue = axis.NegativeButton; - break; - case "positiveButton": - axisProperty.stringValue = axis.PositiveButton; - break; - case "altNegativeButton": - axisProperty.stringValue = axis.AltNegativeButton; - break; - case "altPositiveButton": - axisProperty.stringValue = axis.AltPositiveButton; - break; - case "gravity": - axisProperty.floatValue = axis.Gravity; - break; - case "dead": - axisProperty.floatValue = axis.Dead; - break; - case "sensitivity": - axisProperty.floatValue = axis.Sensitivity; - break; - case "snap": - axisProperty.boolValue = axis.Snap; - break; - case "invert": - axisProperty.boolValue = axis.Invert; - break; - case "type": - axisProperty.intValue = (int)axis.Type; - break; - case "axis": - axisProperty.intValue = axis.Axis - 1; - break; - case "joyNum": - axisProperty.intValue = axis.JoyNum; - break; - } - } - } - - private static void RemoveAxis(string axis) - { - EnsureInputManagerReference(); - - SerializedProperty axesProperty = inputManagerAsset.FindProperty("m_Axes"); - - RefreshLocalAxesList(); - - // This loop accounts for multiple axes with the same name. - while (AxisNames.Contains(axis)) - { - int index = AxisNames.IndexOf(axis); - axesProperty.DeleteArrayElementAtIndex(index); - AxisNames.RemoveAt(index); - } - } - - /// - /// Checks our local cache of axis names to see if an axis exists. This cache is refreshed if it's empty or if InputManager.asset has been changed. - /// - public static bool DoesAxisNameExist(string axisName) - { - EnsureInputManagerReference(); - - if (AxisNames.Count == 0 || inputManagerAsset.UpdateIfRequiredOrScript()) - { - RefreshLocalAxesList(); - } - - return AxisNames.Contains(axisName); - } - - /// - /// Clears our local cache, then refills it by iterating through the m_Axes arrays and storing the display names. - /// - private static void RefreshLocalAxesList() - { - EnsureInputManagerReference(); - - AxisNames.Clear(); - - SerializedProperty axesProperty = inputManagerAsset.FindProperty("m_Axes"); - - for (int i = 0; i < axesProperty.arraySize; i++) - { - AxisNames.Add(axesProperty.GetArrayElementAtIndex(i).displayName); - } - } - - private static void EnsureInputManagerReference() - { - if (inputManagerAsset == null) - { - // Grabs the actual asset file into a SerializedObject, so we can iterate through it and edit it. - inputManagerAsset = MixedRealityOptimizeUtils.GetSettingsObject("InputManager"); - } - } - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs.meta deleted file mode 100644 index 6805852a4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/InputMappingAxisUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a010518d4850461ebd07049b4b6b5938 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef deleted file mode 100644 index 88b097edd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Editor.Utilities", - "references": [ - "Unity.TextMeshPro.Editor", - "Unity.TextMeshPro", - "Microsoft.MixedReality.Toolkit.Editor.ClassExtensions" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef.meta deleted file mode 100644 index ff0ca761d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MRTK.Editor.Utilities.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 584b16fd20064a269d31514d588aa585 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs deleted file mode 100644 index edea18ea7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -#if !UNITY_2020_1_OR_NEWER -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -#endif // !UNITY_2020_1_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public static class MixedRealityOptimizeUtils - { - public static bool IsOptimalRenderingPath() -#if UNITY_ANDROID - => PlayerSettings.stereoRenderingPath == StereoRenderingPath.SinglePass; -#else - => PlayerSettings.stereoRenderingPath == StereoRenderingPath.Instancing; -#endif - - public static void SetOptimalRenderingPath() -#if UNITY_ANDROID - => PlayerSettings.stereoRenderingPath = StereoRenderingPath.SinglePass; -#else - => PlayerSettings.stereoRenderingPath = StereoRenderingPath.Instancing; -#endif - - /// - /// Checks if the project has depth buffer sharing enabled. - /// - /// True if the project has depth buffer sharing enabled, false otherwise. - public static bool IsDepthBufferSharingEnabled() - { -#if !UNITY_2020_1_OR_NEWER - if (IsBuildTargetOpenVR()) - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - if (PlayerSettings.VROculus.sharedDepthBuffer) -#pragma warning restore 0618 - { - return true; - } - } - else if (IsBuildTargetUWP()) - { -#if UNITY_2019_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - if (PlayerSettings.VRWindowsMixedReality.depthBufferSharingEnabled) -#pragma warning restore 0618 - { - return true; - } -#else - var playerSettings = GetSettingsObject("PlayerSettings"); - var property = playerSettings?.FindProperty("vrSettings.hololens.depthBufferSharingEnabled"); - if (property != null && property.boolValue) - { - return true; - } -#endif // UNITY_2019_1_OR_NEWER - } -#endif // !UNITY_2020_1_OR_NEWER - - return true; - } - - public static void SetDepthBufferSharing(bool enableDepthBuffer) - { -#if !UNITY_2020_1_OR_NEWER - if (IsBuildTargetOpenVR()) - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - PlayerSettings.VROculus.sharedDepthBuffer = enableDepthBuffer; -#pragma warning restore 0618 - } - else if (IsBuildTargetUWP()) - { -#if UNITY_2019_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - PlayerSettings.VRWindowsMixedReality.depthBufferSharingEnabled = enableDepthBuffer; -#pragma warning restore 0618 -#else - var playerSettings = GetSettingsObject("PlayerSettings"); - ChangeProperty(playerSettings, - "vrSettings.hololens.depthBufferSharingEnabled", - property => property.boolValue = enableDepthBuffer); -#endif // UNITY_2019_1_OR_NEWER - } -#endif // !UNITY_2020_1_OR_NEWER - } - - public static bool IsWMRDepthBufferFormat16bit() - { -#if !UNITY_2020_1_OR_NEWER - if (XRSettingsUtilities.IsLegacyXRActive) - { -#if UNITY_2019_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - return PlayerSettings.VRWindowsMixedReality.depthBufferFormat == PlayerSettings.VRWindowsMixedReality.DepthBufferFormat.DepthBufferFormat16Bit; -#pragma warning restore 0618 -#else - var playerSettings = GetSettingsObject("PlayerSettings"); - var property = playerSettings?.FindProperty("vrSettings.hololens.depthFormat"); - return property != null && property.intValue == 0; -#endif // UNITY_2019_1_OR_NEWER - } -#endif // !UNITY_2020_1_OR_NEWER - return true; - } - - public static void SetDepthBufferFormat(bool set16BitDepthBuffer) - { - int depthFormat = set16BitDepthBuffer ? 0 : 1; - -#if !UNITY_2020_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - PlayerSettings.VRCardboard.depthFormat = depthFormat; - PlayerSettings.VRDaydream.depthFormat = depthFormat; -#pragma warning restore 0618 - - var playerSettings = GetSettingsObject("PlayerSettings"); -#if UNITY_2019_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - PlayerSettings.VRWindowsMixedReality.depthBufferFormat = set16BitDepthBuffer ? - PlayerSettings.VRWindowsMixedReality.DepthBufferFormat.DepthBufferFormat16Bit : - PlayerSettings.VRWindowsMixedReality.DepthBufferFormat.DepthBufferFormat24Bit; -#pragma warning restore 0618 - - ChangeProperty(playerSettings, - "vrSettings.lumin.depthFormat", - property => property.intValue = depthFormat); -#else - - ChangeProperty(playerSettings, - "vrSettings.hololens.depthFormat", - property => property.intValue = depthFormat); -#endif // UNITY_2019_1_OR_NEWER -#endif // !UNITY_2020_1_OR_NEWER - } - - public static bool IsRealtimeGlobalIlluminationEnabled() - { - var lightmapSettings = GetLightmapSettings(); - var property = lightmapSettings?.FindProperty("m_GISettings.m_EnableRealtimeLightmaps"); - return property != null && property.boolValue; - } - - public static void SetRealtimeGlobalIlluminationEnabled(bool enabled) - { - var lightmapSettings = GetLightmapSettings(); - ChangeProperty(lightmapSettings, "m_GISettings.m_EnableRealtimeLightmaps", property => property.boolValue = enabled); - } - - public static bool IsBakedGlobalIlluminationEnabled() - { - var lightmapSettings = GetLightmapSettings(); - var property = lightmapSettings?.FindProperty("m_GISettings.m_EnableBakedLightmaps"); - return property != null && property.boolValue; - } - - public static void SetBakedGlobalIlluminationEnabled(bool enabled) - { - var lightmapSettings = GetLightmapSettings(); - ChangeProperty(lightmapSettings, "m_GISettings.m_EnableBakedLightmaps", property => property.boolValue = enabled); - } - - public static bool IsBuildTargetOpenVR() - { - return EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows || - EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows64; - } - - public static bool IsBuildTargetUWP() - { - return EditorUserBuildSettings.activeBuildTarget == BuildTarget.WSAPlayer; - } - - public static bool IsBuildTargetAndroid() - { - return EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android; - } - - public static bool IsBuildTargetIOS() - { - return EditorUserBuildSettings.activeBuildTarget == BuildTarget.iOS; - } - - public static void ChangeProperty(SerializedObject target, string name, Action changer) - { - var prop = target.FindProperty(name); - if (prop != null) - { - changer(prop); - target.ApplyModifiedProperties(); - } - else Debug.LogError("property not found: " + name); - } - - public static SerializedObject GetSettingsObject(string className) - { - var settings = Unsupported.GetSerializedAssetInterfaceSingleton(className); - return new SerializedObject(settings); - } - - public static SerializedObject GetLightmapSettings() - { - var getLightmapSettingsMethod = typeof(LightmapEditorSettings).GetMethod("GetLightmapSettings", BindingFlags.Static | BindingFlags.NonPublic); - var lightmapSettings = getLightmapSettingsMethod.Invoke(null, null) as UnityEngine.Object; - return new SerializedObject(lightmapSettings); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs.meta deleted file mode 100644 index d58374ec0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/MixedRealityOptimizeUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c796b99d4988f874f9a54def75101868 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences.meta deleted file mode 100644 index 2347e4198..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 067a181a75e48a64eafd1931aeb5351a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs deleted file mode 100644 index 92e2cd1d7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Convenience class for setting Editor Preferences with Application.productName as key prefix. - /// - public static class EditorPreferences - { - /// - /// Set the saved from to EditorPrefs. - /// - public static void Set(string key, string value) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - EditorPrefs.SetString($"{Application.productName}_{key}", value); - } - - /// - /// Set the saved from to EditorPrefs. - /// - public static void Set(string key, bool value) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - EditorPrefs.SetBool($"{Application.productName}_{key}", value); - } - - /// - /// Set the saved from the EditorPrefs. - /// - public static void Set(string key, float value) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - EditorPrefs.SetFloat($"{Application.productName}_{key}", value); - } - - /// - /// Set the saved from theEditorPrefs. - /// - public static void Set(string key, int value) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - EditorPrefs.SetInt($"{Application.productName}_{key}", value); - } - - /// - /// Get the saved from theEditorPrefs. - /// - public static string Get(string key, string defaultValue) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - - if (EditorPrefs.HasKey($"{Application.productName}_{key}")) - { - return EditorPrefs.GetString($"{Application.productName}_{key}"); - } - - EditorPrefs.SetString($"{Application.productName}_{key}", defaultValue); - return defaultValue; - } - - /// - /// Get the saved from the EditorPrefs. - /// - public static bool Get(string key, bool defaultValue) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - - if (EditorPrefs.HasKey($"{Application.productName}_{key}")) - { - return EditorPrefs.GetBool($"{Application.productName}_{key}"); - } - - EditorPrefs.SetBool($"{Application.productName}_{key}", defaultValue); - return defaultValue; - } - - /// - /// Get the saved from the EditorPrefs. - /// - public static float Get(string key, float defaultValue) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - - if (EditorPrefs.HasKey($"{Application.productName}_{key}")) - { - return EditorPrefs.GetFloat($"{Application.productName}_{key}"); - } - - EditorPrefs.SetFloat($"{Application.productName}_{key}", defaultValue); - return defaultValue; - } - - /// - /// Get the saved from the EditorPrefs. - /// - public static int Get(string key, int defaultValue) - { - Debug.Assert(!string.IsNullOrWhiteSpace(key)); - - if (EditorPrefs.HasKey($"{Application.productName}_{key}")) - { - return EditorPrefs.GetInt($"{Application.productName}_{key}"); - } - - EditorPrefs.SetInt($"{Application.productName}_{key}", defaultValue); - return defaultValue; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs.meta deleted file mode 100644 index 98ef6a064..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/EditorPreferences.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 34c98a61cbaa4e79a9d266f82f5ffb07 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs deleted file mode 100644 index 6f799d0d6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// MRTK project preferences access and inspector rendering logic - /// - public static class MixedRealityProjectPreferences - { - #region Lock Profile Preferences - - private static readonly GUIContent LockContent = new GUIContent("Lock SDK profiles", "Locks the SDK profiles from being edited."); - private const string LOCK_KEY = "_MixedRealityToolkit_Editor_LockProfiles"; - private static bool lockPrefLoaded; - private static bool lockProfiles; - - /// - /// Should the default profile inspectors be disabled to prevent editing? - /// - public static bool LockProfiles - { - get - { - if (!lockPrefLoaded) - { - lockProfiles = ProjectPreferences.Get(LOCK_KEY, true); - lockPrefLoaded = true; - } - - return lockProfiles; - } - set => ProjectPreferences.Set(LOCK_KEY, lockProfiles = value); - } - - #endregion Lock Profile Preferences - - #region Ignore startup settings prompt - - private static readonly GUIContent IgnoreContent = new GUIContent("Ignore MRTK project configurator", "Prevents settings dialog popup from showing."); - private const string IGNORE_KEY = "_MixedRealityToolkit_Editor_IgnoreSettingsPrompts"; - private static bool ignorePrefLoaded; - private static bool ignoreSettingsPrompt; - - /// - /// Should the project configurator show when the project isn't configured according to MRTK's recommendations? - /// - public static bool IgnoreSettingsPrompt - { - get - { - if (!ignorePrefLoaded) - { - ignoreSettingsPrompt = ProjectPreferences.Get(IGNORE_KEY, false); - ignorePrefLoaded = true; - } - - return ignoreSettingsPrompt; - } - set => ProjectPreferences.Set(IGNORE_KEY, ignoreSettingsPrompt = value); - } - - #endregion Ignore startup settings prompt - - #region Auto-Enable UWP Capabilities - - private static readonly GUIContent AutoEnableCapabilitiesContent = new GUIContent("Auto-enable UWP capabilities", "When this setting is enabled, MRTK services requiring particular UWP capabilities will be auto-enabled in Publishing Settings.\n\nOnly valid for UWP Build Target projects.\n\nUWP Capabilities can be viewed under Player Settings > Publishing Settings."); - private const string AUTO_ENABLE_CAPABILITIES_KEY = "_MixedRealityToolkit_Editor_AutoEnableUWPCapabilities"; - private static bool autoEnabledCapabilitiesPrefLoaded; - private static bool autoEnabledCapabilitiesSettingsPrompt; - - /// - /// Should the UWP capabilities required by MRTK services be auto-enabled in Publishing Settings? - /// - /// Only valid for UWP Build Target projects. UWP Capabilities can be viewed under Player Settings > Publishing Settings. - public static bool AutoEnableUWPCapabilities - { - get - { - if (!autoEnabledCapabilitiesPrefLoaded) - { - autoEnabledCapabilitiesSettingsPrompt = ProjectPreferences.Get(AUTO_ENABLE_CAPABILITIES_KEY, true); - autoEnabledCapabilitiesPrefLoaded = true; - } - - return autoEnabledCapabilitiesSettingsPrompt; - } - set => ProjectPreferences.Set(AUTO_ENABLE_CAPABILITIES_KEY, autoEnabledCapabilitiesSettingsPrompt = value); - } - - #endregion Auto-Enable UWP Capabilities - - #region Run optimal configuration analysis on Play - - private static readonly GUIContent RunOptimalConfigContent = new GUIContent("Run optimal configuration analysis", "Run optimal configuration analysis for current project and log warnings on entering play mode or building."); - private const string RUN_OPTIMAL_CONFIG_KEY = "MixedRealityToolkit_Editor_RunOptimalConfig"; - private static bool runOptimalConfigPrefLoaded; - private static bool runOptimalConfig; - - /// - /// Should configuration analysis be run and warnings logged when settings don't match MRTK's recommendations? - /// - public static bool RunOptimalConfiguration - { - get - { - if (!runOptimalConfigPrefLoaded) - { - runOptimalConfig = ProjectPreferences.Get(RUN_OPTIMAL_CONFIG_KEY, true); - runOptimalConfigPrefLoaded = true; - } - - return runOptimalConfig; - } - set => ProjectPreferences.Set(RUN_OPTIMAL_CONFIG_KEY, runOptimalConfig = value); - } - - #endregion Run optimal configuration analysis on Play - - #region Project configuration cache - - // This section contains data that gets cached for future reference to help detect configuration - // changes that may result in a need to alert the application developer (ex: count of installed - // plugins of a specific type). There is no UI in the project settings dialog for these properties. - - private const string AUDIO_SPATIALIZER_COUNT_KEY = "MixedRealityToolkit_Editor_AudioSpatializerCount"; - private static bool audioSpatializerCountLoaded; - private static int audioSpatializerCount; - - /// - /// The cached number of audio spatializers that were most recently detected. - /// - /// Used to track when the number of installed spatializers changes. - public static int AudioSpatializerCount - { - get - { - if (!audioSpatializerCountLoaded) - { - audioSpatializerCount = ProjectPreferences.Get(AUDIO_SPATIALIZER_COUNT_KEY, 0); - audioSpatializerCountLoaded = true; - } - - return audioSpatializerCount; - } - set - { - audioSpatializerCount = value; - ProjectPreferences.Set(AUDIO_SPATIALIZER_COUNT_KEY, audioSpatializerCount); - } - } - - #endregion Project configuration cache - - [SettingsProvider] - private static SettingsProvider Preferences() - { - var provider = new SettingsProvider("Project/Mixed Reality Toolkit", SettingsScope.Project) - { - guiHandler = GUIHandler, - - keywords = new HashSet(new[] { "Mixed", "Reality", "Toolkit" }) - }; - - void GUIHandler(string searchContext) - { - EditorGUILayout.HelpBox("These settings are serialized into ProjectPreferences.asset in the MixedRealityToolkit-Generated folder.\nThis file can be checked into source control to maintain consistent settings across collaborators.", MessageType.Info); - - var prevLabelWidth = EditorGUIUtility.labelWidth; - EditorGUIUtility.labelWidth = 250f; - - bool lockProfilesResult = EditorGUILayout.Toggle(LockContent, LockProfiles); - if (lockProfilesResult != LockProfiles) - { - LockProfiles = lockProfilesResult; - } - - if (!LockProfiles) - { - EditorGUILayout.HelpBox("This is only to be used to update the default SDK profiles. If any edits are made, and not checked into the Mixed Reality Toolkit - Unity repository, the changes may be lost next time you update your local copy.", MessageType.Warning); - } - - bool ignoreResult = EditorGUILayout.Toggle(IgnoreContent, IgnoreSettingsPrompt); - if (IgnoreSettingsPrompt != ignoreResult) - { - IgnoreSettingsPrompt = ignoreResult; - } - - bool autoEnableResult = EditorGUILayout.Toggle(AutoEnableCapabilitiesContent, AutoEnableUWPCapabilities); - if (AutoEnableUWPCapabilities != autoEnableResult) - { - AutoEnableUWPCapabilities = autoEnableResult; - } - - var scriptLock = EditorGUILayout.Toggle("Is script reloading locked?", EditorAssemblyReloadManager.LockReloadAssemblies); - if (EditorAssemblyReloadManager.LockReloadAssemblies != scriptLock) - { - EditorAssemblyReloadManager.LockReloadAssemblies = scriptLock; - } - - EditorGUI.BeginChangeCheck(); - runOptimalConfig = EditorGUILayout.Toggle(RunOptimalConfigContent, RunOptimalConfiguration); - - // Save the preference - if (EditorGUI.EndChangeCheck()) - { - RunOptimalConfiguration = runOptimalConfig; - } - - EditorGUIUtility.labelWidth = prevLabelWidth; - } - - return provider; - } - } - -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs.meta deleted file mode 100644 index 890ca78d4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/MixedRealityProjectPreferences.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8058c4e019382e643834d2c5a819a33d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs deleted file mode 100644 index 88572b692..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs +++ /dev/null @@ -1,213 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Utility to save preferences that should be saved per project (i.e to source control) across MRTK. Supports primitive preferences bool, int, and float - /// - public class ProjectPreferences : ScriptableObject - { - // Dictionary is not Serializable by default and furthermore System.object is not Serializable - // Thus, it is difficult to create a generic data bag. Instead we will create instances for each key preference types - [System.Serializable] - private class BoolPreferences : SerializableDictionary { } - - [System.Serializable] - private class IntPreferences : SerializableDictionary { } - - [System.Serializable] - private class FloatPreferences : SerializableDictionary { } - - [System.Serializable] - private class StringPreferences : SerializableDictionary { } - - [SerializeField] - private BoolPreferences boolPreferences = new BoolPreferences(); - - [SerializeField] - private IntPreferences intPreferences = new IntPreferences(); - - [SerializeField] - private FloatPreferences floatPreferences = new FloatPreferences(); - - [SerializeField] - private StringPreferences stringPreferences = new StringPreferences(); - - protected static string FilePath => MixedRealityToolkitFiles.MapRelativeFilePath(MODULE, DEFAULT_FILE_NAME); - - private const string DEFAULT_FILE_NAME = "ProjectPreferences.asset"; - private const MixedRealityToolkitModuleType MODULE = MixedRealityToolkitModuleType.Generated; - private static ProjectPreferences _instance; - private static ProjectPreferences Instance - { - get - { - if (_instance == null) - { - string filePath = FilePath; - if (string.IsNullOrEmpty(filePath)) - { - // MapRelativeFilePath returned null, need to build path ourselves - string modulePath = MixedRealityToolkitFiles.MapModulePath(MODULE); - if (!string.IsNullOrEmpty(modulePath)) - { - filePath = Path.Combine(modulePath, DEFAULT_FILE_NAME); - _instance = CreateInstance(); - AssetDatabase.CreateAsset(_instance, filePath); - AssetDatabase.SaveAssets(); - } - } - else - { - // Sometimes Unity has weird bug where asset file exists but Unity will not load it resulting in _instance = null. - // Force refresh of asset database before we try to access our preferences file - AssetDatabase.Refresh(); - _instance = (ProjectPreferences)AssetDatabase.LoadAssetAtPath(filePath, typeof(ProjectPreferences)); - } - } - - return _instance; - } - } - - #region Setters - - /// - /// Save bool to preferences and save to ScriptableObject with key given. - /// - /// - /// If forceSave is true (default), then will call AssetDatabase.SaveAssets which saves all assets after execution - /// - public static void Set(string key, bool value, bool forceSave = true) => Set(key, value, Instance != null ? Instance.boolPreferences : null, forceSave); - - /// - /// Save float to preferences and save to ScriptableObject with key given. - /// - /// - /// If forceSave is true (default), then will call AssetDatabase.SaveAssets which saves all assets after execution - /// - public static void Set(string key, float value, bool forceSave = true) => Set(key, value, Instance != null ? Instance.floatPreferences : null, forceSave); - - /// - /// Save int to preferences and save to ScriptableObject with key given. - /// - /// - /// If forceSave is true (default), then will call AssetDatabase.SaveAssets which saves all assets after execution - /// - public static void Set(string key, int value, bool forceSave = true) => Set(key, value, Instance != null ? Instance.intPreferences : null, forceSave); - - /// - /// Save string to preferences and save to ScriptableObject with key given. - /// - /// - /// If forceSave is true (default), then will call AssetDatabase.SaveAssets which saves all assets after execution - /// - public static void Set(string key, string value, bool forceSave = true) => Set(key, value, Instance != null ? Instance.stringPreferences : null, forceSave); - - #endregion - - #region Getters - - /// - /// Get bool from Project Preferences. If no entry found, then create new entry with provided defaultValue - /// - public static bool Get(string key, bool defaultValue) => Get(key, defaultValue, Instance != null ? Instance.boolPreferences : null); - - /// - /// Get float from Project Preferences. If no entry found, then create new entry with provided defaultValue - /// - public static float Get(string key, float defaultValue) => Get(key, defaultValue, Instance != null ? Instance.floatPreferences : null); - - /// - /// Get int from Project Preferences. If no entry found, then create new entry with provided defaultValue - /// - public static int Get(string key, int defaultValue) => Get(key, defaultValue, Instance != null ? Instance.intPreferences : null); - - /// - /// Get string from Project Preferences. If no entry found, then create new entry with provided defaultValue - /// - public static string Get(string key, string defaultValue) => Get(key, defaultValue, Instance != null ? Instance.stringPreferences : null); - - #endregion - - #region Remove - - /// - /// Remove key item from preferences if applicable - /// - public static void RemoveBool(string key) => Remove(key, Instance != null ? Instance.boolPreferences : null); - - /// - /// Remove key item from preferences if applicable - /// - public static void RemoveFloat(string key) => Remove(key, Instance != null ? Instance.floatPreferences : null); - - /// - /// Remove key item from preferences if applicable - /// - public static void RemoveInt(string key) => Remove(key, Instance != null ? Instance.intPreferences : null); - - /// - /// Remove key item from preferences if applicable - /// - public static void RemoveString(string key) => Remove(key, Instance != null ? Instance.stringPreferences : null); - - #endregion - - private static void Set(string key, T item, SerializableDictionary target, bool forceSave = true) - { - if (target == null) - { - return; - } - - if (target.ContainsKey(key)) - { - target[key] = item; - } - else - { - target.Add(key, item); - } - - if (forceSave) - { - EditorUtility.SetDirty(Instance); - AssetDatabase.SaveAssets(); - } - } - - private static T Get(string key, T defaultVal, SerializableDictionary target) - { - if (target == null) - { - return default(T); - } - - if (target.ContainsKey(key)) - { - return target[key]; - } - else - { - Set(key, defaultVal, target); - return defaultVal; - } - } - - private static bool Remove(string key, SerializableDictionary target) - { - if (target != null) - { - return target.Remove(key); - } - - return false; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs.meta deleted file mode 100644 index 1130246bd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/ProjectPreferences.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9033865767959b749a2efd333e3edc9c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs deleted file mode 100644 index d69c5b2de..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Generic Dictionary helper class that handles serialization of keys and values into lists before/after serialization time since Dictionary by itself is not Serializable. - /// Extends C# Dictionary class to support typical API access methods - /// - /// Key type for Dictionary - /// Value type for Dictionary - [Serializable] - public class SerializableDictionary : Dictionary, ISerializationCallbackReceiver - { - [SerializeField] - private List keys = new List(); - - [SerializeField] - private List values = new List(); - - public void OnBeforeSerialize() - { - keys.Clear(); - values.Clear(); - - foreach (KeyValuePair pair in this) - { - keys.Add(pair.Key); - values.Add(pair.Value); - } - } - - public void OnAfterDeserialize() - { - this.Clear(); - - if (keys.Count != values.Count) - { - throw new System.Exception(string.Format($"Error after deserialization in SerializableDictionary class. There are {keys.Count} keys and {values.Count} values after deserialization. Could not load SerializableDictionary")); - } - - for (int i = 0; i < keys.Count; i++) - { - this.Add(keys[i], values[i]); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs.meta deleted file mode 100644 index bb808490c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Preferences/SerializableDictionary.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 396cc5612a3eb8b40a822229fd559472 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs deleted file mode 100644 index dcdf3469d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Linq; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A set of utilities to configure script compilation. - /// - public static class ScriptUtilities - { - /// - /// Appends a set of symbolic constant definitions to Unity's Scripting Define Symbols for the - /// specified build target group. - /// - /// The build target group for which the symbols are to be defined. - /// Array of symbols to define. - public static void AppendScriptingDefinitions( - BuildTargetGroup targetGroup, - string[] symbols) - { - if (symbols == null || symbols.Length == 0) { return; } - - List toAdd = new List(symbols); - List defines = new List(PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup).Split(';')); - - PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, string.Join(";", defines.Union(toAdd).ToArray())); - } - - /// - /// Removes a set of symbolic constant definitions to Unity's Scripting Define Symbols from the - /// specified build target group. - /// - /// The build target group for which the symbols are to be removed. - /// Array of symbols to remove. - public static void RemoveScriptingDefinitions( - BuildTargetGroup targetGroup, - string[] symbols) - { - if (symbols == null || symbols.Length == 0) { return; } - - List toRemove = new List(symbols); - List defines = new List(PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup).Split(';')); - - PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, string.Join(";", defines.Except(toRemove).ToArray())); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs.meta deleted file mode 100644 index 912fc424c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0bb91ee7e1545fc4f82b6cb8351e0b65 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs deleted file mode 100644 index 2c27d19da..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Unity has a strange bug when it tries to import a DLL with a ScriptedImporter and an asset that importer is targeting. - /// The first time, it will not invoke the ScriptedImporter as it's just being imported itself; the second time the ScriptedImporter will be constructed but Unity thinks it fails. - /// The third time, the import will succeed. This class will invoke the third time import for .gltf, .glb and .room extensions. - /// - public class ScriptedImporterAssetReimporter : AssetPostprocessor - { - private static readonly Dictionary assetsAttemptedToReimport = new Dictionary(); - - public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - { - foreach (string asset in importedAssets) - { - // Ignore the StreamingAssets folder, as this appears to not be required and generates console warnings. - if (asset.Contains("Assets/StreamingAssets")) - { - continue; - } - - string extension = Path.GetExtension(asset); - if (extension == ".room" || extension == ".glb" || extension == ".gltf") - { - Type assetType = AssetDatabase.GetMainAssetTypeAtPath(asset); - if (assetType == typeof(DefaultAsset)) - { - if (!assetsAttemptedToReimport.TryGetValue(asset, out int numAttempts)) - { - numAttempts = 0; - } - - assetsAttemptedToReimport[asset] = ++numAttempts; - - if (numAttempts <= 3) - { - Debug.LogWarning($"Asset '{asset}' appears to have failed importing, will attempt to re-import. Attempt: {numAttempts}"); - AssetDatabase.ImportAsset(asset); - } - else - { - Debug.LogWarning($"Asset '{asset}' appears to have failed the re-import 3 times, will not try again."); - } - } - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs.meta deleted file mode 100644 index 3a1ba5ad3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/ScriptedImporterAssetReimporter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 57ebbee3f46e6be4c858930b39d4fc1b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup.meta deleted file mode 100644 index 793abe34d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f180f02fd1604821afd1c0fb7954f7f7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs deleted file mode 100644 index 7b83c4dd8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs +++ /dev/null @@ -1,599 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading; -using System.Threading.Tasks; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Base folder types for modules searched by the MixedRealityToolkitFiles utility. - /// - public enum MixedRealityToolkitModuleType - { - None = 0, - Core, - Generated, - Providers, - Services, - SDK, - Examples, - Tests, - Extensions, - Tools, - StandardAssets, - // This module only exists for testing purposes, and is used in edit mode tests in conjunction - // with MixedRealityToolkitFiles to ensure that this class is able to reason over MRTK - // files that are placed outside of the root asset folder. - AdhocTesting = -1, - } - - /// - /// API for working with MixedRealityToolkit folders contained in the project. - /// - /// - /// This class works by looking for sentinel files (following the pattern MRTK.*.sentinel, - /// for example, MRTK.Core.sentinel) in order to identify where the MRTK is located - /// within the project. - /// - public static class MixedRealityToolkitFiles - { - /// - /// This controls the behavior of MapRelativePathToAbsolutePath. - /// - private enum SearchType - { - /// - /// Search for a file. - /// - File, - /// - /// Search for a folder. - /// - Folder, - } - - /// - /// The MRTK uses "sentinel" files (for example, MRTK.Core.sentinel) which are used to uniquely - /// identify the presence of certain MRTK folders and modules. This is the file pattern used - /// to search within folders for those sentinel files and make the file search a little more - /// efficient than a full file enumeration. - /// - private const string SentinelFilePattern = "MRTK.*.sentinel"; - - /// - /// In order to subscribe for a callback, - /// the class declaring the method must derive from AssetPostprocessor. So this class is nested privately as to prevent instantiation of it. - /// - private class AssetPostprocessor : UnityEditor.AssetPostprocessor - { - public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - { - foreach (string asset in importedAssets.Concat(movedAssets)) - { - if (IsSentinelFile(asset)) - { - string fullAssetPath = ResolveFullAssetsPath(asset); - TryRegisterModuleViaFile(fullAssetPath); - } - } - - foreach (string asset in deletedAssets.Concat(movedFromAssetPaths)) - { - if (IsSentinelFile(asset)) - { - string fullAssetPath = ResolveFullAssetsPath(asset); - string folderPath = Path.GetDirectoryName(fullAssetPath); - TryUnregisterModuleFolder(folderPath); - } - } - } - } - - // Storage of our list of module paths (stored as absolute file paths) and bucketed by ModuleType - private readonly static Dictionary> mrtkFolders = - new Dictionary>(); - - private static Task searchForFoldersTask = null; - private static CancellationTokenSource searchForFoldersToken; - - // This ensures directory separator chars are platform independent. Given path might use \ or / - // Should use string.NormalizeSeparators() extension but blocked by #7152 - private static string NormalizeSeparators(string path) => - path?.Replace('\\', Path.DirectorySeparatorChar).Replace('/', Path.DirectorySeparatorChar); - - private static string FormatSeparatorsForUnity(string path) => path?.Replace('\\', '/'); - - private static bool isInitialized = false; - - private static readonly Dictionary moduleNameMap = new Dictionary() - { - { "Core", MixedRealityToolkitModuleType.Core }, - { "Generated", MixedRealityToolkitModuleType.Generated }, - { "Providers", MixedRealityToolkitModuleType.Providers }, - { "Services", MixedRealityToolkitModuleType.Services }, - { "SDK", MixedRealityToolkitModuleType.SDK }, - { "Examples", MixedRealityToolkitModuleType.Examples }, - { "Tests", MixedRealityToolkitModuleType.Tests }, - { "Extensions", MixedRealityToolkitModuleType.Extensions }, - { "Tools", MixedRealityToolkitModuleType.Tools }, - { "StandardAssets", MixedRealityToolkitModuleType.StandardAssets }, - - // This module only exists for testing purposes, and is used in edit mode tests in conjunction - // with MixedRealityToolkitFiles to ensure that this class is able to reason over MRTK - // files that are placed outside of the root asset folder. - { "AdhocTesting", MixedRealityToolkitModuleType.AdhocTesting }, - }; - - /// - /// Maps an absolute path to be relative to the Project Root path (the Unity folder that contains Assets) - /// - /// The absolute path to the project. - /// The project relative path. - /// This doesn't produce paths that contain step out '..' relative paths. - public static string GetAssetDatabasePath(string absolutePath) - { - string assetDatabasePath = Path.GetFullPath(absolutePath).Replace("\\", "/"); - string token = string.Empty; - string newRoot = string.Empty; - if (assetDatabasePath.Contains("/Assets/")) - { - token = "/Assets/"; - newRoot = "Assets"; - } - else if (assetDatabasePath.Contains("/PackageCache/")) - { - token = "/PackageCache/"; - newRoot = "Packages"; - - // PackageCache folders need the embedded version removed. - int atIndex = assetDatabasePath.IndexOf("@"); - int separatorIndex = assetDatabasePath.Substring(atIndex).IndexOf("/"); - string versionString = assetDatabasePath.Substring(atIndex, separatorIndex); - assetDatabasePath = assetDatabasePath.Replace(versionString, ""); - } - else if (assetDatabasePath.Contains("/Packages/")) - { - token = "/Packages/"; - newRoot = "Packages"; - } - - if (!string.IsNullOrWhiteSpace(newRoot) && - !string.IsNullOrWhiteSpace(token)) - { - string oldRoot = assetDatabasePath.Substring(0, - assetDatabasePath.LastIndexOf(token) + token.Length - 1); // Subtract 1 to keep the trailing slash - assetDatabasePath = assetDatabasePath.Replace(oldRoot, newRoot); - } - return assetDatabasePath; - } - - /// - /// Returns a collection of MRTK Core directories found in the project. - /// - /// - /// File/Folder paths returned are absolute, not relative - /// - public static IEnumerable MRTKDirectories => GetDirectories(MixedRealityToolkitModuleType.Core); - - /// - /// Get list of discovered directories for provided module type - /// - /// Module type to filter against - /// string list of discovered directory paths - /// - /// File/Folder paths returned are absolute, not relative - /// - public static IEnumerable GetDirectories(MixedRealityToolkitModuleType module) - { - if (mrtkFolders.TryGetValue(module, out HashSet folders)) - { - return folders; - } - return null; - } - - /// - /// Are any of the MRTK directories available? - /// - /// - /// If a search is currently in progress, then property will wait synchronously for the task to finish with timeout of 1 second - /// - public static bool AreFoldersAvailable - { - get - { - // Other components that InitializeOnLoad may be called before our static constructor. If that is the case, initialize now - if (!isInitialized) - { - Init(); - } - - // If we are currently searching for folders, wait up to 1 second for operation to complete - if (searchForFoldersTask != null) - { - searchForFoldersTask.Wait(1000); - } - - return mrtkFolders.Count > 0; - } - } - - private static void Init() - { - // Note that this file used to have an InitializeOnLoad handler to handle - // early initialization of the folder refresh. However, this had an effect of slowing down - // the Unity editor (i.e. on play mode entry, on recompile) even in cases where the MRTK - // isn't in the scene. - if (!isInitialized) - { - RefreshFolders(); - } - - isInitialized = true; - } - - /// - /// Force refresh of MRTK tracked folders. Fires and forgets async call. Returns immediately - /// - /// - /// Kicks off async refresh of the MRTK folder database. - /// - public static void RefreshFolders() - { - // MRTK may be located in Assets (.unitypackage import) or the Packages (UPM import) - // folder. Check both locations. - List rootFolders = new List - { - Application.dataPath, - Path.GetFullPath("Packages"), - Path.GetFullPath(Path.Combine("Library", "PackageCache")) - }; - searchForFoldersTask = Task.Run(() => SearchForFoldersAsync(rootFolders)); - } - - /// - /// Get task tracking folder refresh if component wants to wait for files to be ready - /// - public static async Task WaitForFolderRefresh() - { - await searchForFoldersTask; - } - - /// - /// Returns files from all folder instances of the core MRTK folder relative path. - /// - /// The core MRTK folder relative path to the target folder. - /// The array of files. - public static string[] GetFiles(string mrtkRelativeFolder) - { - return GetFiles(MixedRealityToolkitModuleType.Core, mrtkRelativeFolder); - } - - /// - /// Returns files from all folder instances of the MRTK folder relative path. - /// - /// The MRTK folder relative path to the target folder. - /// The array of files. - public static string[] GetFiles(MixedRealityToolkitModuleType module, string mrtkRelativeFolder) - { - if (!AreFoldersAvailable) - { - Debug.LogWarning("Failed to locate MixedRealityToolkit folders in the project."); - return null; - } - - if (mrtkFolders.TryGetValue(module, out HashSet modFolders)) - { - return modFolders - .Select(t => Path.Combine(t, mrtkRelativeFolder)) - .Where(Directory.Exists) - .SelectMany(t => Directory.GetFiles(t)) - .Select(GetAssetDatabasePath) - .ToArray(); - } - return null; - } - - /// - /// Maps a single relative path file to a concrete path from one of the core MRTK folders, if found. Otherwise returns null. - /// - /// The core MRTK folder relative path to the file. - /// The project relative path to the file. - public static string MapRelativeFilePath(string mrtkPathToFile) - { - return MapRelativeFilePath(MixedRealityToolkitModuleType.Core, mrtkPathToFile); - } - - /// - /// Maps a single relative path file to a concrete path from one of the MRTK folders, if found. Otherwise returns null. - /// - /// The MRTK folder relative path to the file. - /// The project relative path to the file. - public static string MapRelativeFilePath(MixedRealityToolkitModuleType module, string mrtkPathToFile) - { - string absolutePath = MapRelativeFilePathToAbsolutePath(module, mrtkPathToFile); - return absolutePath != null ? GetAssetDatabasePath(absolutePath) : null; - } - - /// - /// Maps a single relative path file to MRTK folders to its absolute path, if found. Otherwise returns null. - /// - /// - /// For example, this will map "Inspectors\Data\EditorWindowOptions.json" to its full path like - /// "c:\project\Assets\Libs\MRTK\MixedRealityToolkit\Inspectors\Data\EditorWindowOptions.json". - /// This assumes that the passed in mrtkPathToFile is found under the "MixedRealityToolkit" folder - /// (instead of the MixedRealityToolkit.SDK, or any of the other folders). - /// - public static string MapRelativeFilePathToAbsolutePath(string mrtkPathToFile) - { - return MapRelativeFilePathToAbsolutePath(MixedRealityToolkitModuleType.Core, mrtkPathToFile); - } - - /// - /// Overload of MapRelativeFilePathToAbsolutePath which provides the ability to specify the module that the - /// file belongs to. - /// - /// - /// When searching for a resource that lives in the MixedRealityToolkit.SDK folder, this could be invoked - /// in this way: - /// MapRelativeFilePathToAbsolutePath(MixedRealityToolkitModuleType.SDK, mrtkPathToFile) - /// - public static string MapRelativeFilePathToAbsolutePath(MixedRealityToolkitModuleType module, string mrtkPathToFile) - { - return MapRelativePathToAbsolutePath(SearchType.File, module, mrtkPathToFile); - } - - /// - /// Similar to MapRelativeFilePathToAbsolutePath, except this checks for the existence of a folder instead of file. - /// - /// - /// Returns first valid path found - /// - public static string MapRelativeFolderPathToAbsolutePath(MixedRealityToolkitModuleType module, string mrtkPathToFolder) - { - return MapRelativePathToAbsolutePath(SearchType.Folder, module, mrtkPathToFolder); - } - - /// - /// Get the relative asset folder path to the provided Module type - /// - /// Module type to search for - /// - /// Returns first valid module folder path (relative) found. Returns null otherwise. - /// - public static string MapModulePath(MixedRealityToolkitModuleType module) - { - var path = MapRelativeFolderPathToAbsolutePath(module, ""); - return path != null ? GetAssetDatabasePath(path) : null; - } - - /// - /// Finds the module type, if found, from the specified package folder name. - /// - /// The asset folder name (ex: MixedRealityToolkit.Providers) - /// - /// associated with the package folder name. Returns - /// MixedRealityToolkitModuleType.None if an appropriate module type could not be found. - /// - public static MixedRealityToolkitModuleType GetModuleFromPackageFolder(string packageFolder) - { - if (!packageFolder.StartsWith("MixedRealityToolkit")) - { - // There are no mappings for folders that do not start with "MixedRealityToolkit" - return MixedRealityToolkitModuleType.None; - } - - int separatorIndex = packageFolder.IndexOf('.'); - packageFolder = (separatorIndex != -1) ? packageFolder.Substring(separatorIndex + 1) : "Core"; - - MixedRealityToolkitModuleType moduleType; - return moduleNameMap.TryGetValue(packageFolder, out moduleType) ? moduleType : MixedRealityToolkitModuleType.None; - } - - /// - /// Creates the MixedRealityToolkit.Generated folder if it does not exist and returns the - /// path to the generated folder. - /// - public static string GetGeneratedFolder - { - get - { - TryToCreateGeneratedFolder(); - return MapModulePath(MixedRealityToolkitModuleType.Generated); - } - } - - private static async Task SearchForFoldersAsync(List rootFolders) - { - if (searchForFoldersToken != null) - { - searchForFoldersToken.Cancel(); - } - - searchForFoldersToken = new CancellationTokenSource(); - await Task.Run(() => - { - for (int i = 0; i < rootFolders.Count; i++) - { - SearchForFolders(rootFolders[i], searchForFoldersToken.Token); - } - }, searchForFoldersToken.Token); - searchForFoldersToken = null; - } - - private static void SearchForFolders(string rootPath, CancellationToken ct) - { - try - { - var filePathResults = Directory.GetFiles(rootPath, SentinelFilePattern, SearchOption.AllDirectories); - foreach (var sentinelFilePath in filePathResults) - { - TryRegisterModuleViaFile(sentinelFilePath); - - if (ct.IsCancellationRequested) - { - ct.ThrowIfCancellationRequested(); - } - } - - // Create the Generated folder, if the user tries to delete the Generated folder it will be created again - TryToCreateGeneratedFolder(); - } - catch (OperationCanceledException) - { - Console.WriteLine($"\n{nameof(OperationCanceledException)} thrown\n"); - } - catch (Exception ex) - { - Debug.LogError(ex.Message); - } - } - - private static void TryRegisterModuleViaFile(string filePath) - { - MixedRealityToolkitModuleType moduleType = GetModuleType(filePath); - if (moduleType != MixedRealityToolkitModuleType.None) - { - string folderPath = Path.GetDirectoryName(filePath); - - RegisterFolderToModule(folderPath, moduleType); - } - } - - private static void RegisterFolderToModule(string folderPath, MixedRealityToolkitModuleType module) - { - string normalizedFolder = NormalizeSeparators(folderPath); - if (!mrtkFolders.TryGetValue(module, out HashSet modFolders)) - { - modFolders = new HashSet(); - mrtkFolders.Add(module, modFolders); - } - - modFolders.Add(normalizedFolder); - } - - private static void TryToCreateGeneratedFolder() - { - // Always add the MixedRealityToolkit.Generated folder to Assets - var generatedDirs = GetDirectories(MixedRealityToolkitModuleType.Generated); - if (generatedDirs == null || !generatedDirs.Any()) - { - string generatedFolderPath = Path.Combine("Assets", "MixedRealityToolkit.Generated"); - if (!Directory.Exists(generatedFolderPath)) - { - Directory.CreateDirectory(generatedFolderPath); - } - - string generatedSentinelFilePath = Path.Combine(generatedFolderPath, "MRTK.Generated.sentinel"); - if (!File.Exists(generatedSentinelFilePath)) - { - // Make sure we create and dispose/close the filestream just created - using (var f = File.Create(generatedSentinelFilePath)) { } - } - - TryRegisterModuleViaFile(generatedSentinelFilePath); - } - } - - private static bool TryUnregisterModuleFolder(string folderPath) - { - string normalizedFolder = NormalizeSeparators(folderPath); - bool found = false; - var removeKeys = new HashSet(); - foreach (var modFolders in mrtkFolders) - { - if (modFolders.Value.Remove(normalizedFolder)) - { - if (modFolders.Value.Count == 0) - { - removeKeys.Add(modFolders.Key); - } - found = true; - } - } - - foreach (var key in removeKeys) - { - mrtkFolders.Remove(key); - } - - return found; - } - - /// - /// Maps a single relative path (file or folder) in MRTK folders to its absolute path, if found. - /// Otherwise returns null. - /// - private static string MapRelativePathToAbsolutePath(SearchType searchType, MixedRealityToolkitModuleType module, string mrtkPath) - { - if (!AreFoldersAvailable) - { - Debug.LogWarning("Failed to locate MixedRealityToolkit folders in the project."); - return null; - } - - mrtkPath = NormalizeSeparators(mrtkPath); - - if (mrtkFolders.TryGetValue(module, out HashSet modFolders)) - { - string path = modFolders - .Select(t => Path.Combine(t, mrtkPath)) - .FirstOrDefault(t => searchType == SearchType.File ? File.Exists(t) : Directory.Exists(t)); - - return path; - } - - return null; - } - - /// - /// Given the full file path, returns the module it's associated with (if it is an MRTK sentinel file) - /// - private static MixedRealityToolkitModuleType GetModuleType(string filePath) - { - const string sentinelRegexPattern = @"^MRTK\.(?[a-zA-Z]+)\.sentinel"; - string fileName = Path.GetFileName(filePath); - var matches = Regex.Matches(fileName, sentinelRegexPattern); - if (matches.Count == 1) - { - var moduleName = matches[0].Groups["module"].Value; - MixedRealityToolkitModuleType moduleType; - if (moduleNameMap.TryGetValue(moduleName, out moduleType)) - { - return moduleType; - } - } - return MixedRealityToolkitModuleType.None; - } - - private static bool IsSentinelFile(string assetPath) - { - return Regex.IsMatch(Path.GetFileName(assetPath), SentinelFilePattern); - } - - /// - /// Resolves the given asset to its full path if and only if the asset belongs to the - /// Assets folder (i.e. it is prefixed with "Assets/..." - /// - /// - /// If not associated with the Assets folder, will return the path unchanged. - /// - private static string ResolveFullAssetsPath(string path) - { - if (path.StartsWith("Assets")) - { - // asset.Substring(6) represents the characters after the "Assets" string. - return Application.dataPath + path.Substring(6); - } - return path; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs.meta deleted file mode 100644 index d4bf4fdb0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 00d4aafcdc7f71249ba8dc40c6762459 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs deleted file mode 100644 index 3b0b8d33a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.IO; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Maanages the Mixed Reality Toolkit code preservation settings. Please see - /// https://docs.unity3d.com/Manual/ManagedCodeStripping.html for more information. - /// - internal static class MixedRealityToolkitPreserveSettings - { - /// - /// The data that will be written to the link.xml file if this class creates one on - /// behalf of the project. - /// - private const string defaultLinkXmlContents = - " \n" + - " \n" + - " \n " + - " \n " + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - ""; - - /// - /// Ensure that a link.xml file exists in the MixedRealityToolkit.Generated folder. - /// This file is used to control the Unity linker's byte code stripping of MRTK assemblies. - /// - public static void EnsureLinkXml() - { - string generatedFolder = MixedRealityToolkitFiles.MapRelativeFolderPathToAbsolutePath(MixedRealityToolkitModuleType.Generated, ""); - string linkXmlPath = Path.Combine(generatedFolder, "link.xml"); - if (File.Exists(linkXmlPath)) - { - // Do not touch the existing file. - return; - } - - // Create a default link.xml with an initial set of assembly preservation rules. - using (StreamWriter writer = new StreamWriter(linkXmlPath)) - { - writer.WriteLine(defaultLinkXmlContents); - Debug.Log($"A link.xml file was created in {MixedRealityToolkitFiles.GetGeneratedFolder}. \n" + - "This file is used to control preservation of MRTK code during linking. It is recommended to add link.xml (and link.xml.meta) to source control."); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs.meta deleted file mode 100644 index ff6718c86..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/Setup/MixedRealityToolkitPreserveSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e43ba98dfceae244ba316526439b94dd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs deleted file mode 100644 index 0f622896e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Editor utility class to discern world space sizing of objects in scene - /// - public static class SizeUtilities - { - /// - /// Finds the first Renderer type component on the selected GameObject in scene and returns its world space bounds size. - /// - [MenuItem("GameObject/MRTK Debug Utilities/Print Renderer Size", false, 40)] - public static void RendererSize() - { - if (Selection.activeGameObject == null) - { - Debug.Log("No selected gameobject is available to calculate Renderer size."); - return; - } - - var renderer = Selection.activeGameObject.GetComponent(); - if (renderer != null) - { - Debug.Log($"Renderer on GameObject \"{renderer.name}\" has world-space bounds size of {renderer.bounds.size}"); - } - else - { - Debug.Log($"No Renderer component found on {Selection.activeGameObject}"); - } - } - - [MenuItem("GameObject/MRTK Debug Utilities/Print Renderer Size", true, 40)] - private static bool ValidateRendererSize() - { - if (Selection.activeGameObject == null) - { - return false; - } - - var renderers = Selection.activeGameObject.GetComponent(); - return (renderers != null); - } - - /// - /// Finds all Collider type components on the selected GameObject in scene and returns their world space bounds size. - /// - [MenuItem("GameObject/MRTK Debug Utilities/Print Collider Size", false, 41)] - public static void ColliderSize() - { - if (Selection.activeGameObject == null) - { - Debug.Log("No selected gameobject is available to calculate Collider size."); - return; - } - - var colliders = Selection.activeGameObject.GetComponents(); - if (colliders != null && colliders.Length != 0) - { - Debug.Log($"Following Collider components found on \"{Selection.activeGameObject}\""); - foreach (var c in colliders) - { - Debug.Log($"Collider of type {c.GetType()} has world-space bounds size of {c.bounds.size}"); - } - } - else - { - Debug.Log($"No Collider components found on {Selection.activeGameObject}"); - } - } - - [MenuItem("GameObject/MRTK Debug Utilities/Print Collider Size", true, 41)] - private static bool ValidateColliderSize() - { - if (Selection.activeGameObject == null) - { - return false; - } - - var colliders = Selection.activeGameObject.GetComponents(); - return (colliders != null && colliders.Length != 0); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs.meta deleted file mode 100644 index eb367e65c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SizeUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a1e0d371b9c97e64faea3ce7dd35d5c4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs deleted file mode 100644 index 8d7919f3a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Collection of utilities to manage the configured audio spatializer. - /// - public static class SpatializerUtilities - { - /// - /// Returns the name of the currently selected spatializer plugin. - /// - public static string CurrentSpatializer => AudioSettings.GetSpatializerPluginName(); - - /// - /// Returns the names of installed spatializer plugins. - /// - public static string[] InstalledSpatializers => AudioSettings.GetSpatializerPluginNames(); - - /// - /// Checks to see if the audio spatializer is configured and/or whether or - /// not the spatializer collection has changed. - /// - /// - /// True if the selected spatializer is installed and no changes have been made to the collection of installed spatializers. - /// False if the selected spatializer is no longer installed or the collection of installed spatializers has been changed. - /// - public static bool CheckSettings() - { - // Check to see if the count of installed spatializers has changed - if (!CheckSpatializerCount()) - { - // A spatializer has been added or removed. - return false; - } - - string spatializerName = CurrentSpatializer; - - // Check to see if an audio spatializer is configured. - if (string.IsNullOrWhiteSpace(spatializerName)) - { - // The user chose to not initialize a spatializer so we are set correctly - return true; - } - - string[] installedSpatializers = InstalledSpatializers; - - // Check to see if the configured spatializer is installed. - if (!installedSpatializers.Contains(spatializerName)) - { - // The current spatializer has been uninstalled. - return false; - } - - // A spatializer is correctly configured. - return true; - } - - /// - /// Saves the specified spatializer to the audio settings. - /// - public static void SaveSettings(string spatializer) - { - if (string.IsNullOrWhiteSpace(spatializer)) - { - Debug.LogWarning("No spatializer was specified. The application will not support Spatial Sound."); - } - else if (!InstalledSpatializers.Contains(spatializer)) - { - Debug.LogError($"{spatializer} is not an installed spatializer."); - return; - } - - SerializedObject audioMgrSettings = MixedRealityOptimizeUtils.GetSettingsObject("AudioManager"); - SerializedProperty spatializerPlugin = audioMgrSettings.FindProperty("m_SpatializerPlugin"); - if (spatializerPlugin == null) - { - Debug.LogError("Unable to save the spatializer settings. The field could not be located into the Audio Manager settings object."); - return; - } - - AudioSettings.SetSpatializerPluginName(spatializer); - spatializerPlugin.stringValue = spatializer; - audioMgrSettings.ApplyModifiedProperties(); - - // Cache the count of installed spatializers - MixedRealityProjectPreferences.AudioSpatializerCount = InstalledSpatializers.Length; - } - - /// - /// Compares the previous and current count of installed spatializer plugins. - /// - /// True if the count of installed spatializers is unchanged, false otherwise. - private static bool CheckSpatializerCount() - { - int previousCount = MixedRealityProjectPreferences.AudioSpatializerCount; - int currentCount = InstalledSpatializers.Length; - - return (previousCount == currentCount); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs.meta deleted file mode 100644 index d2c75040e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/SpatializerUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c7cd426f29fe95d43b1549b2a6e6cd92 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB.meta deleted file mode 100644 index a95281643..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 99f11e54032049e68963de1b978fbb25 -folderAsset: yes -timeCreated: 1512167852 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs deleted file mode 100644 index 3cde444c9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [Serializable] - public class USBDeviceInfo - { - public USBDeviceInfo(int vendorId, string udid, int productId, string name, int revision) - { - VendorId = vendorId; - Udid = udid; - ProductId = productId; - Name = name; - Revision = revision; - } - - public int VendorId { get; private set; } - - public string Udid { get; private set; } - - public int ProductId { get; private set; } - - public string Name { get; private set; } - - public int Revision { get; private set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs.meta deleted file mode 100644 index 8b3d91dbc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 51e73b15d0fd460087ac4ab41236d1e5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs deleted file mode 100644 index f82d2d6bf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEditor; -using UnityEditor.Hardware; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [InitializeOnLoad] - public class USBDeviceListener - { - public static USBDeviceInfo[] USBDevices; - - public delegate void OnUsbDevicesChanged(UsbDevice[] usbDevices); - - public static event OnUsbDevicesChanged UsbDevicesChanged; - - private static readonly List USBDevicesList = new List(0); - - static USBDeviceListener() - { - UnityEditor.Hardware.Usb.DevicesChanged += NotifyUsbDevicesChanged; - } - - private static void NotifyUsbDevicesChanged(UsbDevice[] devices) - { - UsbDevicesChanged?.Invoke(devices); - - USBDevicesList.Clear(); - - foreach (UsbDevice device in devices) - { - USBDevicesList.Add(new USBDeviceInfo(device.vendorId, device.udid, device.productId, device.name, device.revision)); - } - - USBDevices = USBDevicesList.ToArray(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs.meta deleted file mode 100644 index 47e57fa36..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/USB/USBDeviceListener.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9813b7f33fc34d51aef4d7d38d85ae64 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs deleted file mode 100644 index 54504c24e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -#if UNITY_2019_3_OR_NEWER -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.XR; -#endif // UNITY_2019_3_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// Utilities that abstract XR settings functionality so that the MRTK need not know which - /// implementation is being used. - /// - public static class XRSettingsUtilities - { -#if UNITY_2019_3_OR_NEWER - static XRSettingsUtilities() - { - // Called when packages are installed or uninstalled - EditorApplication.projectChanged += EditorApplication_projectChanged; - } -#endif // UNITY_2019_3_OR_NEWER - - /// - /// Gets or sets the legacy virtual reality supported property in the player settings. - /// - /// Returns true if legacy XR is disabled due to XR SDK in Unity 2019.3+. - public static bool LegacyXREnabled - { - get - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. Returns true if legacy XR is disabled due to XR SDK. -#pragma warning disable 0618 - return !IsLegacyXRActive || PlayerSettings.virtualRealitySupported; -#pragma warning restore 0618 - } - - set - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - PlayerSettings.virtualRealitySupported = value; -#pragma warning restore 0618 - } - } - -#if UNITY_2019_3_OR_NEWER - private static bool? isLegacyXRActive = null; -#endif // UNITY_2019_3_OR_NEWER - - /// - /// Checks if an XR SDK plug-in is installed that disables legacy VR. Returns false if so. - /// - public static bool IsLegacyXRActive - { - get - { -#if UNITY_2019_3_OR_NEWER - if (!isLegacyXRActive.HasValue) - { - isLegacyXRActive = true; - - List descriptors = new List(); - SubsystemManager.GetSubsystemDescriptors(descriptors); - - foreach (XRDisplaySubsystemDescriptor displayDescriptor in descriptors) - { - if (displayDescriptor.disablesLegacyVr) - { - isLegacyXRActive = false; - break; - } - } - } - - return isLegacyXRActive.HasValue && isLegacyXRActive.Value; -#else - return true; -#endif // UNITY_2019_3_OR_NEWER - } - } - -#if UNITY_2019_3_OR_NEWER - /// - /// Called when packages are installed or uninstalled, to toggle a new check on XR SDK package installation status. - /// - private static void EditorApplication_projectChanged() => isLegacyXRActive = null; -#endif // UNITY_2019_3_OR_NEWER - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs.meta deleted file mode 100644 index e385012a4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 63b0aa8667615224a8b0a08afcdc64bd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Facades.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Facades.meta deleted file mode 100644 index 3fea57ad0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Facades.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f7e2be04a6f0d554a893cd9784f5f29d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs deleted file mode 100644 index 2486f5916..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Facades -{ - /// - /// Lightweight MonoBehavior used to represent active services in scene. - /// - [ExecuteAlways] - [AddComponentMenu("Scripts/MRTK/Core/ServiceFacade")] - public class ServiceFacade : MonoBehaviour - { - public static Dictionary FacadeServiceLookup = new Dictionary(); - public static List ActiveFacadeObjects = new List(); - - public IMixedRealityService Service { get; private set; } = null; - public Type ServiceType { get; private set; } = null; - public bool Destroyed { get; private set; } = false; - - public void SetService(IMixedRealityService service) - { - this.Service = service; - - if (service == null) - { - ServiceType = null; - name = "(Destroyed)"; - gameObject.SetActive(false); - return; - } - else - { - this.ServiceType = service.GetType(); - - name = ServiceType.Name; - gameObject.SetActive(true); - - if (!FacadeServiceLookup.ContainsKey(ServiceType)) - { - FacadeServiceLookup.Add(ServiceType, this); - } - else - { - FacadeServiceLookup[ServiceType] = this; - } - - if (!ActiveFacadeObjects.Contains(this)) - { - ActiveFacadeObjects.Add(this); - } - } - } - - private void OnDestroy() - { - Destroyed = true; - - if (FacadeServiceLookup != null && ServiceType != null) - { - FacadeServiceLookup.Remove(ServiceType); - } - - ActiveFacadeObjects.Remove(this); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs.meta deleted file mode 100644 index 2f45506ca..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Facades/ServiceFacade.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 09c04dafcb77c1e4195a36bd131cbdec -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs b/AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs deleted file mode 100644 index 5897c1bac..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs +++ /dev/null @@ -1,501 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// A conglomeration of open-source simplex libraries in C# with an emphasis on performance - /// - public class FastSimplexNoise - { - private const double STRETCH__2_D = -1.0 / 4.73205; - private const double STRETCH__3_D = -1.0 / 6.0; - private const double STRETCH__4_D = -1.0 / 7.23607; - private const double SQUISH__2_D = 1.0 / 2.73205; - private const double SQUISH__3_D = 1.0 / 3.0; - private const double SQUISH__4_D = 1.0 / 7.23607; - private const double NORM__2_D = 1.0 / 47.0; - private const double NORM__3_D = 1.0 / 103.0; - private const double NORM__4_D = 1.0 / 30.0; - - private const long SEEDVAL_1 = 6364136223846793005L; - private const long SEEDVAL_2 = 1442695040888963407L; - - private readonly byte[] perm; - private readonly byte[] perm2D; - private readonly byte[] perm3D; - private readonly byte[] perm4D; - - private static readonly double[] Gradients2D = { - 5, 2, 2, 5, - -5, 2, -2, 5, - 5, -2, 2, -5, - -5, -2, -2, -5 - }; - - private static readonly double[] Gradients3D = - { - -11, 4, 4, -4, 11, 4, -4, 4, 11, - 11, 4, 4, 4, 11, 4, 4, 4, 11, - -11, -4, 4, -4, -11, 4, -4, -4, 11, - 11, -4, 4, 4, -11, 4, 4, -4, 11, - -11, 4, -4, -4, 11, -4, -4, 4, -11, - 11, 4, -4, 4, 11, -4, 4, 4, -11, - -11, -4, -4, -4, -11, -4, -4, -4, -11, - 11, -4, -4, 4, -11, -4, 4, -4, -11 - }; - - private static readonly double[] Gradients4D = - { - 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, - -3, 1, 1, 1, -1, 3, 1, 1, -1, 1, 3, 1, -1, 1, 1, 3, - 3, -1, 1, 1, 1, -3, 1, 1, 1, -1, 3, 1, 1, -1, 1, 3, - -3, -1, 1, 1, -1, -3, 1, 1, -1, -1, 3, 1, -1, -1, 1, 3, - 3, 1, -1, 1, 1, 3, -1, 1, 1, 1, -3, 1, 1, 1, -1, 3, - -3, 1, -1, 1, -1, 3, -1, 1, -1, 1, -3, 1, -1, 1, -1, 3, - 3, -1, -1, 1, 1, -3, -1, 1, 1, -1, -3, 1, 1, -1, -1, 3, - -3, -1, -1, 1, -1, -3, -1, 1, -1, -1, -3, 1, -1, -1, -1, 3, - 3, 1, 1, -1, 1, 3, 1, -1, 1, 1, 3, -1, 1, 1, 1, -3, - -3, 1, 1, -1, -1, 3, 1, -1, -1, 1, 3, -1, -1, 1, 1, -3, - 3, -1, 1, -1, 1, -3, 1, -1, 1, -1, 3, -1, 1, -1, 1, -3, - -3, -1, 1, -1, -1, -3, 1, -1, -1, -1, 3, -1, -1, -1, 1, -3, - 3, 1, -1, -1, 1, 3, -1, -1, 1, 1, -3, -1, 1, 1, -1, -3, - -3, 1, -1, -1, -1, 3, -1, -1, -1, 1, -3, -1, -1, 1, -1, -3, - 3, -1, -1, -1, 1, -3, -1, -1, 1, -1, -3, -1, 1, -1, -1, -3, - -3, -1, -1, -1, -1, -3, -1, -1, -1, -1, -3, -1, -1, -1, -1, -3 - }; - - private static readonly int[] P2D = { 0, 0, 1, -1, 0, 0, -1, 1, 0, 2, 1, 1, 1, 2, 2, 0, 1, 2, 0, 2, 1, 0, 0, 0 }; - - private static readonly int[] P3D = { 0, 0, 1, -1, 0, 0, 1, 0, -1, 0, 0, -1, 1, 0, 0, 0, 1, -1, 0, 0, -1, 0, 1, 0, 0, -1, 1, 0, 2, 1, 1, 0, 1, 1, 1, -1, 0, 2, 1, 0, 1, 1, 1, -1, 1, 0, 2, 0, 1, 1, 1, -1, 1, 1, 1, 3, 2, 1, 0, 3, 1, 2, 0, 1, 3, 2, 0, 1, 3, 1, 0, 2, 1, 3, 0, 2, 1, 3, 0, 1, 2, 1, 1, 1, 0, 0, 2, 2, 0, 0, 1, 1, 0, 1, 0, 2, 0, 2, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 2, 0, 0, 0, 0, 1, 1, -1, 1, 2, 0, 0, 0, 0, 1, -1, 1, 1, 2, 0, 0, 0, 0, 1, 1, 1, -1, 2, 3, 1, 1, 1, 2, 0, 0, 2, 2, 3, 1, 1, 1, 2, 2, 0, 0, 2, 3, 1, 1, 1, 2, 0, 2, 0, 2, 1, 1, -1, 1, 2, 0, 0, 2, 2, 1, 1, -1, 1, 2, 2, 0, 0, 2, 1, -1, 1, 1, 2, 0, 0, 2, 2, 1, -1, 1, 1, 2, 0, 2, 0, 2, 1, 1, 1, -1, 2, 2, 0, 0, 2, 1, 1, 1, -1, 2, 0, 2, 0 }; - - private static readonly int[] P4D = { 0, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 0, -1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 2, 1, 1, 0, 0, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 0, 2, 1, 0, 1, 0, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 0, 2, 0, 1, 1, 0, 1, -1, 1, 1, 0, 1, 0, 1, 1, -1, 0, 2, 1, 0, 0, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 0, 2, 0, 1, 0, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 2, 0, 0, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 1, 4, 2, 1, 1, 0, 4, 1, 2, 1, 0, 4, 1, 1, 2, 0, 1, 4, 2, 1, 0, 1, 4, 1, 2, 0, 1, 4, 1, 1, 0, 2, 1, 4, 2, 0, 1, 1, 4, 1, 0, 2, 1, 4, 1, 0, 1, 2, 1, 4, 0, 2, 1, 1, 4, 0, 1, 2, 1, 4, 0, 1, 1, 2, 1, 2, 1, 1, 0, 0, 3, 2, 1, 0, 0, 3, 1, 2, 0, 0, 1, 2, 1, 0, 1, 0, 3, 2, 0, 1, 0, 3, 1, 0, 2, 0, 1, 2, 0, 1, 1, 0, 3, 0, 2, 1, 0, 3, 0, 1, 2, 0, 1, 2, 1, 0, 0, 1, 3, 2, 0, 0, 1, 3, 1, 0, 0, 2, 1, 2, 0, 1, 0, 1, 3, 0, 2, 0, 1, 3, 0, 1, 0, 2, 1, 2, 0, 0, 1, 1, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 2, 3, 1, 1, 1, 0, 2, 1, 1, 1, -1, 2, 2, 0, 0, 0, 2, 3, 1, 1, 0, 1, 2, 1, 1, -1, 1, 2, 2, 0, 0, 0, 2, 3, 1, 0, 1, 1, 2, 1, -1, 1, 1, 2, 2, 0, 0, 0, 2, 3, 1, 1, 1, 0, 2, 1, 1, 1, -1, 2, 0, 2, 0, 0, 2, 3, 1, 1, 0, 1, 2, 1, 1, -1, 1, 2, 0, 2, 0, 0, 2, 3, 0, 1, 1, 1, 2, -1, 1, 1, 1, 2, 0, 2, 0, 0, 2, 3, 1, 1, 1, 0, 2, 1, 1, 1, -1, 2, 0, 0, 2, 0, 2, 3, 1, 0, 1, 1, 2, 1, -1, 1, 1, 2, 0, 0, 2, 0, 2, 3, 0, 1, 1, 1, 2, -1, 1, 1, 1, 2, 0, 0, 2, 0, 2, 3, 1, 1, 0, 1, 2, 1, 1, -1, 1, 2, 0, 0, 0, 2, 2, 3, 1, 0, 1, 1, 2, 1, -1, 1, 1, 2, 0, 0, 0, 2, 2, 3, 0, 1, 1, 1, 2, -1, 1, 1, 1, 2, 0, 0, 0, 2, 2, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 0, 0, 0, 0, 0, 2, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 0, 0, 0, 0, 0, 2, 1, -1, 1, 1, 0, 1, 0, 1, 1, -1, 0, 0, 0, 0, 0, 2, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 0, 0, 0, 0, 0, 2, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 0, 0, 0, 0, 2, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 0, 0, 0, 0, 0, 2, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 2, 2, 0, 0, 0, 2, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 2, 2, 0, 0, 0, 2, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 2, 2, 0, 0, 0, 2, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 2, 0, 2, 0, 0, 2, 1, -1, 1, 1, 0, 1, 0, 1, 1, -1, 2, 0, 2, 0, 0, 2, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 2, 0, 2, 0, 0, 2, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 2, 0, 0, 2, 0, 2, 1, -1, 1, 1, 0, 1, 0, 1, 1, -1, 2, 0, 0, 2, 0, 2, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 2, 0, 0, 2, 0, 2, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 2, 0, 0, 0, 2, 2, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 2, 0, 0, 0, 2, 2, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 2, 0, 0, 0, 2, 3, 1, 1, 0, 0, 0, 2, 2, 0, 0, 0, 2, 1, 1, 1, -1, 3, 1, 0, 1, 0, 0, 2, 0, 2, 0, 0, 2, 1, 1, 1, -1, 3, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 2, 1, 1, 1, -1, 3, 1, 1, 0, 0, 0, 2, 2, 0, 0, 0, 2, 1, 1, -1, 1, 3, 1, 0, 1, 0, 0, 2, 0, 2, 0, 0, 2, 1, 1, -1, 1, 3, 1, 0, 0, 0, 1, 2, 0, 0, 0, 2, 2, 1, 1, -1, 1, 3, 1, 1, 0, 0, 0, 2, 2, 0, 0, 0, 2, 1, -1, 1, 1, 3, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 2, 1, -1, 1, 1, 3, 1, 0, 0, 0, 1, 2, 0, 0, 0, 2, 2, 1, -1, 1, 1, 3, 1, 0, 1, 0, 0, 2, 0, 2, 0, 0, 2, -1, 1, 1, 1, 3, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 2, -1, 1, 1, 1, 3, 1, 0, 0, 0, 1, 2, 0, 0, 0, 2, 2, -1, 1, 1, 1, 3, 3, 2, 1, 0, 0, 3, 1, 2, 0, 0, 4, 1, 1, 1, 1, 3, 3, 2, 0, 1, 0, 3, 1, 0, 2, 0, 4, 1, 1, 1, 1, 3, 3, 0, 2, 1, 0, 3, 0, 1, 2, 0, 4, 1, 1, 1, 1, 3, 3, 2, 0, 0, 1, 3, 1, 0, 0, 2, 4, 1, 1, 1, 1, 3, 3, 0, 2, 0, 1, 3, 0, 1, 0, 2, 4, 1, 1, 1, 1, 3, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 4, 1, 1, 1, 1, 3, 3, 2, 1, 0, 0, 3, 1, 2, 0, 0, 2, 1, 1, 1, -1, 3, 3, 2, 0, 1, 0, 3, 1, 0, 2, 0, 2, 1, 1, 1, -1, 3, 3, 0, 2, 1, 0, 3, 0, 1, 2, 0, 2, 1, 1, 1, -1, 3, 3, 2, 1, 0, 0, 3, 1, 2, 0, 0, 2, 1, 1, -1, 1, 3, 3, 2, 0, 0, 1, 3, 1, 0, 0, 2, 2, 1, 1, -1, 1, 3, 3, 0, 2, 0, 1, 3, 0, 1, 0, 2, 2, 1, 1, -1, 1, 3, 3, 2, 0, 1, 0, 3, 1, 0, 2, 0, 2, 1, -1, 1, 1, 3, 3, 2, 0, 0, 1, 3, 1, 0, 0, 2, 2, 1, -1, 1, 1, 3, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 2, 1, -1, 1, 1, 3, 3, 0, 2, 1, 0, 3, 0, 1, 2, 0, 2, -1, 1, 1, 1, 3, 3, 0, 2, 0, 1, 3, 0, 1, 0, 2, 2, -1, 1, 1, 1, 3, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 2, -1, 1, 1, 1 }; - - private static readonly int[] LookupPairs2D = { 0, 1, 1, 0, 4, 1, 17, 0, 20, 2, 21, 2, 22, 5, 23, 5, 26, 4, 39, 3, 42, 4, 43, 3 }; - - private static readonly int[] LookupPairs3D = { 0, 2, 1, 1, 2, 2, 5, 1, 6, 0, 7, 0, 32, 2, 34, 2, 129, 1, 133, 1, 160, 5, 161, 5, 518, 0, 519, 0, 546, 4, 550, 4, 645, 3, 647, 3, 672, 5, 673, 5, 674, 4, 677, 3, 678, 4, 679, 3, 680, 13, 681, 13, 682, 12, 685, 14, 686, 12, 687, 14, 712, 20, 714, 18, 809, 21, 813, 23, 840, 20, 841, 21, 1198, 19, 1199, 22, 1226, 18, 1230, 19, 1325, 23, 1327, 22, 1352, 15, 1353, 17, 1354, 15, 1357, 17, 1358, 16, 1359, 16, 1360, 11, 1361, 10, 1362, 11, 1365, 10, 1366, 9, 1367, 9, 1392, 11, 1394, 11, 1489, 10, 1493, 10, 1520, 8, 1521, 8, 1878, 9, 1879, 9, 1906, 7, 1910, 7, 2005, 6, 2007, 6, 2032, 8, 2033, 8, 2034, 7, 2037, 6, 2038, 7, 2039, 6 }; - - private static readonly int[] LookupPairs4D = { 0, 3, 1, 2, 2, 3, 5, 2, 6, 1, 7, 1, 8, 3, 9, 2, 10, 3, 13, 2, 16, 3, 18, 3, 22, 1, 23, 1, 24, 3, 26, 3, 33, 2, 37, 2, 38, 1, 39, 1, 41, 2, 45, 2, 54, 1, 55, 1, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 62, 0, 63, 0, 256, 3, 258, 3, 264, 3, 266, 3, 272, 3, 274, 3, 280, 3, 282, 3, 2049, 2, 2053, 2, 2057, 2, 2061, 2, 2081, 2, 2085, 2, 2089, 2, 2093, 2, 2304, 9, 2305, 9, 2312, 9, 2313, 9, 16390, 1, 16391, 1, 16406, 1, 16407, 1, 16422, 1, 16423, 1, 16438, 1, 16439, 1, 16642, 8, 16646, 8, 16658, 8, 16662, 8, 18437, 6, 18439, 6, 18469, 6, 18471, 6, 18688, 9, 18689, 9, 18690, 8, 18693, 6, 18694, 8, 18695, 6, 18696, 9, 18697, 9, 18706, 8, 18710, 8, 18725, 6, 18727, 6, 131128, 0, 131129, 0, 131130, 0, 131131, 0, 131132, 0, 131133, 0, 131134, 0, 131135, 0, 131352, 7, 131354, 7, 131384, 7, 131386, 7, 133161, 5, 133165, 5, 133177, 5, 133181, 5, 133376, 9, 133377, 9, 133384, 9, 133385, 9, 133400, 7, 133402, 7, 133417, 5, 133421, 5, 133432, 7, 133433, 5, 133434, 7, 133437, 5, 147510, 4, 147511, 4, 147518, 4, 147519, 4, 147714, 8, 147718, 8, 147730, 8, 147734, 8, 147736, 7, 147738, 7, 147766, 4, 147767, 4, 147768, 7, 147770, 7, 147774, 4, 147775, 4, 149509, 6, 149511, 6, 149541, 6, 149543, 6, 149545, 5, 149549, 5, 149558, 4, 149559, 4, 149561, 5, 149565, 5, 149566, 4, 149567, 4, 149760, 9, 149761, 9, 149762, 8, 149765, 6, 149766, 8, 149767, 6, 149768, 9, 149769, 9, 149778, 8, 149782, 8, 149784, 7, 149786, 7, 149797, 6, 149799, 6, 149801, 5, 149805, 5, 149814, 4, 149815, 4, 149816, 7, 149817, 5, 149818, 7, 149821, 5, 149822, 4, 149823, 4, 149824, 37, 149825, 37, 149826, 36, 149829, 34, 149830, 36, 149831, 34, 149832, 37, 149833, 37, 149842, 36, 149846, 36, 149848, 35, 149850, 35, 149861, 34, 149863, 34, 149865, 33, 149869, 33, 149878, 32, 149879, 32, 149880, 35, 149881, 33, 149882, 35, 149885, 33, 149886, 32, 149887, 32, 150080, 49, 150082, 48, 150088, 49, 150098, 48, 150104, 47, 150106, 47, 151873, 46, 151877, 45, 151881, 46, 151909, 45, 151913, 44, 151917, 44, 152128, 49, 152129, 46, 152136, 49, 152137, 46, 166214, 43, 166215, 42, 166230, 43, 166247, 42, 166262, 41, 166263, 41, 166466, 48, 166470, 43, 166482, 48, 166486, 43, 168261, 45, 168263, 42, 168293, 45, 168295, 42, 168512, 31, 168513, 28, 168514, 31, 168517, 28, 168518, 25, 168519, 25, 280952, 40, 280953, 39, 280954, 40, 280957, 39, 280958, 38, 280959, 38, 281176, 47, 281178, 47, 281208, 40, 281210, 40, 282985, 44, 282989, 44, 283001, 39, 283005, 39, 283208, 30, 283209, 27, 283224, 30, 283241, 27, 283256, 22, 283257, 22, 297334, 41, 297335, 41, 297342, 38, 297343, 38, 297554, 29, 297558, 24, 297562, 29, 297590, 24, 297594, 21, 297598, 21, 299365, 26, 299367, 23, 299373, 26, 299383, 23, 299389, 20, 299391, 20, 299584, 31, 299585, 28, 299586, 31, 299589, 28, 299590, 25, 299591, 25, 299592, 30, 299593, 27, 299602, 29, 299606, 24, 299608, 30, 299610, 29, 299621, 26, 299623, 23, 299625, 27, 299629, 26, 299638, 24, 299639, 23, 299640, 22, 299641, 22, 299642, 21, 299645, 20, 299646, 21, 299647, 20, 299648, 61, 299649, 60, 299650, 61, 299653, 60, 299654, 59, 299655, 59, 299656, 58, 299657, 57, 299666, 55, 299670, 54, 299672, 58, 299674, 55, 299685, 52, 299687, 51, 299689, 57, 299693, 52, 299702, 54, 299703, 51, 299704, 56, 299705, 56, 299706, 53, 299709, 50, 299710, 53, 299711, 50, 299904, 61, 299906, 61, 299912, 58, 299922, 55, 299928, 58, 299930, 55, 301697, 60, 301701, 60, 301705, 57, 301733, 52, 301737, 57, 301741, 52, 301952, 79, 301953, 79, 301960, 76, 301961, 76, 316038, 59, 316039, 59, 316054, 54, 316071, 51, 316086, 54, 316087, 51, 316290, 78, 316294, 78, 316306, 73, 316310, 73, 318085, 77, 318087, 77, 318117, 70, 318119, 70, 318336, 79, 318337, 79, 318338, 78, 318341, 77, 318342, 78, 318343, 77, 430776, 56, 430777, 56, 430778, 53, 430781, 50, 430782, 53, 430783, 50, 431000, 75, 431002, 72, 431032, 75, 431034, 72, 432809, 74, 432813, 69, 432825, 74, 432829, 69, 433032, 76, 433033, 76, 433048, 75, 433065, 74, 433080, 75, 433081, 74, 447158, 71, 447159, 68, 447166, 71, 447167, 68, 447378, 73, 447382, 73, 447386, 72, 447414, 71, 447418, 72, 447422, 71, 449189, 70, 449191, 70, 449197, 69, 449207, 68, 449213, 69, 449215, 68, 449408, 67, 449409, 67, 449410, 66, 449413, 64, 449414, 66, 449415, 64, 449416, 67, 449417, 67, 449426, 66, 449430, 66, 449432, 65, 449434, 65, 449445, 64, 449447, 64, 449449, 63, 449453, 63, 449462, 62, 449463, 62, 449464, 65, 449465, 63, 449466, 65, 449469, 63, 449470, 62, 449471, 62, 449472, 19, 449473, 19, 449474, 18, 449477, 16, 449478, 18, 449479, 16, 449480, 19, 449481, 19, 449490, 18, 449494, 18, 449496, 17, 449498, 17, 449509, 16, 449511, 16, 449513, 15, 449517, 15, 449526, 14, 449527, 14, 449528, 17, 449529, 15, 449530, 17, 449533, 15, 449534, 14, 449535, 14, 449728, 19, 449729, 19, 449730, 18, 449734, 18, 449736, 19, 449737, 19, 449746, 18, 449750, 18, 449752, 17, 449754, 17, 449784, 17, 449786, 17, 451520, 19, 451521, 19, 451525, 16, 451527, 16, 451528, 19, 451529, 19, 451557, 16, 451559, 16, 451561, 15, 451565, 15, 451577, 15, 451581, 15, 451776, 19, 451777, 19, 451784, 19, 451785, 19, 465858, 18, 465861, 16, 465862, 18, 465863, 16, 465874, 18, 465878, 18, 465893, 16, 465895, 16, 465910, 14, 465911, 14, 465918, 14, 465919, 14, 466114, 18, 466118, 18, 466130, 18, 466134, 18, 467909, 16, 467911, 16, 467941, 16, 467943, 16, 468160, 13, 468161, 13, 468162, 13, 468163, 13, 468164, 13, 468165, 13, 468166, 13, 468167, 13, 580568, 17, 580570, 17, 580585, 15, 580589, 15, 580598, 14, 580599, 14, 580600, 17, 580601, 15, 580602, 17, 580605, 15, 580606, 14, 580607, 14, 580824, 17, 580826, 17, 580856, 17, 580858, 17, 582633, 15, 582637, 15, 582649, 15, 582653, 15, 582856, 12, 582857, 12, 582872, 12, 582873, 12, 582888, 12, 582889, 12, 582904, 12, 582905, 12, 596982, 14, 596983, 14, 596990, 14, 596991, 14, 597202, 11, 597206, 11, 597210, 11, 597214, 11, 597234, 11, 597238, 11, 597242, 11, 597246, 11, 599013, 10, 599015, 10, 599021, 10, 599023, 10, 599029, 10, 599031, 10, 599037, 10, 599039, 10, 599232, 13, 599233, 13, 599234, 13, 599235, 13, 599236, 13, 599237, 13, 599238, 13, 599239, 13, 599240, 12, 599241, 12, 599250, 11, 599254, 11, 599256, 12, 599257, 12, 599258, 11, 599262, 11, 599269, 10, 599271, 10, 599272, 12, 599273, 12, 599277, 10, 599279, 10, 599282, 11, 599285, 10, 599286, 11, 599287, 10, 599288, 12, 599289, 12, 599290, 11, 599293, 10, 599294, 11, 599295, 10 }; - - private static readonly int[][] Base2D = { - new[] { 1, 1, 0, 1, 0, 1, 0, 0, 0 }, - new[] { 1, 1, 0, 1, 0, 1, 2, 1, 1 } - }; - - private static readonly int[][] Base3D = { - new[] { 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1 }, - new[] { 2, 1, 1, 0, 2, 1, 0, 1, 2, 0, 1, 1, 3, 1, 1, 1 }, - new[] { 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 0, 2, 1, 0, 1, 2, 0, 1, 1 } - }; - - private static readonly int[][] Base4D = { - new[] { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1 }, - new[] { 3, 1, 1, 1, 0, 3, 1, 1, 0, 1, 3, 1, 0, 1, 1, 3, 0, 1, 1, 1, 4, 1, 1, 1, 1 }, - new[] { 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 2, 1, 1, 0, 0, 2, 1, 0, 1, 0, 2, 1, 0, 0, 1, 2, 0, 1, 1, 0, 2, 0, 1, 0, 1, 2, 0, 0, 1, 1 }, - new[] { 3, 1, 1, 1, 0, 3, 1, 1, 0, 1, 3, 1, 0, 1, 1, 3, 0, 1, 1, 1, 2, 1, 1, 0, 0, 2, 1, 0, 1, 0, 2, 1, 0, 0, 1, 2, 0, 1, 1, 0, 2, 0, 1, 0, 1, 2, 0, 0, 1, 1 } - }; - - private static readonly Contribution2[] Lookup2D; - private static readonly Contribution3[] Lookup3D; - private static readonly Contribution4[] Lookup4D; - - static FastSimplexNoise() - { - var contributions2D = new Contribution2[P2D.Length / 4]; - - for (int i = 0; i < P2D.Length; i += 4) - { - var baseSet = Base2D[P2D[i]]; - Contribution2 previous = null; - Contribution2 current = null; - - for (int k = 0; k < baseSet.Length; k += 3) - { - current = new Contribution2(baseSet[k], baseSet[k + 1], baseSet[k + 2]); - - if (previous == null) - { - contributions2D[i / 4] = current; - } - else - { - previous.Next = current; - } - - previous = current; - } - - current.Next = new Contribution2(P2D[i + 1], P2D[i + 2], P2D[i + 3]); - } - - Lookup2D = new Contribution2[64]; - - for (var i = 0; i < LookupPairs2D.Length; i += 2) - { - Lookup2D[LookupPairs2D[i]] = contributions2D[LookupPairs2D[i + 1]]; - } - - var contributions3D = new Contribution3[P3D.Length / 9]; - - for (int i = 0; i < P3D.Length; i += 9) - { - var baseSet = Base3D[P3D[i]]; - Contribution3 previous = null; - Contribution3 current = null; - - for (int k = 0; k < baseSet.Length; k += 4) - { - current = new Contribution3(baseSet[k], baseSet[k + 1], baseSet[k + 2], baseSet[k + 3]); - - if (previous == null) - { - contributions3D[i / 9] = current; - } - else - { - previous.Next = current; - } - - previous = current; - } - - current.Next = new Contribution3(P3D[i + 1], P3D[i + 2], P3D[i + 3], P3D[i + 4]) - { - Next = new Contribution3(P3D[i + 5], P3D[i + 6], P3D[i + 7], P3D[i + 8]) - }; - } - - Lookup3D = new Contribution3[2048]; - - for (var i = 0; i < LookupPairs3D.Length; i += 2) - { - Lookup3D[LookupPairs3D[i]] = contributions3D[LookupPairs3D[i + 1]]; - } - - var contributions4D = new Contribution4[P4D.Length / 16]; - - for (int i = 0; i < P4D.Length; i += 16) - { - var baseSet = Base4D[P4D[i]]; - Contribution4 previous = null; - Contribution4 current = null; - - for (int k = 0; k < baseSet.Length; k += 5) - { - current = new Contribution4(baseSet[k], baseSet[k + 1], baseSet[k + 2], baseSet[k + 3], baseSet[k + 4]); - if (previous == null) - { - contributions4D[i / 16] = current; - } - else - { - previous.Next = current; - } - previous = current; - } - - current.Next = new Contribution4(P4D[i + 1], P4D[i + 2], P4D[i + 3], P4D[i + 4], P4D[i + 5]) - { - Next = new Contribution4(P4D[i + 6], P4D[i + 7], P4D[i + 8], P4D[i + 9], P4D[i + 10]) - { - Next = new Contribution4(P4D[i + 11], P4D[i + 12], P4D[i + 13], P4D[i + 14], P4D[i + 15]) - } - }; - } - - Lookup4D = new Contribution4[1048576]; - - for (var i = 0; i < LookupPairs4D.Length; i += 2) - { - Lookup4D[LookupPairs4D[i]] = contributions4D[LookupPairs4D[i + 1]]; - } - } - - private static int FastFloor(double x) - { - var xi = (int)x; - return x < xi ? xi - 1 : xi; - } - - public FastSimplexNoise() : this(DateTime.UtcNow.Ticks) { } - - public FastSimplexNoise(long seed) - { - perm = new byte[256]; - perm2D = new byte[256]; - perm3D = new byte[256]; - perm4D = new byte[256]; - var source = new byte[256]; - - for (int i = 0; i < 256; i++) - { - source[i] = (byte)i; - } - - seed = seed * SEEDVAL_1 + SEEDVAL_2; - seed = seed * SEEDVAL_1 + SEEDVAL_2; - seed = seed * SEEDVAL_1 + SEEDVAL_2; - - for (int i = 255; i >= 0; i--) - { - seed = seed * SEEDVAL_1 + SEEDVAL_2; - int r = (int)((seed + 31) % (i + 1)); - - if (r < 0) - { - r += (i + 1); - } - - perm[i] = source[r]; - perm2D[i] = (byte)(perm[i] & 0x0E); - perm3D[i] = (byte)((perm[i] % 24) * 3); - perm4D[i] = (byte)(perm[i] & 0xFC); - source[r] = source[i]; - } - } - - public double Evaluate(double x, double y) - { - var stretchOffset = (x + y) * STRETCH__2_D; - var xs = x + stretchOffset; - var ys = y + stretchOffset; - - var xsb = FastFloor(xs); - var ysb = FastFloor(ys); - - var squishOffset = (xsb + ysb) * SQUISH__2_D; - var dx0 = x - (xsb + squishOffset); - var dy0 = y - (ysb + squishOffset); - - var xins = xs - xsb; - var yins = ys - ysb; - - var inSum = xins + yins; - - var hash = - (int)(xins - yins + 1) | - (int)(inSum) << 1 | - (int)(inSum + yins) << 2 | - (int)(inSum + xins) << 4; - - var c = Lookup2D[hash]; - var value = 0.0; - - while (c != null) - { - var dx = dx0 + c.Dx; - var dy = dy0 + c.Dy; - var attn = 2 - dx * dx - dy * dy; - if (attn > 0) - { - var px = xsb + c.Xsb; - var py = ysb + c.Ysb; - - var i = perm2D[(perm[px & 0xFF] + py) & 0xFF]; - var valuePart = Gradients2D[i] * dx + Gradients2D[i + 1] * dy; - - attn *= attn; - value += attn * attn * valuePart; - } - - c = c.Next; - } - - return value * NORM__2_D; - } - - public double Evaluate(double x, double y, double z) - { - var stretchOffset = (x + y + z) * STRETCH__3_D; - var xs = x + stretchOffset; - var ys = y + stretchOffset; - var zs = z + stretchOffset; - - var xsb = FastFloor(xs); - var ysb = FastFloor(ys); - var zsb = FastFloor(zs); - - var squishOffset = (xsb + ysb + zsb) * SQUISH__3_D; - var dx0 = x - (xsb + squishOffset); - var dy0 = y - (ysb + squishOffset); - var dz0 = z - (zsb + squishOffset); - - var xins = xs - xsb; - var yins = ys - ysb; - var zins = zs - zsb; - - var inSum = xins + yins + zins; - - var hash = - (int)(yins - zins + 1) | - (int)(xins - yins + 1) << 1 | - (int)(xins - zins + 1) << 2 | - (int)inSum << 3 | - (int)(inSum + zins) << 5 | - (int)(inSum + yins) << 7 | - (int)(inSum + xins) << 9; - - var c = Lookup3D[hash]; - var value = 0.0; - - while (c != null) - { - var dx = dx0 + c.Dx; - var dy = dy0 + c.Dy; - var dz = dz0 + c.Dz; - var attn = 2 - dx * dx - dy * dy - dz * dz; - - if (attn > 0) - { - var px = xsb + c.Xsb; - var py = ysb + c.Ysb; - var pz = zsb + c.Zsb; - - var i = perm3D[(perm[(perm[px & 0xFF] + py) & 0xFF] + pz) & 0xFF]; - var valuePart = Gradients3D[i] * dx + Gradients3D[i + 1] * dy + Gradients3D[i + 2] * dz; - - attn *= attn; - value += attn * attn * valuePart; - } - - c = c.Next; - } - return value * NORM__3_D; - } - - public double Evaluate(double x, double y, double z, double w) - { - var stretchOffset = (x + y + z + w) * STRETCH__4_D; - var xs = x + stretchOffset; - var ys = y + stretchOffset; - var zs = z + stretchOffset; - var ws = w + stretchOffset; - - var xsb = FastFloor(xs); - var ysb = FastFloor(ys); - var zsb = FastFloor(zs); - var wsb = FastFloor(ws); - - var squishOffset = (xsb + ysb + zsb + wsb) * SQUISH__4_D; - var dx0 = x - (xsb + squishOffset); - var dy0 = y - (ysb + squishOffset); - var dz0 = z - (zsb + squishOffset); - var dw0 = w - (wsb + squishOffset); - - var xins = xs - xsb; - var yins = ys - ysb; - var zins = zs - zsb; - var wins = ws - wsb; - - var inSum = xins + yins + zins + wins; - - var hash = - (int)(zins - wins + 1) | - (int)(yins - zins + 1) << 1 | - (int)(yins - wins + 1) << 2 | - (int)(xins - yins + 1) << 3 | - (int)(xins - zins + 1) << 4 | - (int)(xins - wins + 1) << 5 | - (int)inSum << 6 | - (int)(inSum + wins) << 8 | - (int)(inSum + zins) << 11 | - (int)(inSum + yins) << 14 | - (int)(inSum + xins) << 17; - - var c = Lookup4D[hash]; - var value = 0.0; - - while (c != null) - { - var dx = dx0 + c.Dx; - var dy = dy0 + c.Dy; - var dz = dz0 + c.Dz; - var dw = dw0 + c.Dw; - var attn = 2 - dx * dx - dy * dy - dz * dz - dw * dw; - - if (attn > 0) - { - var px = xsb + c.Xsb; - var py = ysb + c.Ysb; - var pz = zsb + c.Zsb; - var pw = wsb + c.Wsb; - - var i = perm4D[(perm[(perm[(perm[px & 0xFF] + py) & 0xFF] + pz) & 0xFF] + pw) & 0xFF]; - var valuePart = Gradients4D[i] * dx + Gradients4D[i + 1] * dy + Gradients4D[i + 2] * dz + Gradients4D[i + 3] * dw; - - attn *= attn; - value += attn * attn * valuePart; - } - - c = c.Next; - } - - return value * NORM__4_D; - } - - private class Contribution2 - { - public readonly double Dx; - public readonly double Dy; - public readonly int Xsb; - public readonly int Ysb; - public Contribution2 Next; - - public Contribution2(double multiplier, int xsb, int ysb) - { - Dx = -xsb - multiplier * SQUISH__2_D; - Dy = -ysb - multiplier * SQUISH__2_D; - this.Xsb = xsb; - this.Ysb = ysb; - } - } - - private class Contribution3 - { - public readonly double Dx; - public readonly double Dy; - public readonly double Dz; - public readonly int Xsb; - public readonly int Ysb; - public readonly int Zsb; - public Contribution3 Next; - - public Contribution3(double multiplier, int xsb, int ysb, int zsb) - { - Dx = -xsb - multiplier * SQUISH__3_D; - Dy = -ysb - multiplier * SQUISH__3_D; - Dz = -zsb - multiplier * SQUISH__3_D; - this.Xsb = xsb; - this.Ysb = ysb; - this.Zsb = zsb; - } - } - - private class Contribution4 - { - public readonly double Dx; - public readonly double Dy; - public readonly double Dz; - public readonly double Dw; - public readonly int Xsb; - public readonly int Ysb; - public readonly int Zsb; - public readonly int Wsb; - public Contribution4 Next; - - public Contribution4(double multiplier, int xsb, int ysb, int zsb, int wsb) - { - Dx = -xsb - multiplier * SQUISH__4_D; - Dy = -ysb - multiplier * SQUISH__4_D; - Dz = -zsb - multiplier * SQUISH__4_D; - Dw = -wsb - multiplier * SQUISH__4_D; - this.Xsb = xsb; - this.Ysb = ysb; - this.Zsb = zsb; - this.Wsb = wsb; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs.meta deleted file mode 100644 index 18c0e01b1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/FastSimplexNoise.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 90c662357be54bb9a5c4ce9047ba073b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement.meta b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement.meta deleted file mode 100644 index 650e6b5ec..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 075ac3d1f48798f428e8ae0c24fc4495 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs deleted file mode 100644 index 196855940..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.GameObjectManagement -{ - /// - /// An abstract class used by the GameObjectPool for creating and recycling game objects. - /// - public abstract class GameObjectCreator - { - /// - /// Creates a GameObject for the GameObjectPool. The position and rotation of the GameObject - /// is set by the GameObjectPool when GetGameObject is called. - /// - /// An instantiated GameObject. - public abstract GameObject Instantiate(); - - /// - /// Called when the GameObject is about to be recycled by the GameObjectPool. This allows you to potentially free - /// up any resources before it is deactivated by the GameObjectPool. If the GameObject has a component that implements - /// the IGameObjectCreatorHandler interface, it will call its PrepareForRecycle function. - /// - /// The GameObject that is about to be recycled. - public virtual void PrepareForRecycle(GameObject obj) - { - var components = obj.GetComponents(); - foreach (var component in components) - { - if (component is IGameObjectCreatorListener) - { - (component as IGameObjectCreatorListener).PrepareForRecycle(); - } - } - } - - /// - /// Called before the GameObject's position and rotation are set (as well as its active state) by the GameObjectPool - /// when GetGameObject is called. If the GameObject has a component that implements - /// the IGameObjectCreatorHandler interface, it will call its PrepareForUse function. - /// - /// The GameObject that is about to be used. - public virtual void PrepareForUse(GameObject obj) - { - var components = obj.GetComponents(); - foreach (var component in components) - { - if (component is IGameObjectCreatorListener) - { - (component as IGameObjectCreatorListener).PrepareForUse(); - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs.meta deleted file mode 100644 index 7c848c911..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectCreator.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9e26ff0bd9425254caccab5080151659 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs deleted file mode 100644 index c2d776a10..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Utilities.GameObjectManagement -{ - /// - /// Used to recycle Unity GameObjects. When ever you create GameObjects during runtime some overhead is incurred. Additionally - /// memory can become highly fragment as well as possibly causing the garbage collector to perform a collection (which is also - /// a performance hit). This is especially prevalent when you are spawning and destroying GameObjects of the same type - /// very quickly in large quantities (such as bullets). The GameObject pool allows you to recycle objects so they can be - /// reused upon request. - /// - /// - /// Setup code for using the generic prefab instance creator: - /// - /// GameObjectPool pool = new GameObjectPool(); - /// GenericPrefabInstanceCreator creator = new GenericPrefabInstanceCreator(); - /// creator.Prefab = MyProjectilePrefab; - /// pool.AddCreator(creator, "projectile1"); - /// - /// Requesting a game object from the pool: - /// - /// var myProjectileObj = pool.GetGameObject("projectile1"); - /// - /// Recycling the game object: - /// - /// pool.Recycle(myProjectileObj, "projectile1"); - /// - /// - /// Note that the GameObjectPool is not thread safe. It should only be used in Unity's main thread. - public class GameObjectPool - { - /// - /// Initializes a new instance of the class. - /// - public GameObjectPool() - { - _pool = new Dictionary>(); - _creators = new Dictionary(); - } - - /// - /// GameObjects are created by an implementation of IGameObjectCreator in this GameObjectPool. This - /// method adds your implementation of the IGameObjectCreator to use for objects that share a specific - /// object identifier. - /// - /// The implementation of IGameObjectCreator to use for GameObjects associated with the objectIdentifier. - /// The identifier you want to use to identify the kind of game objects you want to create. - public void AddCreator(GameObjectCreator creator, string objectIdentifier) - { - _creators.Add(objectIdentifier, creator); - } - - /// - /// Adds a game object under a specific object identifier to the GameObjectPool. - /// - /// The GameObject to recycle. - /// The identifier you want to use to identify the kind of game object you are recycling. - public void Recycle(GameObject gameObject, string objectIdentifier) - { - EnsureListForObjectID(objectIdentifier); - - if (_creators.ContainsKey(objectIdentifier)) - { - _creators[objectIdentifier].PrepareForRecycle(gameObject); - } - - gameObject.SetActive(false); - _pool[objectIdentifier].Enqueue(gameObject); - } - - /// - /// Gets a game object for a specific object identifier from the GameObjectPool. If the kind of game object - /// being requested is not in the pool, then it will get created by a IGameObjectCreator that was - /// added to the pool for handling objects associated with the objectIdentifier. - /// - /// The identifier you want to use to identify the kind of game object you want to retrieve. - /// The position that the game object should have before it is activated. - /// The rotation that the game object should have before it is activated. - public GameObject GetGameObject(string objectIdentifier, Vector3 position, Quaternion rotation) - { - GameObject obj = null; - GameObjectCreator creator = null; - if (_creators.ContainsKey(objectIdentifier)) - { - creator = _creators[objectIdentifier]; - } - else - { - Debug.Log("Unable to create a GameObject for object ID '" + objectIdentifier + "' because no IGameObjectCreator implementation can be found for it."); - return null; - } - - EnsureListForObjectID(objectIdentifier); - - Queue objects = _pool[objectIdentifier]; - - if (objects.Count > 0) - { - obj = objects.Dequeue(); - } - else - { - obj = creator.Instantiate(); - } - - if (obj != null) - { - creator.PrepareForUse(obj); - obj.SetActive(true); - } - - return obj; - } - - /// - /// Same as calling GetGameObject(objectIdentifier, Vector3.zero, Quaternion.identity) - /// - /// The identifier you want to use to identify the kind of game object you want to retrieve. - public GameObject GetGameObject(string objectIdentifier) - { - return GetGameObject(objectIdentifier, Vector3.zero, Quaternion.identity); - } - - /// - /// Gets the number of game objects in the pool for a specific identifier. - /// - public int Count(string objectIdentifier) - { - EnsureListForObjectID(objectIdentifier); - - return _pool[objectIdentifier].Count; - } - - /// - /// Removes and destroys all game objects in the pool associated with the specified objectIdentifier. - /// - /// The identifier you want to use to identify the kind of game objects to remove from the pool. - public void EmptyPool(string objectIdentifier) - { - EnsureListForObjectID(objectIdentifier); - - Queue objects = _pool[objectIdentifier]; - foreach (GameObject obj in objects) - { - GameObject.Destroy(obj); - } - objects.Clear(); - } - - /// - /// Removes and destroys all game objects in the pool. - /// - public void EmptyPool() - { - foreach (string objectID in _pool.Keys) - { - EmptyPool(objectID); - } - _pool.Clear(); - } - - #region Private - - /// - /// The pool for game objects - /// - private Dictionary> _pool; - - /// - /// All creators that this pool can handle by identifier - /// - private Dictionary _creators; - - /// - /// Ensures there is a list for the specified identifier - /// - private void EnsureListForObjectID(string objectIdentifier) - { - if (!_pool.ContainsKey(objectIdentifier)) - { - _pool.Add(objectIdentifier, new Queue()); - } - } - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs.meta deleted file mode 100644 index 83e53774b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GameObjectPool.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: acd60cb61e2609d44a2d25cb5a5a2ec9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs deleted file mode 100644 index 0a121d889..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.GameObjectManagement -{ - /// - /// Creator for making prefab instances - /// - /// - public class GenericPrefabInstanceCreator : GameObjectCreator - { - /// - /// The prefab to instantiate - /// - public GameObject Prefab; - - /// - /// Creates a GameObject for the GameObjectPool. The position and rotation of the GameObject - /// is set by the GameObjectPool when GetGameObject is called. - /// - /// - /// An instantiated GameObject. - /// - public override GameObject Instantiate() - { - return GameObject.Instantiate(Prefab); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs.meta deleted file mode 100644 index ca1afcd28..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/GenericPrefabInstanceCreator.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 528d1c667124faa4b8e9b20cdef68b1c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs deleted file mode 100644 index 7f5e99635..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.GameObjectManagement -{ - /// - /// Optional interface that GameObjects (instantiated and recycled by a - /// GameObjectPool) can implement in order to handle preparation for - /// recycling and reuse. - /// - public interface IGameObjectCreatorListener - { - /// - /// Called when the GameObject is about to be recycled by the GameObjectPool. This allows you to potentially free - /// up any resources before it is deactivated by the GameObjectPool. - /// - void PrepareForRecycle(); - - /// - /// Called before the GameObject's position and rotation are set (as well as its active state) by the GameObjectPool - /// when GetGameObject is called. - /// - void PrepareForUse(); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs.meta deleted file mode 100644 index 15d90024e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/GameObjectManagement/IGameObjectCreatorListener.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 104552d6b436fbe468a6c10cef817e76 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf.meta deleted file mode 100644 index 997a0b714..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 15e57d6b33aaeed4883021151901ca51 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs deleted file mode 100644 index 636454468..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Gltf.Importers")] -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs.meta deleted file mode 100644 index 084a57820..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d234f308ea886c14cb4245b3bdb97390 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef deleted file mode 100644 index 9ccb76b57..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Gltf", - "references": [ - "Microsoft.MixedReality.Toolkit.Async" - ], - "optionalUnityReferences": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef.meta deleted file mode 100644 index 3ce078a40..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/MRTK.Gltf.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: bf416a72c3a8e8040a500bf05cc17d5e -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema.meta deleted file mode 100644 index 1ce0edd3e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2393b5961dc976642bf6e7461c1a8752 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions.meta deleted file mode 100644 index 6cd0b5006..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b4e59a170f01f18438ecb94f7c9ccdab -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs deleted file mode 100644 index a8644032a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema.Extensions -{ - public class GltfExtension - { - public string ElementName; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs.meta deleted file mode 100644 index e6814b3cf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/GltfExtension.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f1af1bef5c2af7b4eab3083790463ebe -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs deleted file mode 100644 index c6dce5ca0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema.Extensions -{ - [Serializable] - public class KHR_Materials_PbrSpecularGlossiness : GltfExtension - { - public float[] diffuseFactor; - public GltfTextureInfo diffuseTexture; - public float[] specularFactor; - public float glossinessFactor; - public GltfTextureInfo specularGlossinessTexture; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs.meta deleted file mode 100644 index dd4401fb9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/Extensions/KHR_Materials_PbrSpecularGlossiness.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 73ef3270dae2a1f41b63da4e2771c2da -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs deleted file mode 100644 index 4ead71d9b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.schema.json - /// - [Serializable] - public class GltfAccessor : GltfChildOfRootProperty - { - /// - /// The index of the bufferView. - /// If this is undefined, look in the sparse object for the index and value buffer views. - /// - public int bufferView = -1; - - /// - /// The offset relative to the start of the bufferView in bytes. - /// This must be a multiple of the size of the component datatype. - /// - public int byteOffset = -1; - - /// - /// The datatype of components in the attribute. - /// All valid values correspond to WebGL enums. - /// The corresponding typed arrays are: `Int8Array`, `Uint8Array`, `Int16Array`, - /// `Uint16Array`, `Uint32Array`, and `Float32Array`, respectively. - /// 5125 (UNSIGNED_INT) is only allowed when the accessor contains indices - /// i.e., the accessor is only referenced by `primitive.indices`. - /// - public GltfComponentType componentType; - - /// - /// Specifies whether integer data values should be normalized - /// (`true`) to [0, 1] (for unsigned types) or [-1, 1] (for signed types), - /// or converted directly (`false`) when they are accessed. - /// Must be `false` when accessor is used for animation data. - /// - public bool normalized; - - /// - /// The number of attributes referenced by this accessor, not to be confused - /// with the number of bytes or number of components. - /// 1 - /// - public int count = 1; - - /// - /// Specifies if the attribute is a scalar, vector, or matrix, - /// and the number of elements in the vector or matrix. - /// - public string type; - - /// - /// Maximum value of each component in this attribute. - /// Both min and max arrays have the same length. - /// The length is determined by the value of the type property; - /// it can be 1, 2, 3, 4, 9, or 16. - /// - /// When `componentType` is `5126` (FLOAT) each array value must be stored as - /// double-precision JSON number with numerical value which is equal to - /// buffer-stored single-precision value to avoid extra runtime conversions. - /// - /// `normalized` property has no effect on array values: they always correspond - /// to the actual values stored in the buffer. When accessor is sparse, this - /// property must contain max values of accessor data with sparse substitution - /// applied. - /// 1 - /// 16 - /// - public float[] max; - - /// - /// Minimum value of each component in this attribute. - /// Both min and max arrays have the same length. The length is determined by - /// the value of the type property; it can be 1, 2, 3, 4, 9, or 16. - /// - /// When `componentType` is `5126` (FLOAT) each array value must be stored as - /// double-precision JSON number with numerical value which is equal to - /// buffer-stored single-precision value to avoid extra runtime conversions. - /// - /// `normalized` property has no effect on array values: they always correspond - /// to the actual values stored in the buffer. When accessor is sparse, this - /// property must contain min values of accessor data with sparse substitution - /// applied. - /// 1 - /// 16 - /// - public float[] min; - - /// - /// Sparse storage of attributes that deviate from their initialization value. - /// - public GltfAccessorSparse sparse; - - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/bufferView.schema.json - /// - public GltfBufferView BufferView { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs.meta deleted file mode 100644 index 14c684801..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessor.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1dbee909e3ecffa4d857b0911f501c9b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs deleted file mode 100644 index 2a8450dc6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Specifies if the attribute is a scalar, vector, or matrix. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.schema.json - /// - public enum GltfAccessorAttributeType - { - SCALAR, - VEC2, - VEC3, - VEC4, - MAT2, - MAT3, - MAT4 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs.meta deleted file mode 100644 index a1a8873d3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorAttributeType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cb4c99d8831590043be54ad80cb2548c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs deleted file mode 100644 index 9cc13f49c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Sparse storage of attributes that deviate from their initialization value. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.sparse.schema.json - /// - [Serializable] - public class GltfAccessorSparse : GltfProperty - { - /// - /// Number of entries stored in the sparse array. - /// 1 - /// - public int count; - - /// - /// Index array of size `count` that points to those accessor attributes that - /// deviate from their initialization value. Indices must strictly increase. - /// - public GltfAccessorSparseIndices indicies; - - /// - /// "Array of size `count` times number of components, storing the displaced - /// accessor attributes pointed by `indices`. Substituted values must have - /// the same `componentType` and number of components as the base accessor. - /// - public GltfAccessorSparseValues values; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs.meta deleted file mode 100644 index 9406beec7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparse.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 327c8f51abfb40647b606668ceb59451 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs deleted file mode 100644 index 401ed1625..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Indices of those attributes that deviate from their initialization value. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.sparse.indices.schema.json - /// - [Serializable] - public class GltfAccessorSparseIndices : GltfProperty - { - /// - /// The index of the bufferView with sparse indices. - /// Referenced bufferView can't have ARRAY_BUFFER or ELEMENT_ARRAY_BUFFER target. - /// - public int bufferView; - - /// - /// The offset relative to the start of the bufferView in bytes. Must be aligned. - /// 0 - /// - public int byteOffset; - - /// - /// The indices data type. Valid values correspond to WebGL enums: - /// `5121` (UNSIGNED_BYTE) - /// `5123` (UNSIGNED_SHORT) - /// `5125` (UNSIGNED_INT) - /// - public GltfComponentType ComponentType; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs.meta deleted file mode 100644 index 155e2005b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseIndices.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8c1fadf9ddffec0489c6d09ced60c394 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs deleted file mode 100644 index 2f0813244..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.sparse.values.schema.json - /// - [Serializable] - public class GltfAccessorSparseValues : GltfProperty - { - /// - /// The index of the bufferView with sparse values. - /// Referenced bufferView can't have ARRAY_BUFFER or ELEMENT_ARRAY_BUFFER target. - /// - public int bufferView = -1; - - /// - /// The offset relative to the start of the bufferView in bytes. Must be aligned. - /// 0 - /// - public int byteOffset = -1; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs.meta deleted file mode 100644 index d75770be4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAccessorSparseValues.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8e2c15b4893346e4fa0747be4eaac0e0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs deleted file mode 100644 index b9c1b8754..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// The alpha rendering mode of the material. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/material.schema.json - /// - public enum GltfAlphaMode - { - OPAQUE, - MASK, - BLEND - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs.meta deleted file mode 100644 index 462e412bd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAlphaMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f277f6cac6fbc424eb2b9d865afc242c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs deleted file mode 100644 index b36167a1d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A keyframe animation. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.schema.json - /// - [Serializable] - public class GltfAnimation : GltfChildOfRootProperty - { - /// - /// An array of channels, each of which targets an animation's sampler at a - /// node's property. Different channels of the same animation can't have equal - /// targets. - /// - public GltfAnimationChannel[] channels; - - /// - /// An array of samplers that combines input and output accessors with an - /// interpolation algorithm to define a keyframe graph (but not its target). - /// - public GltfAnimationSampler[] samplers; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs.meta deleted file mode 100644 index 3dd0780ec..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimation.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e4a718926c29e00488984a9edd70c45b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs deleted file mode 100644 index 14ee8c87a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Targets an animation's sampler at a node's property. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.channel.schema.json - /// - [Serializable] - public class GltfAnimationChannel : GltfProperty - { - /// - /// The index of a sampler in this animation used to compute the value for the - /// target, e.g., a node's translation, rotation, or scale (TRS). - /// - public int sampler; - - /// - /// The index of the node and TRS property to target. - /// - public GltfAnimationChannelTarget target; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs.meta deleted file mode 100644 index e1de4d7fb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 36d9f86b50973c74bb9b4fa12c38938e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs deleted file mode 100644 index 7a16699bd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// The name of the node's TRS property to modify, or the weights of the Morph Target it instantiates. - /// For the translation property, the values that are provided by the sampler are the translation along the x, y, and z axes. - /// For the rotation property, the values are a quaternion in the order (x, y, z, w), where w is the scalar. - /// For the scale property, the values are the scaling factors along the x, y, and z axes. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.channel.target.schema.json - /// - public enum GltfAnimationChannelPath - { - translation, - rotation, - scale, - weights - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs.meta deleted file mode 100644 index f9bea7b33..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelPath.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0b04272c39087f24eb6c206596effd71 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs deleted file mode 100644 index acab593ab..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// The index of the node and TRS property that an animation channel targets. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.channel.target.schema.json - /// - [Serializable] - public class GltfAnimationChannelTarget : GltfProperty - { - /// - /// The index of the node to target. - /// - public int node = -1; - - /// - /// The name of the node's TRS property to modify. - /// - public GltfAnimationChannelPath path; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs.meta deleted file mode 100644 index 673e545a5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationChannelTarget.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 38d069f7b6eebce4fa4fec203c391043 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs deleted file mode 100644 index b7659665a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Combines input and output accessors with an interpolation algorithm to define a keyframe graph (but not its target). - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.sampler.schema.json - /// - [Serializable] - public class GltfAnimationSampler : GltfProperty - { - /// - /// The index of an accessor containing keyframe input values, e.G., time. - /// That accessor must have componentType `FLOAT`. The values represent time in - /// seconds with `time[0] >= 0.0`, and strictly increasing values, - /// i.e., `time[n + 1] > time[n]` - /// - public int input; - - /// - /// Interpolation algorithm. When an animation targets a node's rotation, - /// and the animation's interpolation is `\"LINEAR\"`, spherical linear - /// interpolation (slerp) should be used to interpolate quaternions. When - /// interpolation is `\"STEP\"`, animated value remains constant to the value - /// of the first point of the timeframe, until the next timeframe. - /// - public GltfInterpolationType interpolation = GltfInterpolationType.LINEAR; - - /// - /// The index of an accessor, containing keyframe output values. Output and input - /// accessors must have the same `count`. When sampler is used with TRS target, - /// output accessors componentType must be `FLOAT`. - /// - public int output; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs.meta deleted file mode 100644 index 17bfec68d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAnimationSampler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7383430913d4c21498bc8ea3e1cdda10 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs deleted file mode 100644 index a00074e98..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Metadata about the glTF asset. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/asset.schema.json - /// - [Serializable] - public class GltfAssetInfo : GltfProperty - { - /// - /// A copyright message suitable for display to credit the content creator. - /// - public string copyright; - - /// - /// Tool that generated this glTF model. Useful for debugging. - /// - public string generator; - - /// - /// The glTF version. - /// - public string version; - - /// - /// The minimum glTF version that this asset targets. - /// - public string minVersion; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs.meta deleted file mode 100644 index 09b55dbc8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfAssetInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b7ecd6770cd25d549b7d883fe0af40aa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs deleted file mode 100644 index 5ee79f6f4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A buffer points to binary geometry, animation, or skins. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/buffer.schema.json - /// - [Serializable] - public class GltfBuffer : GltfChildOfRootProperty - { - /// - /// The uri of the buffer. - /// Relative paths are relative to the .gltf file. - /// Instead of referencing an external file, the uri can also be a data-uri. - /// - public string uri; - - /// - /// The length of the buffer in bytes. - /// 0 - /// - public int byteLength = 0; - - public byte[] BufferData { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs.meta deleted file mode 100644 index c49f593a1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBuffer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4fb0ab3bb58a2ee4e8df713d9be7674e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs deleted file mode 100644 index b24cf78a7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A view into a buffer generally representing a subset of the buffer. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/bufferView.schema.json - /// - [Serializable] - public class GltfBufferView : GltfChildOfRootProperty - { - /// - /// The index of the buffer. - /// - public int buffer = -1; - - /// - /// The offset into the buffer in bytes. - /// 0 - /// - public int byteOffset = 0; - - /// - /// The length of the bufferView in bytes. - /// 0 - /// - public int byteLength = 0; - - /// - /// The stride, in bytes, between vertex attributes or other interleavable data. - /// When this is zero, data is tightly packed. - /// 0 - /// 255 - /// - public int byteStride = 0; - - /// - /// The target that the WebGL buffer should be bound to. - /// All valid values correspond to WebGL enums. - /// When this is not provided, the bufferView contains animation or skin data. - /// - public GltfBufferViewTarget target = GltfBufferViewTarget.None; - - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/buffer.schema.json - /// - public GltfBuffer Buffer { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs.meta deleted file mode 100644 index ca91ed99d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 32e0ed48cfb21494bbd051679d65dc53 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs deleted file mode 100644 index e1c31f0f8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// The target that the GPU buffer should be bound to. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/bufferView.schema.json - /// - public enum GltfBufferViewTarget - { - None = 0, - ArrayBuffer = 34962, - ElementArrayBuffer = 34963, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs.meta deleted file mode 100644 index 40e673dd4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfBufferViewTarget.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 644b4097602bf16429980a419338fb94 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs deleted file mode 100644 index eb8522095..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A camera's projection. A node can reference a camera to apply a transform - /// to place the camera in the scene - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/camera.schema.json - /// - [Serializable] - public class GltfCamera : GltfChildOfRootProperty - { - /// - /// An orthographic camera containing properties to create an orthographic - /// projection matrix. - /// - public GltfCameraOrthographic orthographic; - - /// - /// A perspective camera containing properties to create a perspective - /// projection matrix. - /// - public GltfCameraPerspective perspective; - - /// - /// Specifies if the camera uses a perspective or orthographic projection. - /// Based on this, either the camera's `perspective` or `orthographic` property - /// will be defined. - /// - public GltfCameraType type; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs.meta deleted file mode 100644 index bcdb22164..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCamera.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9fbdabf15988cbf4f8eb1d91bdf92075 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs deleted file mode 100644 index 67f656934..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// An orthographic camera containing properties to create an orthographic - /// projection matrix. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/camera.orthographic.schema.json - /// - [Serializable] - public class GltfCameraOrthographic : GltfProperty - { - /// - /// The floating-point horizontal magnification of the view. - /// - public double xMag; - - /// - /// The floating-point vertical magnification of the view. - /// - public double yMag; - - /// - /// The floating-point distance to the far clipping plane. - /// - public double zFar; - - /// - /// The floating-point distance to the near clipping plane. - /// - public double zNear; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs.meta deleted file mode 100644 index 2c84cb59f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraOrthographic.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5dd1d22bb5168ab4eaa45e59c8d8eb0e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs deleted file mode 100644 index cac7a3846..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A perspective camera containing properties to create a perspective projection - /// matrix. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/camera.perspective.schema.json - /// - [Serializable] - public class GltfCameraPerspective : GltfProperty - { - /// - /// The floating-point aspect ratio of the field of view. - /// When this is undefined, the aspect ratio of the canvas is used. - /// 0.0 - /// - public double aspectRatio; - - /// - /// The floating-point vertical field of view in radians. - /// 0.0 - /// - public double yFov; - - /// - /// The floating-point distance to the far clipping plane. When defined, - /// `zfar` must be greater than `znear`. - /// If `zfar` is undefined, runtime must use infinite projection matrix. - /// 0.0 - /// - public double zFar; - - /// - /// The floating-point distance to the near clipping plane. - /// 0.0 - /// - public double zNear; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs.meta deleted file mode 100644 index 670d8298d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraPerspective.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 80477d2707d751c4eadd973eea80c6ba -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs deleted file mode 100644 index 91e002ff8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Specifies if the camera uses a perspective or orthographic projection. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/camera.schema.json - /// - public enum GltfCameraType - { - perspective, - orthographic - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs.meta deleted file mode 100644 index 3a41a86dc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfCameraType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9cb0f8b6108c037498d6bba612dee119 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs deleted file mode 100644 index ec4adfa3d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/glTFChildOfRootProperty.schema.json - /// - [Serializable] - public class GltfChildOfRootProperty : GltfProperty - { - /// - /// The user-defined name of this object. - /// This is not necessarily unique, e.g., an accessor and a buffer could have the same name, - /// or two accessors could even have the same name. - /// - public string name; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs.meta deleted file mode 100644 index 1cddb7b82..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfChildOfRootProperty.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 19253b0e88b04c2418e3527b8d1cdc6c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs deleted file mode 100644 index e77c54b9b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.schema.json:componentType - /// The datatype of components in the attribute. All valid values correspond to WebGL enums. - /// The corresponding typed arrays are 'Int8Array', 'Uint8Array', 'Int16Array', 'Uint16Array', 'Uint32Array', and 'Float32Array', respectively. - /// 5125 (UNSIGNED_INT) is only allowed when the accessor contains indices, i.e., the accessor is only referenced by 'primitive.indices'. - /// - public enum GltfComponentType - { - Byte = 5120, - UnsignedByte = 5121, - Short = 5122, - UnsignedShort = 5123, - UnsignedInt = 5125, - Float = 5126 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs.meta deleted file mode 100644 index 7f3c771a2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfComponentType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 50ad37bab1e556d468aa391a775f3d2a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs deleted file mode 100644 index be0af8f77..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// The type of primitives to render. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.primitive.schema.json - /// - public enum GltfDrawMode - { - Points = 0, - Lines = 1, - LineLoop = 2, - LineStrip = 3, - Triangles = 4, - TriangleStrip = 5, - TriangleFan = 6 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs.meta deleted file mode 100644 index cf541c454..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfDrawMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 44cbcc90508065d4791c3a078af55bb9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs deleted file mode 100644 index 8b413146e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Image data used to create a texture. Image can be referenced by URI or - /// `bufferView` index. `mimeType` is required in the latter case. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/image.schema.json - /// - [Serializable] - public class GltfImage : GltfChildOfRootProperty - { - #region Serialized Fields - - /// - /// The uri of the image. Relative paths are relative to the .gltf file. - /// Instead of referencing an external file, the uri can also be a data-uri. - /// The image format must be jpg, png, bmp, or gif. - /// - public string uri; - - /// - /// The image's MIME type. - /// 1 - /// - public string mimeType; - - /// - /// The index of the bufferView that contains the image. - /// Use this instead of the image's uri property. - /// - public int bufferView; - - #endregion Serialized Fields - - /// - /// Unity Texture2D wrapper for the GltfImage - /// - public Texture2D Texture { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs.meta deleted file mode 100644 index e21a2b2e9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfImage.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7d8ef501106716f4e9ee6f527a07b660 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs deleted file mode 100644 index 8712dd045..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Interpolation algorithm. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.sampler.schema.json - /// - public enum GltfInterpolationType - { - LINEAR, - STEP, - CATMULLROMSPLINE, - CUBICSPLINE - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs.meta deleted file mode 100644 index 2327c2196..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfInterpolationType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 523bfba2d5f91c246b6eb1cc367a3c2a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs deleted file mode 100644 index fe53d5718..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Magnification filter mode. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json - /// - public enum GltfMagnificationFilterMode - { - None = 0, - Nearest = 9728, - Linear = 9729, - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs.meta deleted file mode 100644 index 1b9b8aaeb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMagnificationFilterMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0c0c458ed106ffd488ae8e4553b5b12e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs deleted file mode 100644 index 694428785..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// The material appearance of a primitive. - /// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0/schema - /// - [Serializable] - public class GltfMaterial : GltfChildOfRootProperty - { - /// - /// A set of parameter values that are used to define the metallic-roughness - /// material model from Physically-Based Rendering (PBR) methodology. - /// - public GltfPbrMetallicRoughness pbrMetallicRoughness; - - /// - /// A set of parameter values used to light flat-shaded materials - /// - public GltfMaterialCommonConstant commonConstant; - - /// - /// A tangent space normal map. Each texel represents the XYZ components of a - /// normal vector in tangent space. - /// - public GltfNormalTextureInfo normalTexture; - - /// - /// The occlusion map is a greyscale texture, with white indicating areas that - /// should receive full indirect lighting and black indicating no indirect - /// lighting. - /// - public GltfOcclusionTextureInfo occlusionTexture; - - /// - /// The emissive map controls the color and intensity of the light being emitted - /// by the material. This texture contains RGB components in sRGB color space. - /// If a fourth component (A) is present, it is ignored. - /// - public GltfTextureInfo emissiveTexture; - - /// - /// The RGB components of the emissive color of the material. - /// If an emissiveTexture is specified, this value is multiplied with the texel - /// values. - /// - /// 0.0 - /// 1.0 - /// - /// 3 - /// 3 - /// - public float[] emissiveFactor = { 0f, 0f, 0f, 0f }; - - /// - /// The material's alpha rendering mode enumeration specifying the interpretation of the - /// alpha value of the main factor and texture. In `OPAQUE` mode, the alpha value is - /// ignored and the rendered output is fully opaque. In `MASK` mode, the rendered output - /// is either fully opaque or fully transparent depending on the alpha value and the - /// specified alpha cutoff value. In `BLEND` mode, the alpha value is used to composite - /// the source and destination areas. The rendered output is combined with the background - /// using the normal painting operation (i.e. the Porter and Duff over operator). - /// - public string alphaMode; - - /// - /// Specifies the cutoff threshold when in `MASK` mode. If the alpha value is greater than - /// or equal to this value then it is rendered as fully opaque, otherwise, it is rendered - /// as fully transparent. This value is ignored for other modes. - /// - public double alphaCutoff = 0.5f; - - /// - /// Specifies whether the material is double sided. When this value is false, back-face - /// culling is enabled. When this value is true, back-face culling is disabled and double - /// sided lighting is enabled. The back-face must have its normals reversed before the - /// lighting equation is evaluated. - /// - public bool doubleSided; - - /// - /// Unity Material wrapper for the GltfMaterial - /// - public Material Material { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs.meta deleted file mode 100644 index df287fdc5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterial.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3c48a0efc4e7b40408fe045237e3fd76 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs deleted file mode 100644 index ac3bd4efd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - [Serializable] - public class GltfMaterialCommonConstant : GltfProperty - { - // Note: GltfMaterialCommonConstants aren't currently used but exist for deserializing jsons. - // These values would influence properties in Unity -> Window -> Rendering -> Light Settings if used. - - /// - /// Used to scale the ambient light contributions to this material - /// - public float[] ambientFactor; - - /// - /// Texture used to store pre-computed direct lighting - /// - public GltfNormalTextureInfo lightmapTexture; - - /// - /// Scale factor for the lightmap texture - /// - public float[] lightmapFactor; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs.meta deleted file mode 100644 index cb1470083..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMaterialCommonConstant.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 91c27f4fcad64344699409332522ed26 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs deleted file mode 100644 index f43be7f8c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A set of primitives to be rendered. A node can contain one or more meshes. - /// A node's transform places the mesh in the scene. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.schema.json - /// - [Serializable] - public class GltfMesh : GltfChildOfRootProperty - { - /// - /// An array of primitives, each defining geometry to be rendered with - /// a material. - /// 1 - /// - public GltfMeshPrimitive[] primitives; - - /// - /// Array of weights to be applied to the Morph Targets. - /// 0 - /// - public double[] weights; - - /// - /// Unity Mesh wrapper for the GltfMesh - /// - public Mesh Mesh { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs.meta deleted file mode 100644 index 71c61648e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMesh.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 13f3358976adb70499a7d45e9766b77b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs deleted file mode 100644 index 33d9dbbef..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Geometry to be rendered with the given material. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.primitive.schema.json - /// - [Serializable] - public class GltfMeshPrimitive : GltfProperty - { - #region Serialized Fields - - /// - /// The index of the accessor that contains mesh indices. - /// When this is not defined, the primitives should be rendered without indices - /// using `drawArrays()`. When defined, the accessor must contain indices: - /// the `bufferView` referenced by the accessor must have a `target` equal - /// to 34963 (ELEMENT_ARRAY_BUFFER); a `byteStride` that is tightly packed, - /// i.e., 0 or the byte size of `componentType` in bytes; - /// `componentType` must be 5121 (UNSIGNED_BYTE), 5123 (UNSIGNED_SHORT) - /// or 5125 (UNSIGNED_INT), the latter is only allowed - /// when `OES_element_index_uint` extension is used; `type` must be `\"SCALAR\"`. - /// - public int indices = -1; - - /// - /// The index of the material to apply to this primitive when rendering. - /// - public int material = -1; - - /// - /// The type of primitives to render. All valid values correspond to WebGL enums. - /// - public GltfDrawMode mode = GltfDrawMode.Triangles; - - #endregion Serialized Fields - - /// - /// An array of Morph Targets, each Morph Target is a dictionary mapping - /// attributes (only "POSITION" and "NORMAL" supported) to their deviations - /// in the Morph Target (index of the accessor containing the attribute - /// displacements' data). - /// - public List> Targets { get; internal set; } - - /// - /// A dictionary object, where each key corresponds to mesh attribute semantic - /// and each value is the index of the accessor containing attribute's data. - /// - public GltfMeshPrimitiveAttributes Attributes { get; internal set; } - - /// - /// Unity Mesh wrapper for the GltfMeshPrimitive SubMesh - /// - public Mesh SubMesh { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs.meta deleted file mode 100644 index 060a59872..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitive.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c03d87fb77187f44a88cb7a60cb44a66 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs deleted file mode 100644 index ded414509..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Collections.ObjectModel; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Common mesh primitive attributes. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.primitive.schema.json - /// - public class GltfMeshPrimitiveAttributes : ReadOnlyDictionary - { - private const string POSITION_KEY = "POSITION"; - private const string NORMAL_KEY = "NORMAL"; - private const string TANGENT_KEY = "TANGENT"; - private const string TEXCOORD_0_KEY = "TEXCOORD_0"; - private const string TEXCOORD_1_KEY = "TEXCOORD_1"; - private const string TEXCOORD_2_KEY = "TEXCOORD_2"; - private const string TEXCOORD_3_KEY = "TEXCOORD_3"; - private const string COLOR_0_KEY = "COLOR_0"; - private const string JOINTS_0_KEY = "JOINTS_0"; - private const string WEIGHTS_0_KEY = "WEIGHTS_0"; - - public GltfMeshPrimitiveAttributes(IDictionary dictionary) : base(dictionary) - { - } - - private int TryGetDefault(string key, int defaultVal) - { - int index; - return TryGetValue(key, out index) ? index : defaultVal; - } - - public int POSITION - { - get - { - return TryGetDefault(POSITION_KEY, -1); - } - } - - public int NORMAL - { - get - { - return TryGetDefault(NORMAL_KEY, -1); - } - } - - public int TEXCOORD_0 - { - get - { - return TryGetDefault(TEXCOORD_0_KEY, -1); - } - } - - public int TEXCOORD_1 - { - get - { - return TryGetDefault(TEXCOORD_1_KEY, -1); - } - } - - public int TEXCOORD_2 - { - get - { - return TryGetDefault(TEXCOORD_2_KEY, -1); - } - } - - public int TEXCOORD_3 - { - get - { - return TryGetDefault(TEXCOORD_3_KEY, -1); - } - } - - public int COLOR_0 - { - get - { - return TryGetDefault(COLOR_0_KEY, -1); - } - } - - public int TANGENT - { - get - { - return TryGetDefault(TANGENT_KEY, -1); - } - } - public int WEIGHTS_0 - { - get - { - return TryGetDefault(WEIGHTS_0_KEY, -1); - } - } - - public int JOINTS_0 - { - get - { - return TryGetDefault(JOINTS_0_KEY, -1); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs.meta deleted file mode 100644 index 0d5fd5c5f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMeshPrimitiveAttributes.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f808f4432ab19104897ea0a4fd45f315 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs deleted file mode 100644 index 1cea74672..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Minification filter mode. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json - /// - public enum GltfMinFilterMode - { - None = 0, - Nearest = 9728, - Linear = 9729, - NearestMipmapNearest = 9984, - LinearMipmapNearest = 9985, - NearestMipmapLinear = 9986, - LinearMipmapLinear = 9987 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs.meta deleted file mode 100644 index ed6e9a76a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfMinFilterMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4410294da530a404a9f1ad8cbd6101b0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs deleted file mode 100644 index 64a800157..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A node in the node hierarchy. - /// When the node contains `skin`, all `mesh.primitives` must contain `JOINT` - /// and `WEIGHT` attributes. A node can have either a `matrix` or any combination - /// of `translation`/`rotation`/`scale` (TRS) properties. - /// TRS properties are converted to matrices and postmultiplied in - /// the `T * R * S` order to compose the transformation matrix; - /// first the scale is applied to the vertices, then the rotation, and then - /// the translation. If none are provided, the transform is the Identity. - /// When a node is targeted for animation - /// (referenced by an animation.channel.target), only TRS properties may be present; - /// `matrix` will not be present. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/node.schema.json - /// - [Serializable] - public class GltfNode : GltfChildOfRootProperty - { - /// - /// If true, extracts transform, rotation, scale values from the Matrix4x4. Otherwise uses the Transform, Rotate, Scale directly as specified by the node. - /// - public bool useTRS; - - /// - /// The index of the camera referenced by this node. - /// - public int camera = -1; - - /// - /// The indices of this node's children. - /// - public int[] children; - - /// - /// The index of the skin referenced by this node. - /// - public int skin = -1; - - /// - /// A floating-point 4x4 transformation matrix stored in column-major order. - /// - public double[] matrix = { 1d, 0d, 0d, 0d, 0d, 1d, 0d, 0d, 0d, 0d, 1d, 0d, 0d, 0d, 0d, 1d }; - - public Matrix4x4 Matrix { get; set; } - - /// - /// The index of the mesh in this node. - /// - public int mesh = -1; - - /// - /// The node's unit quaternion rotation in the order (x, y, z, w), - /// where w is the scalar. - /// - public float[] rotation = { 0f, 0f, 0f, 1f }; - - /// - /// The node's non-uniform scale. - /// - public float[] scale = { 1f, 1f, 1f }; - - /// - /// The node's translation. - /// - public float[] translation = { 0f, 0f, 0f }; - - /// - /// The weights of the instantiated Morph Target. - /// Number of elements must match number of Morph Targets of used mesh. - /// - public double[] weights; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs.meta deleted file mode 100644 index 594a636f6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2500f2699b1fd954a9af41c97308fd00 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs deleted file mode 100644 index 3eff99b36..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/material.normalTextureInfo.schema.json - /// - [Serializable] - public class GltfNormalTextureInfo : GltfTextureInfo - { - /// - /// The scalar multiplier applied to each normal vector of the texture. - /// This value is ignored if normalTexture is not specified. - /// This value is linear. - /// - public double scale = 1d; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs.meta deleted file mode 100644 index 27e410b36..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfNormalTextureInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6c51ab58d41a3634e9511d632eb6c902 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs deleted file mode 100644 index 87ce9504e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema.Extensions; -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - [Serializable] - public class GltfObject : GltfProperty - { - #region Serialized Fields - - /// - /// Names of glTF extensions used somewhere in this asset. - /// - public string[] extensionsUsed; - - /// - /// Names of glTF extensions required to properly load this asset. - /// - public string[] extensionsRequired; - - /// - /// An array of accessors. An accessor is a typed view into a bufferView. - /// - public GltfAccessor[] accessors; - - /// - /// An array of keyframe animations. - /// - public GltfAnimation[] animations; - - /// - /// Metadata about the glTF asset. - /// - public GltfAssetInfo asset; - - /// - /// An array of buffers. A buffer points to binary geometry, animation, or skins. - /// - public GltfBuffer[] buffers; - - /// - /// An array of bufferViews. - /// A bufferView is a view into a buffer generally representing a subset of the buffer. - /// - public GltfBufferView[] bufferViews; - - /// - /// An array of cameras. A camera defines a projection matrix. - /// - public GltfCamera[] cameras; - - /// - /// An array of images. An image defines data used to create a texture. - /// - public GltfImage[] images; - - /// - /// An array of materials. A material defines the appearance of a primitive. - /// - public GltfMaterial[] materials; - - /// - /// An array of meshes. A mesh is a set of primitives to be rendered. - /// - public GltfMesh[] meshes; - - /// - /// An array of nodes. - /// - public GltfNode[] nodes; - - /// - /// An array of samplers. A sampler contains properties for texture filtering and wrapping modes. - /// - public GltfSampler[] samplers; - - /// - /// The index of the default scene. - /// - public int scene; - - /// - /// An array of scenes. - /// - public GltfScene[] scenes; - - /// - /// An array of skins. A skin is defined by joints and matrices. - /// - public GltfSkin[] skins; - - /// - /// An array of textures. - /// - public GltfTexture[] textures; - - #endregion Serialized Fields - - /// - /// The name of the gltf Object. - /// - public string Name { get; internal set; } - - /// - /// The absolute path to the glTF Object on disk. - /// - public string Uri { get; internal set; } - - /// - /// The GameObject reference for the gltf Object. - /// - public GameObject GameObjectReference { get; internal set; } - - /// - /// The list of registered glTF extensions found for this object. - /// - public List RegisteredExtensions { get; internal set; } = new List(); - - /// - /// Flag for setting object load behavior. - /// Importers should run on the main thread; all other loading scenarios should likely use the background thread - /// - internal bool UseBackgroundThread { get; set; } = true; - - /// - /// Get an accessor from an accessor index - /// - public GltfAccessor GetAccessor(int index) - { - if (index < 0) return null; - - var accessor = accessors[index]; - accessor.BufferView = bufferViews[accessor.bufferView]; - accessor.BufferView.Buffer = buffers[accessor.BufferView.buffer]; - return accessor; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs.meta deleted file mode 100644 index c0f448181..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfObject.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b4bd6e7e6dfef6c4fa693ebf51cba732 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs deleted file mode 100644 index 71c0fa56b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/material.occlusionTextureInfo.schema.json - /// - [Serializable] - public class GltfOcclusionTextureInfo : GltfTextureInfo - { - /// - /// A scalar multiplier controlling the amount of occlusion applied. - /// A value of 0.0 means no occlusion. - /// A value of 1.0 means full occlusion. - /// This value is ignored if the corresponding texture is not specified. - /// This value is linear. - /// 0.0 - /// 1.0 - /// - public double strength = 1d; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs.meta deleted file mode 100644 index 75c0ba303..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfOcclusionTextureInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d60226fbe626d6f4e94f91816a6ee34f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs deleted file mode 100644 index df689ca35..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A set of parameter values that are used to define the metallic-roughness material model from Physically-Based Rendering (PBR) methodology. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/material.pbrMetallicRoughness.schema.json - /// - [Serializable] - public class GltfPbrMetallicRoughness : GltfProperty - { - /// - /// The RGBA components of the base color of the material. - /// The fourth component (A) is the opacity of the material. - /// These values are linear. - /// - public float[] baseColorFactor = { 1f, 1f, 1f, 1f }; - - /// - /// The base color texture. - /// This texture contains RGB(A) components in sRGB color space. - /// The first three components (RGB) specify the base color of the material. - /// If the fourth component (A) is present, it represents the opacity of the - /// material. Otherwise, an opacity of 1.0 is assumed. - /// - public GltfTextureInfo baseColorTexture; - - /// - /// The metalness of the material. - /// A value of 1.0 means the material is a metal. - /// A value of 0.0 means the material is a dielectric. - /// Values in between are for blending between metals and dielectrics such as - /// dirty metallic surfaces. - /// This value is linear. - /// - public double metallicFactor = 1; - - /// - /// The roughness of the material. - /// A value of 1.0 means the material is completely rough. - /// A value of 0.0 means the material is completely smooth. - /// This value is linear. - /// - public double roughnessFactor = 1; - - /// - /// The metallic-roughness texture has two components. - /// The first component (R) contains the metallic-ness of the material. - /// The second component (G) contains the roughness of the material. - /// These values are linear. - /// If the third component (B) and/or the fourth component (A) are present, - /// they are ignored. - /// - public GltfTextureInfo metallicRoughnessTexture; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs.meta deleted file mode 100644 index acad63735..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfPbrMetallicRoughness.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cd425bb56ec666443be87d7b39feee7f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs deleted file mode 100644 index 20a0af297..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - public class GltfProperty - { - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/extension.schema.json - /// - public readonly Dictionary Extensions = new Dictionary(); - - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/extras.schema.json - /// - public readonly Dictionary Extras = new Dictionary(); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs.meta deleted file mode 100644 index 4075a36e9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfProperty.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fbb5f9a0469df914094360c7a13a1106 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs deleted file mode 100644 index 0a0af9e6c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Texture sampler properties for filtering and wrapping modes. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json - /// - [Serializable] - public class GltfSampler : GltfChildOfRootProperty - { - /// - /// Magnification filter. - /// Valid values correspond to WebGL enums: `9728` (NEAREST) and `9729` (LINEAR). - /// - public GltfMagnificationFilterMode magFilter = GltfMagnificationFilterMode.Linear; - - /// - /// Minification filter. All valid values correspond to WebGL enums. - /// - public GltfMinFilterMode GltfMinFilter = GltfMinFilterMode.NearestMipmapLinear; - - /// - /// s wrapping mode. All valid values correspond to WebGL enums. - /// - public GltfWrapMode wrapS = GltfWrapMode.Repeat; - - /// - /// t wrapping mode. All valid values correspond to WebGL enums. - /// - public GltfWrapMode wrapT = GltfWrapMode.Repeat; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs.meta deleted file mode 100644 index 2a4ffcbae..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSampler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6108ea75a0d43614c8b13c6da368d364 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs deleted file mode 100644 index 8ba7307a9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// The indices of each root node. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/scene.schema.json - /// - [Serializable] - public class GltfScene : GltfChildOfRootProperty - { - /// - /// Indices of each root node. - /// - public int[] nodes; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs.meta deleted file mode 100644 index be57bf76d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfScene.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 49db1cf6283d09b4995acead8904f6fc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs deleted file mode 100644 index 778523b9c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Joints and matrices defining a skin. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/skin.schema.json - /// - [Serializable] - public class GltfSkin : GltfChildOfRootProperty - { - /// - /// The index of the accessor containing the floating-point 4x4 inverse-bind matrices. - /// The default is that each matrix is a 4x4 Identity matrix, which implies that inverse-bind - /// matrices were pre-applied. - /// - public int inverseBindMatrices = -1; - - /// - /// The index of the node used as a skeleton root. - /// When undefined, joints transforms resolve to scene root. - /// - public int skeleton = -1; - - /// - /// Indices of skeleton nodes, used as joints in this skin. The array length must be the - /// same as the `count` property of the `inverseBindMatrices` accessor (when defined). - /// - public int[] joints; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs.meta deleted file mode 100644 index 8b1820612..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfSkin.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 68f8ab9cb58c75e41917103184e49c92 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs deleted file mode 100644 index 5a4fb2fc8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// A texture and its sampler. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/texture.schema.json - /// - [Serializable] - public class GltfTexture : GltfChildOfRootProperty - { - /// - /// The index of the sampler used by this texture. - /// - public int sampler = -1; - - /// - /// The index of the image used by this texture. - /// - public int source = -1; - - /// - /// Unity Texture2D wrapper for GltfTexture - /// - public Texture2D Texture { get; internal set; } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs.meta deleted file mode 100644 index 94a25e4e9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTexture.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 381ded662340bb84abc9a0d4d1f25cf7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs deleted file mode 100644 index 89e116b55..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/textureInfo.schema.json - /// - [Serializable] - public class GltfTextureInfo : GltfProperty - { - /// - /// The index of the texture. - /// - public int index = -1; - - /// - /// This integer value is used to construct a string in the format - /// TEXCOORD_<set index> which is a reference to a key in - /// mesh.primitives.attributes (e.g. A value of 0 corresponds to TEXCOORD_0). - /// - public int textCoord = 0; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs.meta deleted file mode 100644 index 74d246fc5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfTextureInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 83af55bd9462cfb42ae09dfbf5a94e81 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs deleted file mode 100644 index 666bf6a97..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema -{ - /// - /// Texture wrap mode. - /// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json - /// - public enum GltfWrapMode - { - None = 0, - ClampToEdge = 33071, - MirroredRepeat = 33648, - Repeat = 10497 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs.meta deleted file mode 100644 index 90c6b0469..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Schema/GltfWrapMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fde1228861d09114d8f062ea861df6ce -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization.meta deleted file mode 100644 index 35124eccc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b103174dd64b6cc498b6cc15b322aa49 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs deleted file mode 100644 index fcbcd5ee3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization -{ - public enum ColliderType - { - None, - Box, - Mesh, - MeshConvex - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs.meta deleted file mode 100644 index e36009a02..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ColliderType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 14b562e2a0143164290c14b741ac4f72 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs deleted file mode 100644 index a92088849..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs +++ /dev/null @@ -1,684 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema; -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; -using UnityEngine; -using UnityEngine.Rendering; - -#if WINDOWS_UWP -using Windows.Storage; -using Windows.Storage.Streams; -#endif // WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization -{ - public static class ConstructGltf - { - private static readonly WaitForUpdate Update = new WaitForUpdate(); - private static readonly WaitForBackgroundThread BackgroundThread = new WaitForBackgroundThread(); - private static readonly int SrcBlendId = Shader.PropertyToID("_SrcBlend"); - private static readonly int DstBlendId = Shader.PropertyToID("_DstBlend"); - private static readonly int ZWriteId = Shader.PropertyToID("_ZWrite"); - private static readonly int ModeId = Shader.PropertyToID("_Mode"); - private static readonly int EmissionMapId = Shader.PropertyToID("_EmissionMap"); - private static readonly int EmissionColorId = Shader.PropertyToID("_EmissionColor"); - private static readonly int MetallicGlossMapId = Shader.PropertyToID("_MetallicGlossMap"); - private static readonly int GlossinessId = Shader.PropertyToID("_Glossiness"); - private static readonly int MetallicId = Shader.PropertyToID("_Metallic"); - private static readonly int BumpMapId = Shader.PropertyToID("_BumpMap"); - private static readonly int EmissiveColorId = Shader.PropertyToID("_EmissiveColor"); - private static readonly int ChannelMapId = Shader.PropertyToID("_ChannelMap"); - private static readonly int SmoothnessId = Shader.PropertyToID("_Smoothness"); - private static readonly int NormalMapId = Shader.PropertyToID("_NormalMap"); - private static readonly int NormalMapScaleId = Shader.PropertyToID("_NormalMapScale"); - private static readonly int CullModeId = Shader.PropertyToID("_CullMode"); - - /// - /// Constructs the glTF Object. - /// - /// The new GameObject of the final constructed - public static async void Construct(this GltfObject gltfObject) - { - await gltfObject.ConstructAsync(); - } - - /// - /// Constructs the glTF Object. - /// - /// The new GameObject of the final constructed - public static async Task ConstructAsync(this GltfObject gltfObject) - { - if (!gltfObject.asset.version.Contains("2.0")) - { - Debug.LogWarning($"Expected glTF 2.0, but this asset is using {gltfObject.asset.version}"); - return null; - } - - if (gltfObject.UseBackgroundThread) { await Update; } - - var rootObject = new GameObject($"glTF Scene {gltfObject.Name}"); - rootObject.SetActive(false); - - if (gltfObject.UseBackgroundThread) await BackgroundThread; - - for (int i = 0; i < gltfObject.bufferViews?.Length; i++) - { - gltfObject.ConstructBufferView(gltfObject.bufferViews[i]); - } - - for (int i = 0; i < gltfObject.textures?.Length; i++) - { - await gltfObject.ConstructTextureAsync(gltfObject.textures[i]); - } - - for (int i = 0; i < gltfObject.materials?.Length; i++) - { - await gltfObject.ConstructMaterialAsync(gltfObject.materials[i], i); - } - - if (gltfObject.scenes == null) - { - Debug.LogError($"No scenes found for {gltfObject.Name}"); - } - - if (gltfObject.UseBackgroundThread) await Update; - - for (int i = 0; i < gltfObject.scenes?.Length; i++) - { - await gltfObject.ConstructSceneAsync(gltfObject.scenes[i], rootObject); - } - - rootObject.SetActive(true); - return gltfObject.GameObjectReference = rootObject; - } - - private static void ConstructBufferView(this GltfObject gltfObject, GltfBufferView bufferView) - { - bufferView.Buffer = gltfObject.buffers[bufferView.buffer]; - - if (bufferView.Buffer.BufferData == null && - !string.IsNullOrEmpty(gltfObject.Uri) && - !string.IsNullOrEmpty(bufferView.Buffer.uri)) - { - var parentDirectory = Directory.GetParent(gltfObject.Uri).FullName; - bufferView.Buffer.BufferData = File.ReadAllBytes(Path.Combine(parentDirectory, bufferView.Buffer.uri)); - } - } - - private static async Task ConstructTextureAsync(this GltfObject gltfObject, GltfTexture gltfTexture) - { - if (gltfObject.UseBackgroundThread) await BackgroundThread; - - if (gltfTexture.source >= 0) - { - GltfImage gltfImage = gltfObject.images[gltfTexture.source]; - - byte[] imageData = null; - Texture2D texture = null; - - if (!string.IsNullOrEmpty(gltfObject.Uri) && !string.IsNullOrEmpty(gltfImage.uri)) - { - var parentDirectory = Directory.GetParent(gltfObject.Uri).FullName; - var path = Path.Combine(parentDirectory, gltfImage.uri); - -#if UNITY_EDITOR - if (gltfObject.UseBackgroundThread) await Update; - var projectPath = Path.GetFullPath(path).Replace(Path.GetFullPath(Application.dataPath), "Assets"); - texture = UnityEditor.AssetDatabase.LoadAssetAtPath(projectPath); - - if (gltfObject.UseBackgroundThread) await BackgroundThread; -#endif - - if (texture == null) - { -#if WINDOWS_UWP - if (gltfObject.UseBackgroundThread) - { - try - { - var storageFile = await StorageFile.GetFileFromPathAsync(path); - - if (storageFile != null) - { - - var buffer = await FileIO.ReadBufferAsync(storageFile); - - using (DataReader dataReader = DataReader.FromBuffer(buffer)) - { - imageData = new byte[buffer.Length]; - dataReader.ReadBytes(imageData); - } - } - } - catch (Exception e) - { - Debug.LogError(e.Message); - } - } - else - { - imageData = UnityEngine.Windows.File.ReadAllBytes(path); - } -#else - using (FileStream stream = File.Open(path, FileMode.Open)) - { - imageData = new byte[stream.Length]; - - if (gltfObject.UseBackgroundThread) - { - await stream.ReadAsync(imageData, 0, (int)stream.Length); - } - else - { - stream.Read(imageData, 0, (int)stream.Length); - } - } -#endif - } - } - else - { - var imageBufferView = gltfObject.bufferViews[gltfImage.bufferView]; - imageData = new byte[imageBufferView.byteLength]; - Array.Copy(imageBufferView.Buffer.BufferData, imageBufferView.byteOffset, imageData, 0, imageData.Length); - } - - if (texture == null) - { - if (gltfObject.UseBackgroundThread) await Update; - // TODO Load texture async - texture = new Texture2D(2, 2); - gltfImage.Texture = texture; - gltfImage.Texture.LoadImage(imageData); - } - else - { - gltfImage.Texture = texture; - } - - gltfTexture.Texture = texture; - - if (gltfObject.UseBackgroundThread) await BackgroundThread; - } - } - - private static async Task ConstructMaterialAsync(this GltfObject gltfObject, GltfMaterial gltfMaterial, int materialId) - { - if (gltfObject.UseBackgroundThread) await Update; - - Material material = await CreateMRTKShaderMaterial(gltfObject, gltfMaterial, materialId); - if (material == null) - { - Debug.LogWarning("The Mixed Reality Toolkit/Standard Shader was not found. Falling back to Standard Shader"); - material = await CreateStandardShaderMaterial(gltfObject, gltfMaterial, materialId); - } - - if (material == null) - { - Debug.LogWarning("The Standard Shader was not found. Failed to create material for glTF object"); - } - else - { - gltfMaterial.Material = material; - } - - if (gltfObject.UseBackgroundThread) await BackgroundThread; - } - - private static async Task CreateMRTKShaderMaterial(GltfObject gltfObject, GltfMaterial gltfMaterial, int materialId) - { - var shader = Shader.Find("Mixed Reality Toolkit/Standard"); - - if (shader == null) { return null; } - - var material = new Material(shader) - { - name = string.IsNullOrEmpty(gltfMaterial.name) ? $"glTF Material {materialId}" : gltfMaterial.name - }; - - if (gltfMaterial.pbrMetallicRoughness.baseColorTexture?.index >= 0) - { - material.mainTexture = gltfObject.images[gltfMaterial.pbrMetallicRoughness.baseColorTexture.index].Texture; - } - - material.color = gltfMaterial.pbrMetallicRoughness.baseColorFactor.GetColorValue(); - - if (gltfMaterial.alphaMode == "MASK") - { - material.SetInt(SrcBlendId, (int)BlendMode.One); - material.SetInt(DstBlendId, (int)BlendMode.Zero); - material.SetInt(ZWriteId, 1); - material.SetInt(ModeId, 3); - material.SetOverrideTag("RenderType", "Cutout"); - material.EnableKeyword("_ALPHATEST_ON"); - material.DisableKeyword("_ALPHABLEND_ON"); - material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = 2450; - } - else if (gltfMaterial.alphaMode == "BLEND") - { - material.SetInt(SrcBlendId, (int)BlendMode.One); - material.SetInt(DstBlendId, (int)BlendMode.OneMinusSrcAlpha); - material.SetInt(ZWriteId, 0); - material.SetInt(ModeId, 3); - material.SetOverrideTag("RenderType", "Transparency"); - material.DisableKeyword("_ALPHATEST_ON"); - material.DisableKeyword("_ALPHABLEND_ON"); - material.EnableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = 3000; - } - - if (gltfMaterial.emissiveTexture?.index >= 0 && material.HasProperty("_EmissionMap")) - { - material.EnableKeyword("_EMISSION"); - material.SetColor(EmissiveColorId, gltfMaterial.emissiveFactor.GetColorValue()); - } - - if (gltfMaterial.pbrMetallicRoughness.metallicRoughnessTexture?.index >= 0) - { - var texture = gltfObject.images[gltfMaterial.pbrMetallicRoughness.metallicRoughnessTexture.index].Texture; - - Texture2D occlusionTexture = null; - if (gltfMaterial.occlusionTexture.index >= 0) - { - occlusionTexture = gltfObject.images[gltfMaterial.occlusionTexture.index].Texture; - } - - if (texture.isReadable) - { - var pixels = texture.GetPixels(); - Color[] occlusionPixels = null; - if (occlusionTexture != null && - occlusionTexture.isReadable) - { - occlusionPixels = occlusionTexture.GetPixels(); - } - - if (gltfObject.UseBackgroundThread) await BackgroundThread; - - var pixelCache = new Color[pixels.Length]; - - for (int c = 0; c < pixels.Length; c++) - { - pixelCache[c].r = pixels[c].b; // MRTK standard shader metallic value, glTF metallic value - pixelCache[c].g = occlusionPixels?[c].r ?? 1.0f; // MRTK standard shader occlusion value, glTF occlusion value if available - pixelCache[c].b = 0f; // MRTK standard shader emission value - pixelCache[c].a = (1.0f - pixels[c].g); // MRTK standard shader smoothness value, invert of glTF roughness value - } - - if (gltfObject.UseBackgroundThread) await Update; - texture.SetPixels(pixelCache); - texture.Apply(); - - material.SetTexture(ChannelMapId, texture); - material.EnableKeyword("_CHANNEL_MAP"); - } - else - { - material.DisableKeyword("_CHANNEL_MAP"); - } - - material.SetFloat(SmoothnessId, Mathf.Abs((float)gltfMaterial.pbrMetallicRoughness.roughnessFactor - 1f)); - material.SetFloat(MetallicId, (float)gltfMaterial.pbrMetallicRoughness.metallicFactor); - } - - - if (gltfMaterial.normalTexture?.index >= 0) - { - material.SetTexture(NormalMapId, gltfObject.images[gltfMaterial.normalTexture.index].Texture); - material.SetFloat(NormalMapScaleId, (float)gltfMaterial.normalTexture.scale); - material.EnableKeyword("_NORMAL_MAP"); - } - - if (gltfMaterial.doubleSided) - { - material.SetFloat(CullModeId, (float)UnityEngine.Rendering.CullMode.Off); - } - - material.globalIlluminationFlags = MaterialGlobalIlluminationFlags.RealtimeEmissive; - return material; - } - - private static async Task CreateStandardShaderMaterial(GltfObject gltfObject, GltfMaterial gltfMaterial, int materialId) - { - var shader = Shader.Find("Standard"); - - if (shader == null) { return null; } - - var material = new Material(shader) - { - name = string.IsNullOrEmpty(gltfMaterial.name) ? $"glTF Material {materialId}" : gltfMaterial.name - }; - - if (gltfMaterial.pbrMetallicRoughness.baseColorTexture?.index >= 0) - { - material.mainTexture = gltfObject.images[gltfMaterial.pbrMetallicRoughness.baseColorTexture.index].Texture; - } - - material.color = gltfMaterial.pbrMetallicRoughness.baseColorFactor.GetColorValue(); - - if (gltfMaterial.alphaMode == "MASK") - { - material.SetInt(SrcBlendId, (int)BlendMode.One); - material.SetInt(DstBlendId, (int)BlendMode.Zero); - material.SetInt(ZWriteId, 1); - material.SetInt(ModeId, 3); - material.SetOverrideTag("RenderType", "Cutout"); - material.EnableKeyword("_ALPHATEST_ON"); - material.DisableKeyword("_ALPHABLEND_ON"); - material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = 2450; - } - else if (gltfMaterial.alphaMode == "BLEND") - { - material.SetInt(SrcBlendId, (int)BlendMode.One); - material.SetInt(DstBlendId, (int)BlendMode.OneMinusSrcAlpha); - material.SetInt(ZWriteId, 0); - material.SetInt(ModeId, 3); - material.SetOverrideTag("RenderType", "Transparency"); - material.DisableKeyword("_ALPHATEST_ON"); - material.DisableKeyword("_ALPHABLEND_ON"); - material.EnableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = 3000; - } - - if (gltfMaterial.emissiveTexture?.index >= 0) - { - material.EnableKeyword("_EmissionMap"); - material.EnableKeyword("_EMISSION"); - material.SetTexture(EmissionMapId, gltfObject.images[gltfMaterial.emissiveTexture.index].Texture); - material.SetColor(EmissionColorId, gltfMaterial.emissiveFactor.GetColorValue()); - } - - if (gltfMaterial.pbrMetallicRoughness.metallicRoughnessTexture?.index >= 0) - { - var texture = gltfObject.images[gltfMaterial.pbrMetallicRoughness.metallicRoughnessTexture.index].Texture; - - if (texture.isReadable) - { - var pixels = texture.GetPixels(); - if (gltfObject.UseBackgroundThread) await BackgroundThread; - - var pixelCache = new Color[pixels.Length]; - - for (int c = 0; c < pixels.Length; c++) - { - // Unity only looks for metal in R channel, and smoothness in A. - pixelCache[c].r = pixels[c].g; - pixelCache[c].g = 0f; - pixelCache[c].b = 0f; - pixelCache[c].a = pixels[c].b; - } - - if (gltfObject.UseBackgroundThread) await Update; - texture.SetPixels(pixelCache); - texture.Apply(); - - material.SetTexture(MetallicGlossMapId, texture); - } - - material.SetFloat(GlossinessId, Mathf.Abs((float)gltfMaterial.pbrMetallicRoughness.roughnessFactor - 1f)); - material.SetFloat(MetallicId, (float)gltfMaterial.pbrMetallicRoughness.metallicFactor); - material.EnableKeyword("_MetallicGlossMap"); - material.EnableKeyword("_METALLICGLOSSMAP"); - } - - if (gltfMaterial.normalTexture?.index >= 0) - { - material.SetTexture(BumpMapId, gltfObject.images[gltfMaterial.normalTexture.index].Texture); - material.EnableKeyword("_BumpMap"); - } - - material.globalIlluminationFlags = MaterialGlobalIlluminationFlags.RealtimeEmissive; - return material; - } - - private static async Task ConstructSceneAsync(this GltfObject gltfObject, GltfScene gltfScene, GameObject root) - { - for (int i = 0; i < gltfScene.nodes.Length; i++) - { - // Note: glTF objects are currently imported with their original scale from the glTF scene, which may apply an unexpected transform - // to the root node. If this behavior needs to be changed, functionality should be added below to ConstructNodeAsync - await ConstructNodeAsync(gltfObject, gltfObject.nodes[gltfScene.nodes[i]], gltfScene.nodes[i], root.transform); - } - } - - private static async Task ConstructNodeAsync(GltfObject gltfObject, GltfNode node, int nodeId, Transform parent) - { - if (gltfObject.UseBackgroundThread) await Update; - - var nodeName = string.IsNullOrEmpty(node.name) ? $"glTF Node {nodeId}" : node.name; - var nodeGameObject = new GameObject(nodeName); - - // If we're creating a really large node, we need it to not be visible in partial stages. So we hide it while we create it - nodeGameObject.SetActive(false); - - if (gltfObject.UseBackgroundThread) await BackgroundThread; - - node.Matrix = node.GetTrsProperties(out Vector3 position, out Quaternion rotation, out Vector3 scale); - - if (node.Matrix == Matrix4x4.identity) - { - if (node.translation != null) - { - position = node.translation.GetVector3Value(); - } - - if (node.rotation != null) - { - rotation = node.rotation.GetQuaternionValue(); - } - - if (node.scale != null) - { - scale = node.scale.GetVector3Value(false); - } - } - - if (gltfObject.UseBackgroundThread) await Update; - - nodeGameObject.transform.localPosition = position; - nodeGameObject.transform.localRotation = rotation; - nodeGameObject.transform.localScale = scale; - - if (node.mesh >= 0) - { - await ConstructMeshAsync(gltfObject, nodeGameObject, node.mesh); - } - - if (node.children != null) - { - for (int i = 0; i < node.children.Length; i++) - { - await ConstructNodeAsync(gltfObject, gltfObject.nodes[node.children[i]], node.children[i], nodeGameObject.transform); - } - } - - nodeGameObject.transform.SetParent(parent, false); - nodeGameObject.SetActive(true); - } - - private static async Task ConstructMeshAsync(GltfObject gltfObject, GameObject parent, int meshId) - { - GltfMesh gltfMesh = gltfObject.meshes[meshId]; - - var renderer = parent.gameObject.AddComponent(); - var filter = parent.gameObject.AddComponent(); - - if (gltfMesh.primitives.Length == 1) - { - gltfMesh.Mesh = await ConstructMeshPrimitiveAsync(gltfObject, gltfMesh.primitives[0]); - gltfMesh.Mesh.name = gltfMesh.name; - filter.sharedMesh = gltfMesh.Mesh; - renderer.sharedMaterial = gltfObject.materials[gltfMesh.primitives[0].material].Material; - return; - } - - var materials = new List(); - var meshCombines = new CombineInstance[gltfMesh.primitives.Length]; - - for (int i = 0; i < gltfMesh.primitives.Length; i++) - { - meshCombines[i].mesh = await ConstructMeshPrimitiveAsync(gltfObject, gltfMesh.primitives[i]); - - var meshMaterial = gltfObject.materials[gltfMesh.primitives[i].material].Material; - - if (!materials.Contains(meshMaterial)) - { - materials.Add(meshMaterial); - } - } - - var newMesh = new Mesh(); - newMesh.CombineMeshes(meshCombines); - gltfMesh.Mesh = filter.sharedMesh = newMesh; - gltfMesh.Mesh.name = gltfMesh.name; - renderer.sharedMaterials = materials.ToArray(); - } - - private static async Task ConstructMeshPrimitiveAsync(GltfObject gltfObject, GltfMeshPrimitive meshPrimitive) - { - if (gltfObject.UseBackgroundThread) await BackgroundThread; - - GltfAccessor positionAccessor = null; - GltfAccessor normalsAccessor = null; - GltfAccessor textCoord0Accessor = null; - GltfAccessor textCoord1Accessor = null; - GltfAccessor textCoord2Accessor = null; - GltfAccessor textCoord3Accessor = null; - GltfAccessor colorAccessor = null; - GltfAccessor indicesAccessor = null; - GltfAccessor tangentAccessor = null; - GltfAccessor weight0Accessor = null; - GltfAccessor joint0Accessor = null; - int vertexCount = 0; - - positionAccessor = gltfObject.GetAccessor(meshPrimitive.Attributes.POSITION); - if (positionAccessor != null) - { - vertexCount = positionAccessor.count; - } - - normalsAccessor = gltfObject.GetAccessor(meshPrimitive.Attributes.NORMAL); - - textCoord0Accessor = gltfObject.GetAccessor(meshPrimitive.Attributes.TEXCOORD_0); - - textCoord1Accessor = gltfObject.GetAccessor(meshPrimitive.Attributes.TEXCOORD_1); - - textCoord2Accessor = gltfObject.GetAccessor(meshPrimitive.Attributes.TEXCOORD_2); - - textCoord3Accessor = gltfObject.GetAccessor(meshPrimitive.Attributes.TEXCOORD_3); - - colorAccessor = gltfObject.GetAccessor(meshPrimitive.Attributes.COLOR_0); - - indicesAccessor = gltfObject.GetAccessor(meshPrimitive.indices); - - tangentAccessor = gltfObject.GetAccessor(meshPrimitive.Attributes.TANGENT); - - weight0Accessor = gltfObject.GetAccessor(meshPrimitive.Attributes.WEIGHTS_0); - - joint0Accessor = gltfObject.GetAccessor(meshPrimitive.Attributes.JOINTS_0); - - if (gltfObject.UseBackgroundThread) await Update; - - var mesh = new Mesh - { - indexFormat = vertexCount > UInt16.MaxValue ? IndexFormat.UInt32 : IndexFormat.UInt16, - }; - - if (positionAccessor != null) - { - mesh.vertices = positionAccessor.GetVector3Array(); - } - - if (normalsAccessor != null) - { - mesh.normals = normalsAccessor.GetVector3Array(); - } - - if (textCoord0Accessor != null) - { - mesh.uv = textCoord0Accessor.GetVector2Array(); - } - - if (textCoord1Accessor != null) - { - mesh.uv2 = textCoord1Accessor.GetVector2Array(); - } - - if (textCoord2Accessor != null) - { - mesh.uv3 = textCoord2Accessor.GetVector2Array(); - } - - if (textCoord3Accessor != null) - { - mesh.uv4 = textCoord3Accessor.GetVector2Array(); - } - - if (colorAccessor != null) - { - mesh.colors = colorAccessor.GetColorArray(); - } - - if (indicesAccessor != null) - { - mesh.triangles = indicesAccessor.GetIntArray(); - } - - if (tangentAccessor != null) - { - mesh.tangents = tangentAccessor.GetVector4Array(); - } - - if (weight0Accessor != null && joint0Accessor != null) - { - mesh.boneWeights = CreateBoneWeightArray(joint0Accessor.GetVector4Array(false), weight0Accessor.GetVector4Array(false), vertexCount); - } - - mesh.RecalculateBounds(); - meshPrimitive.SubMesh = mesh; - return mesh; - } - - private static BoneWeight[] CreateBoneWeightArray(Vector4[] joints, Vector4[] weights, int vertexCount) - { - NormalizeBoneWeightArray(weights); - - var boneWeights = new BoneWeight[vertexCount]; - - for (int i = 0; i < vertexCount; i++) - { - boneWeights[i].boneIndex0 = (int)joints[i].x; - boneWeights[i].boneIndex1 = (int)joints[i].y; - boneWeights[i].boneIndex2 = (int)joints[i].z; - boneWeights[i].boneIndex3 = (int)joints[i].w; - - boneWeights[i].weight0 = weights[i].x; - boneWeights[i].weight1 = weights[i].y; - boneWeights[i].weight2 = weights[i].z; - boneWeights[i].weight3 = weights[i].w; - } - - return boneWeights; - } - - private static void NormalizeBoneWeightArray(Vector4[] weights) - { - for (int i = 0; i < weights.Length; i++) - { - var weightSum = weights[i].x + weights[i].y + weights[i].z + weights[i].w; - - if (!Mathf.Approximately(weightSum, 0)) - { - weights[i] /= weightSum; - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs.meta deleted file mode 100644 index 8e0bf3273..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/ConstructGltf.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f72b1ef1fe4cc1b4d9533a6bf830a004 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs deleted file mode 100644 index dde09bbfb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf -{ - public class GltfAsset : ScriptableObject - { - [SerializeField] - private GameObject model; - - public GameObject Model - { - get => model; - internal set => model = value; - } - - [SerializeField] - private GltfObject gltfObject; - - public GltfObject GltfObject - { - get => gltfObject; - internal set => gltfObject = value; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs.meta deleted file mode 100644 index 1edb2bfc9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfAsset.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fdb78e6a33272b44b94f2fb8a98340c3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs deleted file mode 100644 index dd3a98dfe..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization -{ - public enum GltfChunkType : uint - { - Json = 0x4e4f534a, - BIN = 0x004e4942 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs.meta deleted file mode 100644 index 0b3dee762..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfChunkType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 530106a2eee035145a6cf46801a44002 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs deleted file mode 100644 index 3e6fd8dae..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs +++ /dev/null @@ -1,524 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema; -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization -{ - /// - /// Provides data accessors and conversions useful while reading and using glTF objects. - /// - public static class GltfConversions - { - // glTF matrix: column vectors, column-major storage, +Y up, +Z forward, -X right, right-handed - // unity matrix: column vectors, column-major storage, +Y up, +Z forward, +X right, left-handed - // multiply by a negative X scale to convert handedness - private static readonly Vector3 CoordinateSpaceConversionScale = new Vector3(-1, 1, 1); - - private static readonly Vector4 TangentSpaceConversionScale = new Vector4(-1, 1, 1, -1); - - private static readonly string scalar = GltfAccessorAttributeType.SCALAR.ToString(); - private static readonly string vec2 = GltfAccessorAttributeType.VEC2.ToString(); - private static readonly string vec3 = GltfAccessorAttributeType.VEC3.ToString(); - private static readonly string vec4 = GltfAccessorAttributeType.VEC4.ToString(); - - /// - /// Get TRS properties from GltfNode - /// - public static Matrix4x4 GetTrsProperties(this GltfNode node, out Vector3 position, out Quaternion rotation, out Vector3 scale) - { - Matrix4x4 matrix = node.matrix.GetMatrix4X4Value(); - - if (!node.useTRS) - { - matrix.GetTrsProperties(out position, out rotation, out scale); - } - else - { - position = node.translation.GetVector3Value(); - rotation = node.rotation.GetQuaternionValue(); - scale = node.scale.GetVector3Value(false); - } - - return matrix; - } - - /// - /// Get Color from float array - /// - public static Color GetColorValue(this float[] colorArray) - { - if (colorArray != null && (colorArray.Length == 3 || colorArray.Length == 4)) - { - return new Color(colorArray[0], colorArray[1], colorArray[2], colorArray.Length < 4 ? 1f : colorArray[3]); - } - else - { - Debug.LogWarning($"GetColorValue() - Invalid color array of size {colorArray?.Length}"); - return Color.black; - } - } - - internal static float[] SetColorValue(this Color color) - { - return new[] { color.r, color.g, color.b, color.a }; - } - - /// - /// Get Vector2 from float array - /// - public static Vector2 GetVector2Value(this float[] vector2Array) - { - if (vector2Array != null && vector2Array.Length == 2) - { - return new Vector2(vector2Array[0], vector2Array[1]); - } - else - { - Debug.LogWarning($"GetVector2Value() - Invalid Vector2 array of size {vector2Array?.Length}"); - return Vector2.zero; - } - } - - internal static float[] SetVector2Value(this Vector2 vector) - { - return new[] { vector.x, vector.y }; - } - - /// - /// Get Vector3 from float array - /// - public static Vector3 GetVector3Value(this float[] vector3Array, bool convert = true) - { - if (vector3Array != null && vector3Array.Length == 3) - { - var vector = new Vector3(vector3Array[0], vector3Array[1], vector3Array[2]); - return convert ? Vector3.Scale(vector, CoordinateSpaceConversionScale) : vector; - } - else - { - Debug.LogWarning($"GetVector3Value() - Invalid Vector3 array of size {vector3Array?.Length}"); - return Vector3.zero; - } - } - - internal static float[] SetVector3Value(this Vector3 vector, bool convert = true) - { - if (convert) - { - vector = Vector3.Scale(vector, CoordinateSpaceConversionScale); - } - - return new[] { vector.x, vector.y, vector.z }; - } - - /// - /// Get Quaternion from float array - /// - public static Quaternion GetQuaternionValue(this float[] quaternionArray, bool convert = true) - { - if (quaternionArray != null && quaternionArray.Length == 4) - { - var axes = new Vector3(quaternionArray[0], quaternionArray[1], quaternionArray[2]); - - if (convert) - { - axes = Vector3.Scale(axes, CoordinateSpaceConversionScale) * -1.0f; - } - - return new Quaternion(axes.x, axes.y, axes.z, quaternionArray[3]); - } - else - { - Debug.LogWarning($"GetQuaternionValue() - Invalid Quaternion array of size {quaternionArray?.Length}"); - return Quaternion.identity; - } - } - - internal static float[] SetQuaternionValue(this Quaternion quaternion, bool convert = true) - { - // get the original axis and apply conversion scale as well as potential rotation axis flip - var axes = new Vector3(quaternion.x, quaternion.y, quaternion.z); - - if (convert) - { - axes = Vector3.Scale(axes, CoordinateSpaceConversionScale) * 1.0f; - } - - return new[] { axes.x, axes.y, axes.z, quaternion.w }; - } - - /// - /// Get Matrix from double array - /// - public static Matrix4x4 GetMatrix4X4Value(this double[] matrixArray) - { - if (matrixArray != null && matrixArray.Length == 16) - { - var matrix = new Matrix4x4( - new Vector4((float)matrixArray[0], (float)matrixArray[1], (float)matrixArray[2], (float)matrixArray[3]), - new Vector4((float)matrixArray[4], (float)matrixArray[5], (float)matrixArray[6], (float)matrixArray[7]), - new Vector4((float)matrixArray[8], (float)matrixArray[9], (float)matrixArray[10], (float)matrixArray[11]), - new Vector4((float)matrixArray[12], (float)matrixArray[13], (float)matrixArray[14], (float)matrixArray[15])); - Matrix4x4 convert = Matrix4x4.Scale(CoordinateSpaceConversionScale); - return convert * matrix * convert; - } - else - { - Debug.LogWarning($"GetMatrix4X4Value() - Invalid matrix array of size {matrixArray?.Length}"); - return Matrix4x4.identity; - } - } - - internal static float[] SetMatrix4X4Value(this Matrix4x4 matrix) - { - var convert = Matrix4x4.Scale(CoordinateSpaceConversionScale); - matrix = convert * matrix * convert; - return new[] - { - matrix.m00, matrix.m10, matrix.m20, matrix.m30, - matrix.m01, matrix.m11, matrix.m21, matrix.m31, - matrix.m02, matrix.m12, matrix.m22, matrix.m32, - matrix.m03, matrix.m13, matrix.m23, matrix.m33 - }; - } - - /// - /// Get TRS properties from matrix - /// - public static void GetTrsProperties(this Matrix4x4 matrix, out Vector3 position, out Quaternion rotation, out Vector3 scale) - { - position = matrix.GetColumn(3); - - Vector3 x = matrix.GetColumn(0); - Vector3 y = matrix.GetColumn(1); - Vector3 z = matrix.GetColumn(2); - - Vector3 calculatedZ = Vector3.Cross(x, y); - bool mirrored = Vector3.Dot(calculatedZ, z) < 0.0f; - - scale.x = x.magnitude * (mirrored ? -1.0f : 1.0f); - scale.y = y.magnitude; - scale.z = z.magnitude; - - rotation = Quaternion.LookRotation(matrix.GetColumn(2), matrix.GetColumn(1)); - } - - /// - /// Get Int array from accessor - /// - public static int[] GetIntArray(this GltfAccessor accessor, bool flipFaces = true) - { - if (accessor.type != scalar) - { - return null; - } - - var array = new int[accessor.count]; - - GetTypeDetails(accessor.componentType, out int componentSize, out float _); - var stride = accessor.BufferView.byteStride > 0 ? accessor.BufferView.byteStride : componentSize; - var byteOffset = accessor.BufferView.byteOffset; - var bufferData = accessor.BufferView.Buffer.BufferData; - - if (accessor.byteOffset >= 0) - { - byteOffset += accessor.byteOffset; - } - - for (int i = 0; i < accessor.count; i++) - { - if (accessor.componentType == GltfComponentType.Float) - { - array[i] = (int)Mathf.Floor(BitConverter.ToSingle(bufferData, byteOffset + i * stride)); - } - else - { - array[i] = (int)GetDiscreteUnsignedElement(bufferData, byteOffset + i * stride, accessor.componentType); - } - } - - if (flipFaces) - { - for (int i = 0; i < array.Length; i += 3) - { - var temp = array[i]; - array[i] = array[i + 2]; - array[i + 2] = temp; - } - } - - return array; - } - - /// - /// Get Vector2 array from accessor - /// - public static Vector2[] GetVector2Array(this GltfAccessor accessor, bool flip = true) - { - if (accessor.type != vec2 || accessor.componentType == GltfComponentType.UnsignedInt) - { - return null; - } - - var array = new Vector2[accessor.count]; - - GetTypeDetails(accessor.componentType, out int componentSize, out float maxValue); - var stride = accessor.BufferView.byteStride > 0 ? accessor.BufferView.byteStride : componentSize * 2; - var byteOffset = accessor.BufferView.byteOffset; - var bufferData = accessor.BufferView.Buffer.BufferData; - - if (accessor.byteOffset >= 0) - { - byteOffset += accessor.byteOffset; - } - - if (accessor.normalized) { maxValue = 1; } - - for (int i = 0; i < accessor.count; i++) - { - if (accessor.componentType == GltfComponentType.Float) - { - array[i].x = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 0); - array[i].y = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 1); - } - else - { - array[i].x = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 0, accessor.componentType) / maxValue; - array[i].y = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 1, accessor.componentType) / maxValue; - } - - if (flip) - { - array[i].y = 1.0f - array[i].y; - } - } - - return array; - } - - /// - /// Get Vector3 array from accessor - /// - public static Vector3[] GetVector3Array(this GltfAccessor accessor, bool convert = true) - { - if (accessor.type != vec3 || accessor.componentType == GltfComponentType.UnsignedInt) - { - return null; - } - - var array = new Vector3[accessor.count]; - - GetTypeDetails(accessor.componentType, out int componentSize, out float maxValue); - var stride = accessor.BufferView.byteStride > 0 ? accessor.BufferView.byteStride : componentSize * 3; - var byteOffset = accessor.BufferView.byteOffset; - var bufferData = accessor.BufferView.Buffer.BufferData; - - if (accessor.byteOffset >= 0) - { - byteOffset += accessor.byteOffset; - } - - if (accessor.normalized) { maxValue = 1; } - - for (int i = 0; i < accessor.count; i++) - { - if (accessor.componentType == GltfComponentType.Float) - { - array[i].x = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 0); - array[i].y = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 1); - array[i].z = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 2); - } - else - { - array[i].x = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 0, accessor.componentType) / maxValue; - array[i].y = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 1, accessor.componentType) / maxValue; - array[i].z = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 2, accessor.componentType) / maxValue; - } - - if (convert) - { - array[i].x *= CoordinateSpaceConversionScale.x; - array[i].y *= CoordinateSpaceConversionScale.y; - array[i].z *= CoordinateSpaceConversionScale.z; - } - } - - return array; - } - - /// - /// Get Vector4 array from accessor - /// - public static Vector4[] GetVector4Array(this GltfAccessor accessor, bool convert = true) - { - if (accessor.type != vec4 || accessor.componentType == GltfComponentType.UnsignedInt) - { - return null; - } - - var array = new Vector4[accessor.count]; - - GetTypeDetails(accessor.componentType, out int componentSize, out float maxValue); - var stride = accessor.BufferView.byteStride > 0 ? accessor.BufferView.byteStride : componentSize * 4; - var byteOffset = accessor.BufferView.byteOffset; - var bufferData = accessor.BufferView.Buffer.BufferData; - - if (accessor.byteOffset >= 0) - { - byteOffset += accessor.byteOffset; - } - - if (accessor.normalized) { maxValue = 1; } - - for (int i = 0; i < accessor.count; i++) - { - if (accessor.componentType == GltfComponentType.Float) - { - array[i].x = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 0); - array[i].y = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 1); - array[i].z = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 2); - array[i].w = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 3); - } - else - { - array[i].x = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 0, accessor.componentType) / maxValue; - array[i].y = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 1, accessor.componentType) / maxValue; - array[i].z = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 2, accessor.componentType) / maxValue; - array[i].w = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 3, accessor.componentType) / maxValue; - } - - if (convert) - { - array[i].x *= TangentSpaceConversionScale.x; - array[i].y *= TangentSpaceConversionScale.y; - array[i].z *= TangentSpaceConversionScale.z; - array[i].w *= TangentSpaceConversionScale.w; - } - } - - return array; - } - - /// - /// Get Color array from accessor - /// - public static Color[] GetColorArray(this GltfAccessor accessor) - { - if (accessor.type != vec3 && accessor.type != vec4 || accessor.componentType == GltfComponentType.UnsignedInt) - { - return null; - } - - var array = new Color[accessor.count]; - - GetTypeDetails(accessor.componentType, out int componentSize, out float maxValue); - bool hasAlpha = accessor.type == vec4; - - var stride = accessor.BufferView.byteStride > 0 ? accessor.BufferView.byteStride : componentSize * (hasAlpha ? 4 : 3); - var byteOffset = accessor.BufferView.byteOffset; - var bufferData = accessor.BufferView.Buffer.BufferData; - - if (accessor.byteOffset >= 0) - { - byteOffset += accessor.byteOffset; - } - - for (int i = 0; i < accessor.count; i++) - { - if (accessor.componentType == GltfComponentType.Float) - { - array[i].r = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 0); - array[i].g = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 1); - array[i].b = BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 2); - array[i].a = hasAlpha ? BitConverter.ToSingle(bufferData, byteOffset + i * stride + componentSize * 3) : 1f; - } - else - { - array[i].r = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 0, accessor.componentType) / maxValue; - array[i].g = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 1, accessor.componentType) / maxValue; - array[i].b = GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 2, accessor.componentType) / maxValue; - array[i].a = hasAlpha ? GetDiscreteElement(bufferData, byteOffset + i * stride + componentSize * 3, accessor.componentType) / maxValue : 1f; - } - } - - return array; - } - - private static void GetTypeDetails(GltfComponentType type, out int componentSize, out float maxValue) - { - componentSize = 1; - maxValue = byte.MaxValue; - - switch (type) - { - case GltfComponentType.Byte: - componentSize = sizeof(sbyte); - maxValue = sbyte.MaxValue; - break; - case GltfComponentType.UnsignedByte: - componentSize = sizeof(byte); - maxValue = byte.MaxValue; - break; - case GltfComponentType.Short: - componentSize = sizeof(short); - maxValue = short.MaxValue; - break; - case GltfComponentType.UnsignedShort: - componentSize = sizeof(ushort); - maxValue = ushort.MaxValue; - break; - case GltfComponentType.UnsignedInt: - componentSize = sizeof(uint); - maxValue = uint.MaxValue; - break; - case GltfComponentType.Float: - componentSize = sizeof(float); - maxValue = float.MaxValue; - break; - default: - throw new Exception("Unsupported component type."); - } - } - - private static int GetDiscreteElement(byte[] data, int offset, GltfComponentType type) - { - switch (type) - { - case GltfComponentType.Byte: - return Convert.ToSByte(data[offset]); - case GltfComponentType.UnsignedByte: - return data[offset]; - case GltfComponentType.Short: - return BitConverter.ToInt16(data, offset); - case GltfComponentType.UnsignedShort: - return BitConverter.ToUInt16(data, offset); - case GltfComponentType.UnsignedInt: - return (int)BitConverter.ToUInt32(data, offset); - default: - throw new Exception($"Unsupported type passed in: {type}"); - } - } - - private static uint GetDiscreteUnsignedElement(byte[] data, int offset, GltfComponentType type) - { - switch (type) - { - case GltfComponentType.Byte: - return (uint)Convert.ToSByte(data[offset]); - case GltfComponentType.UnsignedByte: - return data[offset]; - case GltfComponentType.Short: - return (uint)BitConverter.ToInt16(data, offset); - case GltfComponentType.UnsignedShort: - return BitConverter.ToUInt16(data, offset); - case GltfComponentType.UnsignedInt: - return BitConverter.ToUInt32(data, offset); - default: - throw new Exception($"Unsupported type passed in: {type}"); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs.meta deleted file mode 100644 index 590138687..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfConversions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8564a03eaf0ea1642b9c9214d8e1896b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs deleted file mode 100644 index 1b5e0bb9b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs +++ /dev/null @@ -1,455 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using UnityEngine; - -#if WINDOWS_UWP -using Windows.Storage; -using Windows.Storage.Streams; -#else -using Microsoft.MixedReality.Toolkit.Utilities; -#endif - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization -{ - public static class GltfUtility - { - private const uint GltfMagicNumber = 0x46546C67; - - private static readonly WaitForUpdate Update = new WaitForUpdate(); - private static readonly WaitForBackgroundThread BackgroundThread = new WaitForBackgroundThread(); - private static readonly string DefaultObjectName = "GLTF Object"; - - /// - /// Imports a glTF object from the provided uri. - /// - /// the path to the file to load - /// New imported from uri. - /// - /// Must be called from the main thread. - /// If the Application.isPlaying is false, then this method will run synchronously. - /// - public static async Task ImportGltfObjectFromPathAsync(string uri) - { - if (!SyncContextUtility.IsMainThread) - { - Debug.LogError("ImportGltfObjectFromPathAsync must be called from the main thread!"); - return null; - } - - if (string.IsNullOrWhiteSpace(uri)) - { - Debug.LogError("Uri is not valid."); - return null; - } - - GltfObject gltfObject; - bool useBackgroundThread = Application.isPlaying; - - if (useBackgroundThread) { await BackgroundThread; } - - if (uri.EndsWith(".gltf", StringComparison.OrdinalIgnoreCase)) - { - string gltfJson = File.ReadAllText(uri); - - gltfObject = GetGltfObjectFromJson(gltfJson); - - if (gltfObject == null) - { - Debug.LogError("Failed load Gltf Object from json schema."); - return null; - } - } - else if (uri.EndsWith(".glb", StringComparison.OrdinalIgnoreCase)) - { - byte[] glbData; - -#if WINDOWS_UWP - - if (useBackgroundThread) - { - try - { - var storageFile = await StorageFile.GetFileFromPathAsync(uri); - - if (storageFile == null) - { - Debug.LogError($"Failed to locate .glb file at {uri}"); - return null; - } - - var buffer = await FileIO.ReadBufferAsync(storageFile); - - using (DataReader dataReader = DataReader.FromBuffer(buffer)) - { - glbData = new byte[buffer.Length]; - dataReader.ReadBytes(glbData); - } - } - catch (Exception e) - { - Debug.LogError(e.Message); - return null; - } - } - else - { - glbData = UnityEngine.Windows.File.ReadAllBytes(uri); - } -#else - using (FileStream stream = File.Open(uri, FileMode.Open)) - { - glbData = new byte[stream.Length]; - - if (useBackgroundThread) - { - await stream.ReadAsync(glbData, 0, (int)stream.Length); - } - else - { - stream.Read(glbData, 0, (int)stream.Length); - } - } -#endif - - gltfObject = GetGltfObjectFromGlb(glbData); - - if (gltfObject == null) - { - Debug.LogError("Failed to load GlTF Object from .glb!"); - return null; - } - } - else - { - Debug.LogError("Unsupported file name extension."); - return null; - } - - gltfObject.Uri = uri; - - try - { - gltfObject.Name = Path.GetFileNameWithoutExtension(uri); - } - catch (ArgumentException) - { - Debug.LogWarning("Uri contained invalid character"); - gltfObject.Name = DefaultObjectName; - } - - gltfObject.UseBackgroundThread = useBackgroundThread; - await gltfObject.ConstructAsync(); - - if (gltfObject.GameObjectReference == null) - { - Debug.LogError("Failed to construct Gltf Object."); - } - - if (useBackgroundThread) { await Update; } - - return gltfObject; - } - - /// - /// Gets a glTF object from the provided json string. - /// - /// String defining a glTF Object. - /// - /// Returned still needs to be initialized using . - public static GltfObject GetGltfObjectFromJson(string jsonString) - { - var gltfObject = JsonUtility.FromJson(jsonString); - - if (gltfObject.extensionsRequired?.Length > 0) - { - Debug.LogError($"Required Extension Unsupported: {gltfObject.extensionsRequired[0]}"); - return null; - } - - for (int i = 0; i < gltfObject.extensionsUsed?.Length; i++) - { - Debug.LogWarning($"Unsupported Extension: {gltfObject.extensionsUsed[i]}"); - } - - var meshPrimitiveAttributes = GetGltfMeshPrimitiveAttributes(jsonString); - int numPrimitives = 0; - - for (var i = 0; i < gltfObject.meshes?.Length; i++) - { - numPrimitives += gltfObject.meshes[i]?.primitives?.Length ?? 0; - } - - if (numPrimitives != meshPrimitiveAttributes.Count) - { - Debug.LogError("The number of mesh primitive attributes does not match the number of mesh primitives"); - return null; - } - - int primitiveIndex = 0; - - for (int i = 0; i < gltfObject.meshes?.Length; i++) - { - for (int j = 0; j < gltfObject.meshes[i].primitives.Length; j++) - { - gltfObject.meshes[i].primitives[j].Attributes = new GltfMeshPrimitiveAttributes(StringIntDictionaryFromJson(meshPrimitiveAttributes[primitiveIndex])); - primitiveIndex++; - } - } - - return gltfObject; - } - - /// - /// Gets a glTF object from the provided byte array - /// - /// Raw glb byte data. - /// - /// Returned still needs to be initialized using . - public static GltfObject GetGltfObjectFromGlb(byte[] glbData) - { - const int stride = sizeof(uint); - - var magicNumber = BitConverter.ToUInt32(glbData, 0); - var version = BitConverter.ToUInt32(glbData, stride); - var length = BitConverter.ToUInt32(glbData, stride * 2); - - if (magicNumber != GltfMagicNumber) - { - Debug.LogError("File is not a glb object!"); - return null; - } - - if (version != 2) - { - Debug.LogError("Glb file version mismatch! Glb must use version 2"); - return null; - } - - if (length != glbData.Length) - { - Debug.LogError("Glb file size does not match the glb header defined size"); - return null; - } - - var chunk0Length = (int)BitConverter.ToUInt32(glbData, stride * 3); - var chunk0Type = BitConverter.ToUInt32(glbData, stride * 4); - - if (chunk0Type != (ulong)GltfChunkType.Json) - { - Debug.LogError("Expected chunk 0 to be Json data!"); - return null; - } - - var jsonChunk = Encoding.ASCII.GetString(glbData, stride * 5, chunk0Length); - var gltfObject = GetGltfObjectFromJson(jsonChunk); - var chunk1Length = (int)BitConverter.ToUInt32(glbData, stride * 5 + chunk0Length); - var chunk1Type = BitConverter.ToUInt32(glbData, stride * 6 + chunk0Length); - - if (chunk1Type != (ulong)GltfChunkType.BIN) - { - Debug.LogError("Expected chunk 1 to be BIN data!"); - return null; - } - - // Per the spec, "byte length of BIN chunk could be up to 3 bytes bigger than JSON-defined buffer.byteLength to satisfy GLB padding requirements" - // https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#glb-stored-buffer - Debug.Assert(gltfObject.buffers[0].byteLength <= chunk1Length && gltfObject.buffers[0].byteLength >= chunk1Length - 3, "chunk 1 & buffer 0 length mismatch"); - - gltfObject.buffers[0].BufferData = new byte[chunk1Length]; - Array.Copy(glbData, stride * 7 + chunk0Length, gltfObject.buffers[0].BufferData, 0, chunk1Length); - - return gltfObject; - } - - /// - /// Get a single Json Object using the handle provided. - /// - /// The json string to search. - /// The handle to look for. - /// A snippet of the json string that defines the object. - private static string GetJsonObject(string jsonString, string handle) - { - var regex = new Regex($"\"{handle}\"\\s*:\\s*\\{{"); - var match = regex.Match(jsonString); - return match.Success ? GetJsonObject(jsonString, match.Index + match.Length) : null; - } - - private static List GetGltfMeshPrimitiveAttributes(string jsonString) - { - var regex = new Regex("\"attributes\" ?: ?(?{[^}]+})"); - return GetGltfMeshPrimitiveAttributes(jsonString, regex); - } - - private static List GetGltfMeshPrimitiveAttributes(string jsonString, Regex regex) - { - var jsonObjects = new List(); - - if (!regex.IsMatch(jsonString)) - { - return jsonObjects; - } - - MatchCollection matches = regex.Matches(jsonString); - - for (var i = 0; i < matches.Count; i++) - { - jsonObjects.Add(matches[i].Groups["Data"].Captures[0].Value); - } - - return jsonObjects; - } - - /// - /// Get a collection of glTF Extensions using the handle provided. - /// - /// The json string to search. - /// The handle to look for. - /// A collection of snippets with the json string that defines the object. - private static Dictionary GetGltfExtensionObjects(string jsonString, string handle) - { - // Assumption: This code assumes that a name is declared before extensions in the glTF schema. - // This may not work for all exporters. Some exporters may fail to adhere to the standard glTF schema. - var regex = new Regex($"(\"name\":\\s*\"\\w*\",\\s*\"extensions\":\\s*{{\\s*?)(\"{handle}\"\\s*:\\s*{{)"); - return GetGltfExtensions(jsonString, regex); - } - - /// - /// Get a collection of glTF Extras using the handle provided. - /// - /// The json string to search. - /// The handle to look for. - /// A collection of snippets with the json string that defines the object. - private static Dictionary GetGltfExtraObjects(string jsonString, string handle) - { - // Assumption: This code assumes that a name is declared before extensions in the glTF schema. - // This may not work for all exporters. Some exporters may fail to adhere to the standard glTF schema. - var regex = new Regex($"(\"name\":\\s*\"\\w*\",\\s*\"extras\":\\s*{{\\s*?)(\"{handle}\"\\s*:\\s*{{)"); - return GetGltfExtensions(jsonString, regex); - } - - private static Dictionary GetGltfExtensions(string jsonString, Regex regex) - { - var jsonObjects = new Dictionary(); - - if (!regex.IsMatch(jsonString)) - { - return jsonObjects; - } - - var matches = regex.Matches(jsonString); - var nodeName = string.Empty; - - for (var i = 0; i < matches.Count; i++) - { - for (int j = 0; j < matches[i].Groups.Count; j++) - { - for (int k = 0; k < matches[i].Groups[i].Captures.Count; k++) - { - nodeName = GetGltfNodeName(matches[i].Groups[i].Captures[i].Value); - } - } - - if (!jsonObjects.ContainsKey(nodeName)) - { - jsonObjects.Add(nodeName, GetJsonObject(jsonString, matches[i].Index + matches[i].Length)); - } - } - - return jsonObjects; - } - - private static string GetJsonObject(string jsonString, int startOfObject) - { - int index; - int bracketCount = 1; - - for (index = startOfObject; bracketCount > 0; index++) - { - if (jsonString[index] == '{') - { - bracketCount++; - } - else if (jsonString[index] == '}') - { - bracketCount--; - } - } - - return $"{{{jsonString.Substring(startOfObject, index - startOfObject)}"; - } - - private static string GetGltfNodeName(string jsonString) - { - jsonString = jsonString.Replace("\"name\"", string.Empty); - jsonString = jsonString.Replace(": \"", string.Empty); - jsonString = jsonString.Replace(":\"", string.Empty); - jsonString = jsonString.Substring(0, jsonString.IndexOf("\"", StringComparison.Ordinal)); - return jsonString; - } - - /// - /// A utility function to work around the JsonUtility inability to deserialize to a dictionary. - /// - /// JSON string - /// A dictionary with the key value pairs found in the json - private static Dictionary StringIntDictionaryFromJson(string json) - { - string reformatted = JsonDictionaryToArray(json); - StringIntKeyValueArray loadedData = JsonUtility.FromJson(reformatted); - Dictionary dictionary = new Dictionary(); - for (int i = 0; i < loadedData.items.Length; i++) - { - dictionary.Add(loadedData.items[i].key, loadedData.items[i].value); - } - return dictionary; - } - - /// - /// Takes a json object string with key value pairs, and returns a json string - /// in the format of `{"items": [{"key": $key_name, "value": $value}]}`. - /// This format can be handled by JsonUtility and support an arbitrary number - /// of key/value pairs - /// - /// JSON string in the format `{"key": $value}` - /// Returns a reformatted JSON string - private static string JsonDictionaryToArray(string json) - { - string reformatted = "{\"items\": ["; - string pattern = @"""(\w+)"":\s?(""?\w+""?)"; - RegexOptions options = RegexOptions.Multiline; - - foreach (Match m in Regex.Matches(json, pattern, options)) - { - string key = m.Groups[1].Value; - string value = m.Groups[2].Value; - - reformatted += $"{{\"key\":\"{key}\", \"value\":{value}}},"; - } - reformatted = reformatted.TrimEnd(','); - reformatted += "]}"; - return reformatted; - } - - [System.Serializable] - private class StringKeyValue - { - public string key = string.Empty; - public int value = 0; - } - - [System.Serializable] - private class StringIntKeyValueArray - { - public StringKeyValue[] items = Array.Empty(); - } - - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs.meta deleted file mode 100644 index d9a40f4f3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/GltfUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c6b7de3ddab0df94182d02966afa75db -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers.meta deleted file mode 100644 index c970aaa07..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0650c8de7b362fb408a9e68f40f6eb52 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs.meta deleted file mode 100644 index 90641497d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b7b2378316e707543af10b8a055f10ce -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs deleted file mode 100644 index c4986b421..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if UNITY_2020_2_OR_NEWER -using UnityEditor.AssetImporters; -#else -using UnityEditor.Experimental.AssetImporters; -#endif // UNITY_2020_2_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization.Editor -{ - [ScriptedImporter(1, "glb")] - public class GlbAssetImporter : ScriptedImporter - { - public override void OnImportAsset(AssetImportContext context) - { - GltfEditorImporter.OnImportGltfAsset(context); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs.meta deleted file mode 100644 index fcd608bc2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GlbAssetImporter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 75911c45f303c8f45927f5efeaa50cc4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs deleted file mode 100644 index f47051614..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if UNITY_2020_2_OR_NEWER -using UnityEditor.AssetImporters; -#else -using UnityEditor.Experimental.AssetImporters; -#endif // UNITY_2020_2_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization.Editor -{ - [ScriptedImporter(1, "gltf")] - public class GltfAssetImporter : ScriptedImporter - { - public override void OnImportAsset(AssetImportContext context) - { - GltfEditorImporter.OnImportGltfAsset(context); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs.meta deleted file mode 100644 index 6040510bc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfAssetImporter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8f83316e73954ae4fa56b79705605b45 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs deleted file mode 100644 index 7654732f9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Gltf.Schema; -using System.IO; -using UnityEditor; -using UnityEngine; - -#if UNITY_2020_2_OR_NEWER -using UnityEditor.AssetImporters; -#else -using UnityEditor.Experimental.AssetImporters; -#endif // UNITY_2020_2_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization.Editor -{ - public static class GltfEditorImporter - { - public static async void OnImportGltfAsset(AssetImportContext context) - { - var importedObject = await GltfUtility.ImportGltfObjectFromPathAsync(context.assetPath); - - if (importedObject == null || - importedObject.GameObjectReference == null) - { - Debug.LogError("Failed to import glTF object"); - return; - } - - var gltfAsset = (GltfAsset)ScriptableObject.CreateInstance(typeof(GltfAsset)); - - gltfAsset.GltfObject = importedObject; - gltfAsset.name = $"{gltfAsset.GltfObject.Name}{Path.GetExtension(context.assetPath)}"; - gltfAsset.Model = importedObject.GameObjectReference; - context.AddObjectToAsset("main", gltfAsset.Model); - context.SetMainObject(importedObject.GameObjectReference); - context.AddObjectToAsset("glTF data", gltfAsset); - - bool reImport = false; - - for (var i = 0; i < gltfAsset.GltfObject.textures?.Length; i++) - { - GltfTexture gltfTexture = gltfAsset.GltfObject.textures[i]; - - if (gltfTexture == null) { continue; } - - var path = AssetDatabase.GetAssetPath(gltfTexture.Texture); - - if (string.IsNullOrWhiteSpace(path)) - { - var textureName = gltfTexture.name; - - if (string.IsNullOrWhiteSpace(textureName)) - { - textureName = $"Texture_{i}"; - gltfTexture.Texture.name = textureName; - } - - context.AddObjectToAsset(textureName, gltfTexture.Texture); - } - else - { - if (!gltfTexture.Texture.isReadable) - { - var textureImporter = AssetImporter.GetAtPath(path) as TextureImporter; - if (textureImporter != null) - { - textureImporter.isReadable = true; - textureImporter.SetPlatformTextureSettings(new TextureImporterPlatformSettings { format = TextureImporterFormat.RGBA32 }); - textureImporter.SaveAndReimport(); - reImport = true; - } - } - } - } - - if (reImport) - { - var importer = AssetImporter.GetAtPath(context.assetPath); - importer.SaveAndReimport(); - return; - } - - for (var i = 0; i < gltfAsset.GltfObject.meshes?.Length; i++) - { - GltfMesh gltfMesh = gltfAsset.GltfObject.meshes[i]; - - string meshName = string.IsNullOrWhiteSpace(gltfMesh.name) ? $"Mesh_{i}" : gltfMesh.name; - - gltfMesh.Mesh.name = meshName; - context.AddObjectToAsset($"{meshName}", gltfMesh.Mesh); - } - - if (gltfAsset.GltfObject.materials != null) - { - foreach (GltfMaterial gltfMaterial in gltfAsset.GltfObject.materials) - { - context.AddObjectToAsset(gltfMaterial.name, gltfMaterial.Material); - } - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs.meta deleted file mode 100644 index 362567525..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/GltfEditorImporter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6ae92dd13cdd4894f8a226c8ff005198 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef deleted file mode 100644 index 6bb846115..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Gltf.Importers", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Async", - "Microsoft.MixedReality.Toolkit.Gltf", - "Microsoft.MixedReality.Toolkit.Editor.Utilities" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef.meta deleted file mode 100644 index d03241c89..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Gltf/Serialization/Importers/MRTK.Gltf.Importers.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7242e48b40555bb4c83749fe1c745d55 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields.meta b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields.meta deleted file mode 100644 index bbc9ade66..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 55623953e2c79fa43a4a099252648c88 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs deleted file mode 100644 index 56c1da807..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs +++ /dev/null @@ -1,255 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Events; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A set of field/property tags used to define how a property should render in a custom inspector - /// - public class InspectorField : Attribute - { - /// - /// Property types used for casting and defining property fields in the inspector - /// - public enum FieldTypes - { - Float, - Int, - String, - Bool, - Color, - DropdownInt, - DropdownString, - GameObject, - ScriptableObject, - Object, - Material, - Texture, - Vector2, - Vector3, - Vector4, - Curve, - Quaternion, - AudioClip, - Event - } - - /// - /// The type of field or property value type - /// - public FieldTypes Type { get; set; } - - /// - /// The label that will be rendered with the property field in the custom inspector - /// - public string Label { get; set; } - - /// - /// A tooltip for the property field - /// - public string Tooltip { get; set; } - - /// - /// A string list of options for a pop-up list - /// - public string[] Options { get; set; } - - /// - /// An object to hold the actual value - /// - public UnityEngine.Object Value { get; set; } - - public static InspectorPropertySetting FieldToProperty(InspectorField attributes, object fieldValue, string fieldName) - { - InspectorPropertySetting setting = new InspectorPropertySetting(); - setting.Type = attributes.Type; - setting.Tooltip = attributes.Tooltip; - setting.Label = attributes.Label; - setting.Options = attributes.Options; - setting.Name = fieldName; - setting = UpdatePropertySetting(setting, fieldValue); - return setting; - } - - /// - /// Set the value of the propertySetting - /// - public static InspectorPropertySetting UpdatePropertySetting(InspectorPropertySetting setting, object update) - { - switch (setting.Type) - { - case InspectorField.FieldTypes.Float: - setting.FloatValue = (float)update; - break; - case InspectorField.FieldTypes.Int: - setting.IntValue = (int)update; - break; - case InspectorField.FieldTypes.String: - setting.StringValue = (string)update; - break; - case InspectorField.FieldTypes.Bool: - setting.BoolValue = (bool)update; - break; - case InspectorField.FieldTypes.Color: - setting.ColorValue = (Color)update; - break; - case InspectorField.FieldTypes.DropdownInt: - setting.IntValue = (int)update; - break; - case InspectorField.FieldTypes.DropdownString: - setting.StringValue = (string)update; - break; - case InspectorField.FieldTypes.GameObject: - setting.GameObjectValue = (GameObject)update; - break; - case InspectorField.FieldTypes.ScriptableObject: - setting.ScriptableObjectValue = (ScriptableObject)update; - break; - case InspectorField.FieldTypes.Object: - setting.ObjectValue = (UnityEngine.Object)update; - break; - case InspectorField.FieldTypes.Material: - setting.MaterialValue = (Material)update; - break; - case InspectorField.FieldTypes.Texture: - setting.TextureValue = (Texture)update; - break; - case InspectorField.FieldTypes.Vector2: - setting.Vector2Value = (Vector2)update; - break; - case InspectorField.FieldTypes.Vector3: - setting.Vector3Value = (Vector3)update; - break; - case InspectorField.FieldTypes.Vector4: - setting.Vector4Value = (Vector4)update; - break; - case InspectorField.FieldTypes.Curve: - setting.CurveValue = (AnimationCurve)update; - break; - case InspectorField.FieldTypes.Quaternion: - setting.QuaternionValue = (Quaternion)update; - break; - case InspectorField.FieldTypes.AudioClip: - setting.AudioClipValue = (AudioClip)update; - break; - case InspectorField.FieldTypes.Event: - setting.EventValue = (UnityEvent)update; - break; - default: - break; - } - return setting; - } - - /// - /// Get the propertySettings value - /// - public static object GetSettingValue(List settings, string name) - { - InspectorPropertySetting setting = new InspectorPropertySetting(); - bool hasSetting = false; - for (int i = 0; i < settings.Count; i++) - { - if (settings[i].Name == name) - { - setting = settings[i]; - hasSetting = true; - break; - } - } - - if (!hasSetting) - { - return null; - } - - object value = null; - - switch (setting.Type) - { - case InspectorField.FieldTypes.Float: - value = setting.FloatValue; - break; - case InspectorField.FieldTypes.Int: - value = setting.IntValue; - break; - case InspectorField.FieldTypes.String: - value = setting.StringValue; - break; - case InspectorField.FieldTypes.Bool: - value = setting.BoolValue; - break; - case InspectorField.FieldTypes.Color: - value = setting.ColorValue; - break; - case InspectorField.FieldTypes.DropdownInt: - value = setting.IntValue; - break; - case InspectorField.FieldTypes.DropdownString: - value = setting.StringValue; - break; - case InspectorField.FieldTypes.GameObject: - value = setting.GameObjectValue; - break; - case InspectorField.FieldTypes.ScriptableObject: - value = setting.ScriptableObjectValue; - break; - case InspectorField.FieldTypes.Object: - value = setting.ObjectValue; - break; - case InspectorField.FieldTypes.Material: - value = setting.MaterialValue; - break; - case InspectorField.FieldTypes.Texture: - value = setting.TextureValue; - break; - case InspectorField.FieldTypes.Vector2: - value = setting.Vector2Value; - break; - case InspectorField.FieldTypes.Vector3: - value = setting.Vector3Value; - break; - case InspectorField.FieldTypes.Vector4: - value = setting.Vector4Value; - break; - case InspectorField.FieldTypes.Curve: - value = setting.CurveValue; - break; - case InspectorField.FieldTypes.Quaternion: - value = setting.QuaternionValue; - break; - case InspectorField.FieldTypes.AudioClip: - value = setting.AudioClipValue; - break; - case InspectorField.FieldTypes.Event: - value = setting.EventValue; - break; - default: - break; - } - - return value; - } - - /// - /// Get the index from a list of strings using string comparison - /// - public static int ReverseLookup(string option, string[] options) - { - for (int i = 0; i < options.Length; i++) - { - if (options[i] == option) - { - return i; - } - } - - return 0; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs.meta deleted file mode 100644 index bb750f2bd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorField.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 80b1d190239f39643bc9ae7c4e4be1b6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs deleted file mode 100644 index d483d1568..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - - - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A reference to the InspectorField and cached info - /// - [System.Serializable] - public struct InspectorFieldData - { - public InspectorField Attributes; - public object Value; - public string Name; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs.meta deleted file mode 100644 index 79231e20b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorFieldData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 97b9f92c2bc2ea04f9424f2e40c066b9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs deleted file mode 100644 index 22be56845..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Reflection; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A set of Inspector fields for setting up properties in a - /// component that can be automatically rendered in a custom inspector - /// - public class InspectorGenericFields - { - /// - /// Copies values from Inspector PropertySettings to an instantiated class on start, - /// helps overcome polymorphism limitations of serialization - /// - public static void LoadSettings(T target, List settings) - { - Type myType = target.GetType(); - - List propInfoList = new List(myType.GetProperties()); - for (int i = 0; i < propInfoList.Count; i++) - { - PropertyInfo propInfo = propInfoList[i]; - var attrs = (InspectorField[])propInfo.GetCustomAttributes(typeof(InspectorField), false); - foreach (var attr in attrs) - { - object value = InspectorField.GetSettingValue(settings, propInfo.Name); - if (value != null) - { - propInfo.SetValue(target, value); - } - } - } - - List fieldInfoList = new List(myType.GetFields()); - for (int i = 0; i < fieldInfoList.Count; i++) - { - FieldInfo fieldInfo = fieldInfoList[i]; - var attrs = (InspectorField[])fieldInfo.GetCustomAttributes(typeof(InspectorField), false); - foreach (var attr in attrs) - { - object value = InspectorField.GetSettingValue(settings, fieldInfo.Name); - if (value != null) - { - fieldInfo.SetValue(target, value); - } - } - } - } - - /// - /// Searches through a class for InspectorField tags creates properties that can be serialized and - /// automatically rendered in a custom inspector - /// - public static List GetSettings(T source) - { - Type myType = source.GetType(); - List settings = new List(); - - List propInfoList = new List(myType.GetProperties()); - for (int i = 0; i < propInfoList.Count; i++) - { - PropertyInfo propInfo = propInfoList[i]; - var attrs = (InspectorField[])propInfo.GetCustomAttributes(typeof(InspectorField), false); - foreach (var attr in attrs) - { - settings.Add(InspectorField.FieldToProperty(attr, propInfo.GetValue(source, null), propInfo.Name)); - } - } - - List fieldInfoList = new List(myType.GetFields()); - for (int i = 0; i < fieldInfoList.Count; i++) - { - FieldInfo fieldInfo = fieldInfoList[i]; - var attrs = (InspectorField[])fieldInfo.GetCustomAttributes(typeof(InspectorField), false); - foreach (var attr in attrs) - { - settings.Add(InspectorField.FieldToProperty(attr, fieldInfo.GetValue(source), fieldInfo.Name)); - } - } - - return settings; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs.meta deleted file mode 100644 index f147edb5a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorGenericFields.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ea49b0bc6c80bdd4db8093d1f7d171b4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs deleted file mode 100644 index 531f1a52b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.Events; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A InspectorField property definition and value. - /// - [System.Serializable] - public struct InspectorPropertySetting - { - public InspectorField.FieldTypes Type; - public string Label; - public string Name; - public string Tooltip; - public int IntValue; - public string StringValue; - public float FloatValue; - public bool BoolValue; - public GameObject GameObjectValue; - public ScriptableObject ScriptableObjectValue; - public UnityEngine.Object ObjectValue; - public Material MaterialValue; - public Texture TextureValue; - public Color ColorValue; - public Vector2 Vector2Value; - public Vector3 Vector3Value; - public Vector4 Vector4Value; - public AnimationCurve CurveValue; - public AudioClip AudioClipValue; - public Quaternion QuaternionValue; - public UnityEvent EventValue; - public string[] Options; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs.meta deleted file mode 100644 index 7be1df6e6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/InspectorFields/InspectorPropertySettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 28aa2ad405cd7344a975070e7678c798 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines.meta deleted file mode 100644 index befc2961f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 44b724db408745aca625b7b1bc499624 -folderAsset: yes -timeCreated: 1509729123 -licenseType: Free -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders.meta deleted file mode 100644 index b395f9328..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3d7f942a97e94f7ea538e6d0cb04fb8c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs deleted file mode 100644 index 7db92f2e1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs +++ /dev/null @@ -1,670 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Base class that provides data about a line. - /// - /// Data to be consumed by other classes like the - [ExecuteAlways] - public abstract class BaseMixedRealityLineDataProvider : MonoBehaviour - { - #region Properties - - [Range(MinLineStartClamp, MaxLineEndClamp)] - [SerializeField] - [Tooltip("Clamps the line's normalized start point. This setting will affect line renderers.")] - private float lineStartClamp = MinLineStartClamp; - - /// - /// Clamps the line's normalized start point. This setting will affect line renderers. - /// - public float LineStartClamp - { - get => lineStartClamp; - set => lineStartClamp = Mathf.Clamp(value, MinLineStartClamp, MaxLineEndClamp); - } - - [Range(MinLineStartClamp, MaxLineEndClamp)] - [SerializeField] - [Tooltip("Clamps the line's normalized end point. This setting will affect line renderers.")] - private float lineEndClamp = MaxLineEndClamp; - - /// - /// Clamps the line's normalized end point. This setting will affect line renderers. - /// - public float LineEndClamp - { - get => lineEndClamp; - set => lineEndClamp = Mathf.Clamp(value, MinLineStartClamp, MaxLineEndClamp); - } - - [SerializeField] - [Tooltip("Transform to use when translating points from local to world space. If null, this object's transform is used.")] - private Transform customLineTransform; - - /// - /// Transform to use when translating points from local to world space. If null, this object's transform is used. - /// - public Transform LineTransform - { - get => customLineTransform != null ? customLineTransform : transform; - set => customLineTransform = value; - } - - [SerializeField] - [Tooltip("Controls whether this line loops \nNote: some classes override this setting")] - private bool loops = false; - - /// - /// Controls whether this line loops - /// - /// Some classes override this setting. - public virtual bool Loops - { - get => loops; - set => loops = value; - } - - [SerializeField] - [Tooltip("The transform mode used by the line. UseTransform will work when line is disabled, but at a performance cost. UseMatrix requires that the line be active and enabled to return accurate points.")] - private LinePointTransformMode transformMode = LinePointTransformMode.UseTransform; - - /// - /// Defines how a base line data provider will transform its points - /// - public LinePointTransformMode TransformMode - { - get => transformMode; - set => transformMode = value; - } - - [SerializeField] - [Tooltip("The rotation mode used in the GetRotation function. You can visualize rotations by checking Draw Rotations under Editor Settings.")] - private LineRotationMode rotationMode = LineRotationMode.Velocity; - - /// - /// The rotation mode used in the GetRotation function. You can visualize rotations by checking Draw Rotations under Editor Settings. - /// - public LineRotationMode RotationMode - { - get => rotationMode; - set => rotationMode = value; - } - - [SerializeField] - [Tooltip("Reverses up vector when determining rotation along line")] - private bool flipUpVector = false; - - /// - /// Reverses up vector when determining rotation along line - /// - public bool FlipUpVector - { - get => flipUpVector; - set => flipUpVector = value; - } - - [SerializeField] - [Tooltip("Local space offset to transform position. Used to determine rotation along line in RelativeToOrigin rotation mode")] - private Vector3 originOffset = Vector3.zero; - - /// - /// Local space offset to transform position. Used to determine rotation along line in RelativeToOrigin rotation mode - /// - public Vector3 OriginOffset - { - get => originOffset; - set => originOffset = value; - } - - [Range(0f, 1f)] - [SerializeField] - [Tooltip("The weight of manual up vectors in Velocity rotation mode")] - private float manualUpVectorBlend = 0f; - - /// - /// The weight of manual up vectors in Velocity rotation mode - /// - public float ManualUpVectorBlend - { - get => manualUpVectorBlend; - set => manualUpVectorBlend = Mathf.Clamp01(value); - } - - [SerializeField] - [Tooltip("These vectors are used with ManualUpVectorBlend to determine rotation along the line in Velocity rotation mode. Vectors are distributed along the normalized length of the line.")] - private Vector3[] manualUpVectors = { Vector3.up, Vector3.up, Vector3.up }; - - /// - /// These vectors are used with ManualUpVectorBlend to determine rotation along the line in Velocity rotation mode. Vectors are distributed along the normalized length of the line. - /// - public Vector3[] ManualUpVectors - { - get => manualUpVectors; - set => manualUpVectors = value; - } - - [SerializeField] - [Range(0.0001f, 0.1f)] - [Tooltip("Used in Velocity rotation mode. Smaller values are more accurate but more expensive")] - private float velocitySearchRange = 0.02f; - - /// - /// Used in Velocity rotation mode. - /// - /// - /// Smaller values are more accurate but more expensive - /// - public float VelocitySearchRange - { - get => velocitySearchRange; - set => velocitySearchRange = Mathf.Clamp(value, 0.001f, 0.1f); - } - - [SerializeField] - private List distorters = new List(); - - /// - /// A list of distorters that apply to this line - /// - public IReadOnlyList Distorters - { - get - { - if (distorters.Count == 0) - { - distorters.AddRange(GetComponents()); - distorters.Sort(); - } - - return distorters; - } - } - - [SerializeField] - [Tooltip("Enables / disables all distorters used by line")] - private bool distortionEnabled = true; - - /// - /// Enabled / disables all distorters used by line. - /// - public bool DistortionEnabled - { - get => distortionEnabled; - set => distortionEnabled = value; - } - - [SerializeField] - [Tooltip("NormalizedLength mode uses the DistortionStrength curve for distortion strength, Uniform uses UniformDistortionStrength along entire line")] - private DistortionMode distortionMode = DistortionMode.NormalizedLength; - - /// - /// NormalizedLength mode uses the DistortionStrength curve for distortion strength, Uniform uses UniformDistortionStrength along entire line - /// - public DistortionMode DistortionMode - { - get => distortionMode; - set => distortionMode = value; - } - - [SerializeField] - [Tooltip("Curve that defines distortion strength over distance, only used when DistortionMode = NormalizedLength")] - private AnimationCurve distortionStrength = AnimationCurve.Linear(0f, 1f, 1f, 1f); - - /// - /// Curve that defines distortion strength over distance, only used when DistortionMode = NormalizedLength - /// - public AnimationCurve DistortionStrength - { - get => distortionStrength; - set => distortionStrength = value; - } - - [Range(0f, 1f)] - [Tooltip("Float value that defines distortion strength uniformly over distance, only used when DistortionMode = Uniform")] - [SerializeField] - private float uniformDistortionStrength = 1f; - - /// - /// Float value that defines distortion strength uniformly over distance, only used when DistortionMode = Uniform - /// - public float UniformDistortionStrength - { - get => uniformDistortionStrength; - set => uniformDistortionStrength = Mathf.Clamp01(value); - } - - /// - /// Returns world position of first point along line as defined by this data provider - /// - public Vector3 FirstPoint - { - get => GetPoint(0); - set => SetPoint(0, value); - } - - /// - /// Returns world position of last point along line as defined by this data provider - /// - public Vector3 LastPoint - { - get => GetPoint(PointCount - 1); - set => SetPoint(PointCount - 1, value); - } - - public float UnClampedWorldLength => GetUnClampedWorldLengthInternal(); - - #endregion - - #region BaseMixedRealityLineDataProvider Abstract Declarations - - /// - /// The number of points this line has. - /// - public abstract int PointCount { get; } - - /// - /// Sets the point at index. - /// - protected abstract void SetPointInternal(int pointIndex, Vector3 point); - - /// - /// Get a point based on normalized distance along line - /// Normalized distance will be pre-clamped - /// - protected abstract Vector3 GetPointInternal(float normalizedLength); - - /// - /// Get a point based on point index - /// Point index will be pre-clamped - /// - protected abstract Vector3 GetPointInternal(int pointIndex); - - /// - /// Gets the up vector at a normalized length along line (used for rotation) - /// - protected virtual Vector3 GetUpVectorInternal(float normalizedLength) - { - return LineTransform.forward; - } - - /// - /// Get the UnClamped world length of the line - /// - protected abstract float GetUnClampedWorldLengthInternal(); - - private Matrix4x4 localToWorldMatrix; - private Matrix4x4 worldToLocalMatrix; - - protected const int UnclampedWorldLengthSearchSteps = 10; - private const float MinRotationMagnitude = 0.0001f; - private const float MinLineStartClamp = 0.0001f; - private const float MaxLineEndClamp = 0.9999f; - - #endregion BaseMixedRealityLineDataProvider Abstract Declarations - - #region MonoBehaviour Implementation - - protected virtual void OnEnable() - { - UpdateMatrix(); - } - - protected virtual void LateUpdate() - { - UpdateMatrix(); - } - - #endregion MonoBehaviour Implementation - - /// - /// Returns a normalized length corresponding to a world length - /// Useful for determining LineStartClamp / LineEndClamp values - /// - public float GetNormalizedLengthFromWorldLength(float worldLength, int searchResolution = 10) - { - if (searchResolution < 1) - { - return 0; - } - - Vector3 lastPoint = GetUnClampedPoint(0f); - float normalizedLength = 0f; - float distanceSoFar = 0f; - float normalizedSegmentLength = 1f / searchResolution; - - for (int i = 1; i <= searchResolution; i++) - { - // Get the normalized length of this position along the line - normalizedLength = normalizedSegmentLength * i; - - Vector3 currentPoint = GetUnClampedPoint(normalizedLength); - - float currDistance = Vector3.Distance(lastPoint, currentPoint); - distanceSoFar += currDistance; - - if (distanceSoFar >= worldLength) - { - // We've reached the world length, so subtract the amount we overshot - normalizedLength -= (distanceSoFar - worldLength) / currDistance * normalizedSegmentLength; - break; - } - - lastPoint = currentPoint; - } - - return Mathf.Clamp01(normalizedLength); - } - - /// - /// Gets the velocity along the line - /// - public Vector3 GetVelocity(float normalizedLength) - { - Vector3 velocity; - - if (normalizedLength < velocitySearchRange) - { - Vector3 currentPos = GetPoint(normalizedLength); - Vector3 nextPos = GetPoint(normalizedLength + velocitySearchRange); - velocity = (nextPos - currentPos).normalized; - } - else - { - Vector3 currentPos = GetPoint(normalizedLength); - Vector3 prevPos = GetPoint(normalizedLength - velocitySearchRange); - velocity = (currentPos - prevPos).normalized; - } - - return velocity; - } - - /// - /// Gets the rotation of a point along the line at the specified length - /// - public Quaternion GetRotation(float normalizedLength, LineRotationMode lineRotationMode = LineRotationMode.None) - { - lineRotationMode = (lineRotationMode != LineRotationMode.None) ? lineRotationMode : rotationMode; - Vector3 rotationVector = Vector3.zero; - - switch (lineRotationMode) - { - case LineRotationMode.Velocity: - rotationVector = GetVelocity(normalizedLength); - break; - case LineRotationMode.RelativeToOrigin: - Vector3 point = GetPoint(normalizedLength); - Vector3 origin = originOffset; - TransformPoint(ref origin); - rotationVector = (point - origin).normalized; - break; - case LineRotationMode.None: - return LineTransform.rotation; - } - - if (rotationVector.magnitude < MinRotationMagnitude) - { - return LineTransform.rotation; - } - - Vector3 upVector = GetUpVectorInternal(normalizedLength); - - if (manualUpVectorBlend > 0f) - { - Vector3 manualUpVector = LineUtility.GetVectorCollectionBlend(manualUpVectors, normalizedLength, Loops); - upVector = Vector3.Lerp(upVector, manualUpVector, manualUpVector.magnitude); - } - - if (flipUpVector) - { - upVector = -upVector; - } - - return Quaternion.LookRotation(rotationVector, upVector); - } - - /// - /// Gets the rotation of a point along the line at the specified index - /// - public Quaternion GetRotation(int pointIndex, LineRotationMode lineRotationMode = LineRotationMode.None) - { - return GetRotation((float)pointIndex / PointCount, lineRotationMode != LineRotationMode.None ? lineRotationMode : rotationMode); - } - - /// - /// Gets a point along the line at the specified normalized length. - /// - public Vector3 GetPoint(float normalizedLength) - { - normalizedLength = Mathf.Lerp(lineStartClamp, lineEndClamp, Mathf.Clamp01(normalizedLength)); - Vector3 point = GetPointInternal(normalizedLength); - TransformPoint(ref point); - DistortPoint(ref point, normalizedLength); - return point; - } - - /// - /// Gets a point along the line at the specified length without using LineStartClamp or LineEndClamp - /// - public Vector3 GetUnClampedPoint(float normalizedLength) - { - normalizedLength = Mathf.Clamp01(normalizedLength); - Vector3 point = GetPointInternal(normalizedLength); - TransformPoint(ref point); - DistortPoint(ref point, normalizedLength); - return point; - } - - /// - /// Gets a point along the line at the specified index - /// - public Vector3 GetPoint(int pointIndex) - { - if (pointIndex < 0 || pointIndex >= PointCount) - { - Debug.LogError("Invalid point index"); - return Vector3.zero; - } - - Vector3 point = GetPointInternal(pointIndex); - TransformPoint(ref point); - return point; - } - - /// - /// Sets a point in the line - /// This function is not guaranteed to have an effect - /// - public void SetPoint(int pointIndex, Vector3 point) - { - if (pointIndex < 0 || pointIndex >= PointCount) - { - Debug.LogError("Invalid point index"); - return; - } - - InverseTransformPoint(ref point); - SetPointInternal(pointIndex, point); - } - - /// - /// Iterates along line until it finds the point closest to worldPosition - /// - public Vector3 GetClosestPoint(Vector3 worldPosition, int resolution = 5, int maxIterations = 5) - { - float length = GetNormalizedLengthFromWorldPos(worldPosition, resolution, maxIterations); - return GetPoint(length); - } - - /// - /// Iterates along line until it finds the length closest to worldposition. - /// - public float GetNormalizedLengthFromWorldPos(Vector3 worldPosition, int resolution = 5, int maxIterations = 5) - { - int iteration = 0; - return GetNormalizedLengthFromWorldPosInternal(worldPosition, 0f, ref iteration, resolution, maxIterations, 0f, 1f); - } - - private void InverseTransformPoint(ref Vector3 point) - { - switch (transformMode) - { - case LinePointTransformMode.UseTransform: - default: - point = LineTransform.InverseTransformPoint(point); - return; - case LinePointTransformMode.UseMatrix: - point = worldToLocalMatrix.MultiplyPoint3x4(point); - return; - } - } - - private void TransformPoint(ref Vector3 point) - { - switch (transformMode) - { - case LinePointTransformMode.UseTransform: - default: - point = LineTransform.TransformPoint(point); - return; - case LinePointTransformMode.UseMatrix: - point = localToWorldMatrix.MultiplyPoint3x4(point); - return; - } - } - - public void UpdateMatrix() - { - if (transformMode == LinePointTransformMode.UseMatrix) - { - Transform t = LineTransform; - if (t.hasChanged) - { - t.hasChanged = false; - localToWorldMatrix = LineTransform.localToWorldMatrix; - worldToLocalMatrix = LineTransform.worldToLocalMatrix; - } - } - } - - private float GetNormalizedLengthFromWorldPosInternal(Vector3 worldPosition, float currentLength, ref int iteration, int resolution, int maxIterations, float start, float end) - { - iteration++; - - // If we've maxed out our iterations, don't go any further - if (iteration > maxIterations) - { - return currentLength; - } - - float searchLengthStep = (end - start) / resolution; - float closestDistanceSoFar = Mathf.Infinity; - float currentSearchLength = start; - - for (int i = 0; i < resolution; i++) - { - Vector3 currentPoint = GetUnClampedPoint(currentSearchLength); - - float distSquared = (currentPoint - worldPosition).sqrMagnitude; - if (distSquared < closestDistanceSoFar) - { - currentLength = currentSearchLength; - closestDistanceSoFar = distSquared; - } - currentSearchLength += searchLengthStep; - } - - // Our start and end lengths will now be 1 resolution to the left and right - float newStart = currentLength - searchLengthStep; - float newEnd = currentLength + searchLengthStep; - - if (newStart < 0) - { - newEnd -= newStart; - newStart = 0; - } - - if (newEnd > 1) - { - newEnd = 1; - } - - return GetNormalizedLengthFromWorldPosInternal(worldPosition, currentLength, ref iteration, resolution, maxIterations, newStart, newEnd); - } - - private void DistortPoint(ref Vector3 point, float normalizedLength) - { - if (!distortionEnabled || distorters.Count == 0) - { - return; - } - - float strength = uniformDistortionStrength; - - if (distortionMode == DistortionMode.NormalizedLength) - { - strength = distortionStrength.Evaluate(normalizedLength); - } - - for (int i = 0; i < distorters.Count; i++) - { - Distorter distorter = distorters[i]; - if (distorter.DistortionEnabled) - { - point = distorter.DistortPoint(point, strength); - } - } - } - - private void OnDrawGizmos() - { -#if UNITY_EDITOR - // Draw a crude, performant gizmo for lines that are unselected - if (Application.isPlaying || UnityEditor.Selection.activeGameObject == gameObject) - { - return; - } -#endif - DrawUnselectedGizmosPreview(); - } - - protected virtual void DrawUnselectedGizmosPreview() - { - int linePreviewResolution = Mathf.Max(16, PointCount / 4); - Vector3 firstPosition = FirstPoint; - Vector3 lastPosition = firstPosition; - - for (int i = 1; i < linePreviewResolution; i++) - { - Vector3 currentPosition; - - if (i == linePreviewResolution - 1) - { - currentPosition = LastPoint; - } - else - { - float normalizedLength = (1f / (linePreviewResolution - 1)) * i; - currentPosition = GetPoint(normalizedLength); - } - - Gizmos.color = Color.magenta; - Gizmos.DrawLine(lastPosition, currentPosition); - - lastPosition = currentPosition; - } - - if (Loops) - { - Gizmos.color = Color.magenta; - Gizmos.DrawLine(lastPosition, firstPosition); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs.meta deleted file mode 100644 index c9a5e90c4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BaseMixedRealityLineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e2c3b29c57644d009d3373c52e72b7bf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs deleted file mode 100644 index a84e86d0f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - [AddComponentMenu("Scripts/MRTK/Core/BezierDataProvider")] - public class BezierDataProvider : BaseMixedRealityLineDataProvider - { - [Serializable] - private struct BezierPointSet - { - public BezierPointSet(float spread) - { - Point1 = Vector3.right * spread * 0.5f; - Point2 = Vector3.right * spread * 0.25f; - Point3 = Vector3.left * spread * 0.25f; - Point4 = Vector3.left * spread * 0.5f; - } - - public Vector3 Point1; - public Vector3 Point2; - public Vector3 Point3; - public Vector3 Point4; - } - - /// - public override int PointCount { get { return 4; } } - - [Header("Bezier Settings")] - [SerializeField] - private BezierPointSet controlPoints = new BezierPointSet(0.5f); - - [Tooltip("If true, control points 2 and 3 will be transformed relative to points 1 and 4 respectively")] - [SerializeField] - private bool useLocalTangentPoints = false; - - private Vector3 localOffset; - - /// - protected override Vector3 GetPointInternal(int pointIndex) - { - switch (pointIndex) - { - case 0: - return controlPoints.Point1; - - case 1: - return controlPoints.Point2; - - case 2: - return controlPoints.Point3; - - case 3: - return controlPoints.Point4; - - default: - return Vector3.zero; - } - } - - protected override void SetPointInternal(int pointIndex, Vector3 point) - { - switch (pointIndex) - { - case 0: - localOffset = Vector3.zero; - // If we're using local tangent points, apply this change to control point 2 - if (useLocalTangentPoints) - { - localOffset = point - controlPoints.Point1; - } - - controlPoints.Point1 = point; - controlPoints.Point2 = controlPoints.Point2 + localOffset; - break; - - case 1: - controlPoints.Point2 = point; - break; - - case 2: - controlPoints.Point3 = point; - break; - - case 3: - localOffset = Vector3.zero; - if (useLocalTangentPoints) - { - localOffset = point - controlPoints.Point4; - } - - controlPoints.Point4 = point; - controlPoints.Point3 = controlPoints.Point3 + localOffset; - break; - - default: - break; - } - } - - /// - protected override Vector3 GetPointInternal(float normalizedDistance) - { - return LineUtility.InterpolateBezierPoints(controlPoints.Point1, controlPoints.Point2, controlPoints.Point3, controlPoints.Point4, normalizedDistance); - } - - /// - protected override float GetUnClampedWorldLengthInternal() - { - float distance = 0f; - Vector3 last = GetUnClampedPoint(0f); - for (int i = 1; i < BaseMixedRealityLineDataProvider.UnclampedWorldLengthSearchSteps; i++) - { - Vector3 current = GetUnClampedPoint((float)i / BaseMixedRealityLineDataProvider.UnclampedWorldLengthSearchSteps); - distance += Vector3.Distance(last, current); - } - return distance; - } - - /// - protected override Vector3 GetUpVectorInternal(float normalizedLength) - { - // Bezier up vectors just use transform up - return transform.up; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs.meta deleted file mode 100644 index 394c15b85..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 04b1ba3412a235c4d8c3eb2a18528b67 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs deleted file mode 100644 index 4c05db518..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - [ExecuteAlways] - [AddComponentMenu("Scripts/MRTK/Core/BezierInertia")] - public class BezierInertia : MonoBehaviour - { - [SerializeField] - private BezierDataProvider bezier; - [SerializeField] - private float inertia = 4f; - [SerializeField] - private float dampen = 5f; - [SerializeField] - private float seekTargetStrength = 1f; - - [SerializeField] - private Vector3 p1Target = new Vector3(0, 0, 0.25f); - [SerializeField] - private Vector3 p2Target = new Vector3(0, 0, 0.75f); - - private Vector3 p1Velocity; - private Vector3 p1Position; - private Vector3 p1Offset; - - private Vector3 p2Velocity; - private Vector3 p2Position; - private Vector3 p2Offset; - - private void Start() - { - bezier = gameObject.EnsureComponent(); - p1Position = bezier.GetPoint(1); - p2Position = bezier.GetPoint(2); - } - - private void Update() - { - Vector3 p1BasePoint = bezier.GetPoint(1); - Vector3 p2BasePoint = bezier.GetPoint(2); - - p1Offset = p1BasePoint - p1Position; - p2Offset = p2BasePoint - p2Position; - - Vector3 p1WorldTarget = bezier.LineTransform.TransformPoint(p1Target); - Vector3 p2WorldTarget = bezier.LineTransform.TransformPoint(p2Target); - - p1Offset += p1WorldTarget - p1Position; - p2Offset += p2WorldTarget - p2Position; - - p1Velocity = Vector3.Lerp(p1Velocity, p1Offset, Time.deltaTime * inertia); - p1Velocity = Vector3.Lerp(p1Velocity, Vector3.zero, Time.deltaTime * dampen); - - p2Velocity = Vector3.Lerp(p2Velocity, p2Offset, Time.deltaTime * inertia); - p2Velocity = Vector3.Lerp(p2Velocity, Vector3.zero, Time.deltaTime * dampen); - - p1Position = p1Position + p1Velocity; - p2Position = p2Position + p2Velocity; - - p1Position = Vector3.Lerp(p1Position, p1WorldTarget, seekTargetStrength * Time.deltaTime); - p2Position = Vector3.Lerp(p2Position, p2WorldTarget, seekTargetStrength * Time.deltaTime); - - bezier.SetPoint(1, p1Position); - bezier.SetPoint(2, p2Position); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs.meta deleted file mode 100644 index 687899928..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/BezierInertia.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9f0601d0cb497ac4a95c6f4b33459229 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs deleted file mode 100644 index 64ad8caec..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Creates an elliptical line shape. - /// - /// This line loops. - [AddComponentMenu("Scripts/MRTK/Core/EllipseLineDataProvider")] - public class EllipseLineDataProvider : BaseMixedRealityLineDataProvider - { - [SerializeField] - [Tooltip("Resolution is the number of points used to define positions for points on the line. Equivalent to PointCount. Clamped at 2048 max")] - [Range(0, MaxResolution)] - private int resolution = 36; - - /// - /// Resolution is the number of points used to define positions for points on the line. Equivalent to PointCount. Clamped at 2048 max - /// - public int Resolution - { - get => resolution; - set => resolution = Mathf.Clamp(value, 0, MaxResolution); - } - - [Tooltip("Radius of ellipsis defined by Vector2 where x is half-width and y is half-height")] - [SerializeField] - private Vector2 radius = Vector2.one; - - /// - /// Radius of ellipsis defined by Vector2 where x is half-width and y is half-height - /// - public Vector2 Radius - { - get => radius; - set - { - if (value.x < 0) - { - value.x = 0; - } - - if (value.y < 0) - { - value.y = 0; - } - - radius = value; - } - } - - private const int MaxResolution = 2048; - - - #region BaseMixedRealityLineDataProvider Implementation - - /// - public override int PointCount => Resolution; - - /// - protected override Vector3 GetPointInternal(float normalizedDistance) - { - return LineUtility.GetEllipsePoint(Radius, normalizedDistance * 2f * Mathf.PI); - } - - /// - protected override Vector3 GetPointInternal(int pointIndex) - { - float angle = ((float)pointIndex / Resolution) * 2f * Mathf.PI; - return LineUtility.GetEllipsePoint(Radius, angle); - } - - /// - protected override void SetPointInternal(int pointIndex, Vector3 point) - { - // Does nothing for an ellipse - } - - /// - protected override float GetUnClampedWorldLengthInternal() - { - float distance = 0f; - Vector3 last = GetUnClampedPoint(0f); - - for (int i = 1; i < BaseMixedRealityLineDataProvider.UnclampedWorldLengthSearchSteps; i++) - { - Vector3 current = GetUnClampedPoint((float)i / BaseMixedRealityLineDataProvider.UnclampedWorldLengthSearchSteps); - distance += Vector3.Distance(last, current); - } - - return distance; - } - - #endregion BaseMixedRealityLineDataProvider Implementation - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs.meta deleted file mode 100644 index 6a6b31fb3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/EllipseLineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 094a6569e4454601b5928e64472d5228 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs deleted file mode 100644 index e62030c87..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Generates a parabolic line between two points. - /// - [AddComponentMenu("Scripts/MRTK/Core/ParabolaConstrainedLineDataProvider")] - public class ParabolaConstrainedLineDataProvider : ParabolaLineDataProvider - { - [SerializeField] - [Tooltip("The point where this line will end.")] - private MixedRealityPose endPoint = MixedRealityPose.ZeroIdentity; - - /// - /// The point where this line will end. - /// - public MixedRealityPose EndPoint - { - get { return endPoint; } - set { endPoint = value; } - } - - [SerializeField] - [Vector3Range(-1f, 1f)] - private Vector3 upDirection = Vector3.up; - - public Vector3 UpDirection - { - get { return upDirection; } - set - { - upDirection.x = Mathf.Clamp(value.x, -1f, 1f); - upDirection.y = Mathf.Clamp(value.y, -1f, 1f); - upDirection.z = Mathf.Clamp(value.z, -1f, 1f); - } - } - - [SerializeField] - [Range(0.01f, 10f)] - private float height = 1f; - - public float Height - { - get { return height; } - set { height = Mathf.Clamp(value, 0.01f, 10f); } - } - - #region Line Data Provider Implementation - - /// - public override int PointCount => 2; - - /// - protected override Vector3 GetPointInternal(int pointIndex) - { - switch (pointIndex) - { - case 0: - return StartPoint.Position; - case 1: - return endPoint.Position; - default: - Debug.LogError("Invalid point index!"); - return Vector3.zero; - } - } - - /// - protected override void SetPointInternal(int pointIndex, Vector3 point) - { - switch (pointIndex) - { - case 0: - break; - case 1: - endPoint.Position = point; - break; - default: - Debug.LogError("Invalid point index!"); - break; - } - } - - /// - protected override Vector3 GetPointInternal(float normalizedDistance) - { - return LineUtility.GetPointAlongConstrainedParabola(StartPoint.Position, endPoint.Position, upDirection, height, normalizedDistance); - } - - #endregion Line Data Provider Implementation - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs.meta deleted file mode 100644 index 6e553af21..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaConstrainedLineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c6003f55e36d48db805fa570767ea1e5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs deleted file mode 100644 index d49342472..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Base Parabola line data provider. - /// - public abstract class ParabolaLineDataProvider : BaseMixedRealityLineDataProvider - { - [SerializeField] - private MixedRealityPose startPoint = MixedRealityPose.ZeroIdentity; - - /// - /// The Starting point of this line. - /// - /// Always located at this GameObject's Transform.position - public MixedRealityPose StartPoint => startPoint; - - #region Line Data Provider Implementation - - /// - protected override float GetUnClampedWorldLengthInternal() - { - float distance = 0f; - Vector3 last = GetUnClampedPoint(0f); - for (int i = 1; i < UnclampedWorldLengthSearchSteps; i++) - { - Vector3 current = GetUnClampedPoint((float)i / UnclampedWorldLengthSearchSteps); - distance += Vector3.Distance(last, current); - } - - return distance; - } - - /// - protected override Vector3 GetUpVectorInternal(float normalizedLength) - { - return transform.up; - } - - #endregion Line Data Provider Implementation - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs.meta deleted file mode 100644 index 4fd7d9290..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaLineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c8c5e049f53b4a30bfabd93ee3e6d31a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs deleted file mode 100644 index ea248ea7c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Creates a parabolic line based on physics. - /// - [AddComponentMenu("Scripts/MRTK/Core/ParabolaPhysicalLineDataProvider")] - public class ParabolaPhysicalLineDataProvider : ParabolaLineDataProvider - { - [SerializeField] - [Vector3Range(-1f, 1f)] - private Vector3 direction = Vector3.forward; - - public Vector3 Direction - { - get { return direction; } - set - { - direction.x = Mathf.Clamp(value.x, -1f, 1f); - direction.y = Mathf.Clamp(value.y, -1f, 1f); - direction.z = Mathf.Clamp(value.z, -1f, 1f); - } - } - - [SerializeField] - private float velocity = 2f; - - public float Velocity - { - get { return velocity; } - set { velocity = value; } - } - - [SerializeField] - private float distanceMultiplier = 1f; - - public float DistanceMultiplier - { - get { return distanceMultiplier; } - set { distanceMultiplier = value; } - } - - [SerializeField] - private bool useCustomGravity = false; - - public bool UseCustomGravity - { - get { return useCustomGravity; } - set { useCustomGravity = value; } - } - - [SerializeField] - private Vector3 gravity = Vector3.down * 9.8f; - - public Vector3 Gravity - { - get { return gravity; } - set { gravity = value; } - } - - #region Line Data Provider Implementation - - /// - public override int PointCount => 2; - - /// - protected override Vector3 GetPointInternal(int pointIndex) - { - switch (pointIndex) - { - case 0: - return StartPoint.Position; - case 1: - return GetPointInternal(1f); - default: - Debug.LogError("Invalid point index!"); - return Vector3.zero; - } - } - - /// - /// Sets the point at index. - /// - /// - /// This specific override doesn't set any points. - /// - protected override void SetPointInternal(int pointIndex, Vector3 point) - { - // Intentionally does nothing. StartPoint is always the base.FirstPoint and EndPoint is always calculated by the physics. - } - - /// - protected override Vector3 GetPointInternal(float normalizedDistance) - { - return LineUtility.GetPointAlongPhysicalParabola(StartPoint.Position, direction, velocity, useCustomGravity ? gravity : UnityEngine.Physics.gravity, normalizedDistance * distanceMultiplier); - } - - /// - protected override Vector3 GetUpVectorInternal(float normalizedLength) - { - return Vector3.up; - } - - #endregion Line Data Provider Implementation - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs.meta deleted file mode 100644 index 029f387d0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/ParabolaPhysicalLineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 61c488a46c144ae189c60c29dc72b3b5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs deleted file mode 100644 index f362b468b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs +++ /dev/null @@ -1,185 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Defines a line in the shape of a rectangle. - /// - [AddComponentMenu("Scripts/MRTK/Core/RectangleLineDataProvider")] - public class RectangleLineDataProvider : BaseMixedRealityLineDataProvider - { - [SerializeField] - private Vector3[] points = new Vector3[8]; - - [SerializeField] - private float width = 1f; - - public float Width - { - get { return width; } - set - { - if (value < 0) - { - value = width; - } - - if (!width.Equals(value)) - { - width = value; - BuildPoints(); - } - } - } - - [SerializeField] - private float height = 1f; - - public float Height - { - get { return height; } - set - { - if (value < 0) - { - value = height; - } - - if (!height.Equals(value)) - { - height = value; - BuildPoints(); - } - } - } - - [SerializeField] - private float zOffset = 0f; - - public float ZOffset - { - get - { - return zOffset; - } - set - { - if (!zOffset.Equals(value)) - { - zOffset = value; - BuildPoints(); - } - } - } - - #region MonoBehaviour Implementation - - private void OnValidate() - { // This is an appropriate use of OnValidate. - BuildPoints(); - } - - #endregion MonoBehaviour Implementation - - #region BaseMixedRealityLineDataProvider Implementation - - public override int PointCount => 8; - - public override bool Loops - { - get - { - // Force to loop - Loops = true; - return true; - } - } - - /// - /// When we get interpolated points we subdivide the square so our sampling has more to work with - /// - protected override Vector3 GetPointInternal(float normalizedDistance) - { - BuildPoints(); - return LineUtility.InterpolateVectorArray(points, normalizedDistance); - } - - /// - protected override void SetPointInternal(int pointIndex, Vector3 point) - { - if (pointIndex < PointCount && pointIndex >= 0) - { - points[pointIndex] = point; - } - } - - /// - protected override Vector3 GetPointInternal(int pointIndex) - { - return pointIndex < PointCount && pointIndex >= 0 ? points[pointIndex] : Vector3.zero; - } - - /// - protected override float GetUnClampedWorldLengthInternal() - { - BuildPoints(); - - float distance = 0f; - Vector3 last = points[0]; - - for (int i = 1; i < points.Length; i++) - { - distance += Vector3.Distance(last, points[i]); - last = points[i]; - } - - return distance; - } - - /// - protected override Vector3 GetUpVectorInternal(float normalizedLength) - { - // Rectangle 'up' vector always points out from center - return (GetPoint(normalizedLength) - transform.position).normalized; - } - - protected override void DrawUnselectedGizmosPreview() - { - Vector3 firstPos = GetPoint(0); - Vector3 lastPos = firstPos; - Gizmos.color = Color.magenta; - - for (int i = 1; i < PointCount; i++) - { - Vector3 currentPos = GetPoint(i); - Gizmos.DrawLine(lastPos, currentPos); - lastPos = currentPos; - } - - Gizmos.DrawLine(lastPos, firstPos); - } - - #endregion BaseMixedRealityLineDataProvider Implementation - - private void BuildPoints() - { - Vector3 top = Vector3.up * Height * 0.5f; - Vector3 bot = Vector3.down * Height * 0.5f; - Vector3 left = Vector3.left * Width * 0.5f; - Vector3 right = Vector3.right * Width * 0.5f; - Vector3 offset = Vector3.forward * ZOffset; - - SetPointInternal(0, top + left + offset); - SetPointInternal(1, top + offset); - SetPointInternal(2, top + right + offset); - SetPointInternal(3, right + offset); - SetPointInternal(4, bot + right + offset); - SetPointInternal(5, bot + offset); - SetPointInternal(6, bot + left + offset); - SetPointInternal(7, left + offset); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs.meta deleted file mode 100644 index e24fc8e14..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/RectangleLineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 30cbcc924a054d259edafaeb0a82f2ac -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs deleted file mode 100644 index 0d2d2e27c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// A simple line with two points. - /// - [AddComponentMenu("Scripts/MRTK/Core/SimpleLineDataProvider")] - public class SimpleLineDataProvider : BaseMixedRealityLineDataProvider - { - [Tooltip("The starting point of this line.")] - [SerializeField] - private MixedRealityPose startPoint = MixedRealityPose.ZeroIdentity; - - /// - /// The starting point of this line which is always located at the GameObject's transform position - /// - /// Always located at this GameObject's Transform.position - public MixedRealityPose StartPoint => startPoint; - - [SerializeField] - [Tooltip("The point where this line will end.\nNote: Start point is always located at the GameObject's transform position.")] - private MixedRealityPose endPoint = new MixedRealityPose(Vector3.right, Quaternion.identity); - - /// - /// The point where this line will end. - /// - public MixedRealityPose EndPoint - { - get => endPoint; - set => endPoint = value; - } - - #region Line Data Provider Implementation - - /// - public override int PointCount => 2; - - /// - protected override Vector3 GetPointInternal(int pointIndex) - { - switch (pointIndex) - { - case 0: - return StartPoint.Position; - case 1: - return EndPoint.Position; - default: - Debug.LogError("Invalid point index"); - return Vector3.zero; - } - } - - /// - protected override void SetPointInternal(int pointIndex, Vector3 point) - { - switch (pointIndex) - { - case 0: - startPoint.Position = point; - break; - case 1: - endPoint.Position = point; - break; - default: - Debug.LogError("Invalid point index"); - break; - } - } - - /// - protected override Vector3 GetPointInternal(float normalizedDistance) - { - return Vector3.Lerp(StartPoint.Position, EndPoint.Position, normalizedDistance); - } - - /// - protected override float GetUnClampedWorldLengthInternal() - { - return Vector3.Distance(StartPoint.Position, EndPoint.Position); - } - - /// - protected override Vector3 GetUpVectorInternal(float normalizedLength) - { - return transform.up; - } - - #endregion Line Data Provider Implementation - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs.meta deleted file mode 100644 index 3c0e92f77..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SimpleLineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 81c169a39f8e430d869bbc5d938b0e5a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs deleted file mode 100644 index 2e7c5a155..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs +++ /dev/null @@ -1,278 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Creates a spline based on control points. - /// - [AddComponentMenu("Scripts/MRTK/Core/SplineDataProvider")] - public class SplineDataProvider : BaseMixedRealityLineDataProvider - { - [Tooltip("List of positions and orientations that define control points to generate the spline")] - [SerializeField] - private MixedRealityPose[] controlPoints = - { - MixedRealityPose.ZeroIdentity, - new MixedRealityPose(new Vector3(0.5f, 0.5f, 0f), Quaternion.identity), - new MixedRealityPose(new Vector3(0.5f, -0.5f, 0f), Quaternion.identity), - new MixedRealityPose(Vector3.right, Quaternion.identity), - }; - - /// - /// List of positions and orientations that define control points to generate the spline - /// - public MixedRealityPose[] ControlPoints => controlPoints; - - [SerializeField] - private bool alignAllControlPoints = true; - - public bool AlignAllControlPoints - { - get => alignAllControlPoints; - set - { - if (alignAllControlPoints != value) - { - alignAllControlPoints = value; - ForceUpdateAlignment(); - } - } - } - - /// - /// Forces all the control points into alignment. - /// - public void ForceUpdateAlignment() - { - if (AlignAllControlPoints) - { - for (int i = 0; i < PointCount; i++) - { - UpdatePointAlignment(i); - } - } - } - - private void UpdatePointAlignment(int pointIndex) - { - if (AlignAllControlPoints) - { - int prevControlPoint; - int changedControlPoint; - int midPointIndex = ((pointIndex + 1) / 3) * 3; - - if (pointIndex <= midPointIndex) - { - prevControlPoint = midPointIndex - 1; - changedControlPoint = midPointIndex + 1; - } - else - { - prevControlPoint = midPointIndex + 1; - changedControlPoint = midPointIndex - 1; - } - - if (Loops) - { - if (changedControlPoint < 0) - { - changedControlPoint = (PointCount - 1) + changedControlPoint; - } - else if (changedControlPoint >= PointCount) - { - changedControlPoint = changedControlPoint % (PointCount - 1); - } - - if (prevControlPoint < 0) - { - prevControlPoint = (PointCount - 1) + prevControlPoint; - } - else if (prevControlPoint >= PointCount) - { - prevControlPoint = prevControlPoint % (PointCount - 1); - } - - Vector3 midPoint = controlPoints[midPointIndex].Position; - Vector3 tangent = midPoint - controlPoints[prevControlPoint].Position; - tangent = tangent.normalized * Vector3.Distance(midPoint, controlPoints[changedControlPoint].Position); - controlPoints[changedControlPoint].Position = midPoint + tangent; - } - else if (changedControlPoint >= 0 && changedControlPoint < PointCount && prevControlPoint >= 0 && prevControlPoint < PointCount) - { - Vector3 midPoint = controlPoints[midPointIndex].Position; - Vector3 tangent = midPoint - controlPoints[prevControlPoint].Position; - tangent = tangent.normalized * Vector3.Distance(midPoint, controlPoints[changedControlPoint].Position); - controlPoints[changedControlPoint].Position = midPoint + tangent; - } - } - } - - #region BaseMixedRealityLineDataProvider Implementation - - /// - public override int PointCount => controlPoints.Length; - - /// - protected override Vector3 GetPointInternal(float normalizedDistance) - { - var totalDistance = normalizedDistance * (PointCount - 1); - int point1Index = Mathf.FloorToInt(totalDistance); - point1Index -= point1Index % 3; - float subDistance = (totalDistance - point1Index) / 3; - - int point2Index; - int point3Index; - int point4Index; - - if (!Loops) - { - if (point1Index + 3 >= PointCount) - { - return controlPoints[PointCount - 1].Position; - } - - if (point1Index < 0) - { - return controlPoints[0].Position; - } - - point2Index = point1Index + 1; - point3Index = point1Index + 2; - point4Index = point1Index + 3; - } - else - { - point2Index = (point1Index + 1) % (PointCount - 1); - point3Index = (point1Index + 2) % (PointCount - 1); - point4Index = (point1Index + 3) % (PointCount - 1); - } - - Vector3 point1 = controlPoints[point1Index].Position; - Vector3 point2 = controlPoints[point2Index].Position; - Vector3 point3 = controlPoints[point3Index].Position; - Vector3 point4 = controlPoints[point4Index].Position; - - return LineUtility.InterpolateBezierPoints(point1, point2, point3, point4, subDistance); - } - - /// - protected override Vector3 GetPointInternal(int pointIndex) - { - if (pointIndex < 0 || pointIndex >= controlPoints.Length) - { - Debug.LogError("Invalid point index!"); - return Vector3.zero; - } - - if (Loops && pointIndex == PointCount - 1) - { - controlPoints[pointIndex] = controlPoints[0]; - pointIndex = 0; - } - - return controlPoints[pointIndex].Position; - } - - /// - protected override void SetPointInternal(int pointIndex, Vector3 point) - { - if (pointIndex < 0 || pointIndex >= controlPoints.Length) - { - Debug.LogError("Invalid point index!"); - return; - } - - if (Loops && pointIndex == PointCount - 1) - { - controlPoints[pointIndex] = controlPoints[0]; - pointIndex = 0; - } - - if (AlignAllControlPoints) - { - if (pointIndex % 3 == 0) - { - Vector3 delta = point - controlPoints[pointIndex].Position; - if (Loops) - { - if (pointIndex == 0) - { - controlPoints[1].Position += delta; - controlPoints[PointCount - 2].Position += delta; - controlPoints[PointCount - 1].Position = point; - } - else if (pointIndex == PointCount) - { - controlPoints[0].Position = point; - controlPoints[1].Position += delta; - controlPoints[pointIndex - 1].Position += delta; - } - else - { - controlPoints[pointIndex - 1].Position += delta; - controlPoints[pointIndex + 1].Position += delta; - } - } - else - { - if (pointIndex > 0) - { - controlPoints[pointIndex - 1].Position += delta; - } - - if (pointIndex + 1 < controlPoints.Length) - { - controlPoints[pointIndex + 1].Position += delta; - } - } - } - } - - controlPoints[pointIndex].Position = point; - UpdatePointAlignment(pointIndex); - } - - /// - protected override Vector3 GetUpVectorInternal(float normalizedLength) - { - float arrayValueLength = 1f / controlPoints.Length; - int indexA = Mathf.FloorToInt(normalizedLength * controlPoints.Length); - - if (indexA >= controlPoints.Length) - { - indexA = 0; - } - - int indexB = indexA + 1; - - if (indexB >= controlPoints.Length) - { - indexB = 0; - } - - float blendAmount = (normalizedLength - (arrayValueLength * indexA)) / arrayValueLength; - Quaternion rotation = Quaternion.Lerp(controlPoints[indexA].Rotation, controlPoints[indexB].Rotation, blendAmount); - return rotation * transform.up; - } - - /// - protected override float GetUnClampedWorldLengthInternal() - { - float distance = 0f; - Vector3 last = GetPoint(0f); - - for (int i = 1; i < BaseMixedRealityLineDataProvider.UnclampedWorldLengthSearchSteps; i++) - { - Vector3 current = GetPoint((float)i / BaseMixedRealityLineDataProvider.UnclampedWorldLengthSearchSteps); - distance += Vector3.Distance(last, current); - } - - return distance; - } - - #endregion BaseMixedRealityLineDataProvider Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs.meta deleted file mode 100644 index c8b715405..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/DataProviders/SplineDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4196b75e9e3b4d0c95239473ccc333b8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs deleted file mode 100644 index 07efd5eff..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Synchronizes the follower's transform position with the point along the line. - /// - [ExecuteAlways] - [AddComponentMenu("Scripts/MRTK/Core/LineFollower")] - public class LineFollower : MonoBehaviour - { - [SerializeField] - [Tooltip("The transform that will follow the point along the line.")] - private Transform follower; - - [SerializeField] - [Tooltip("The transform rotation will be included from the line.")] - private bool includeRotation = false; - - [SerializeField] - [Tooltip("The transform scale will be included based of the Scale Over Length.")] - private bool includeScale = false; - - [SerializeField] - [Tooltip("Animation curve used for scale over the normalized length.")] - private AnimationCurve scaleOverLength = new AnimationCurve(new Keyframe(0, 1), new Keyframe(1, 1)); - - /// - /// The transform that will follow the point along the line. - /// - public Transform Follower - { - get - { - if (follower == null) - { - follower = transform; - } - - return follower; - } - set - { - follower = value == null ? transform : value; - } - } - - [Range(0f, 1f)] - [SerializeField] - [Tooltip("Gets a point along the line at the specified normalized length.")] - private float normalizedLength = 0f; - - /// - /// Gets a point along the line at the specified normalized length. - /// - public float NormalizedLength - { - get { return normalizedLength; } - set - { - if (value < 0f) - { - normalizedLength = 0f; - } - else if (value > 1f) - { - normalizedLength = 1f; - } - else - { - normalizedLength = value; - } - } - } - - [SerializeField] - [HideInInspector] - private BaseMixedRealityLineDataProvider source = null; - - #region MonoBehaviour Implementation - - private void OnEnable() => EnsureSetup(); - - private void Update() - { - if (source == null || follower == null) { return; } - - Vector3 linePoint = source.GetPoint(normalizedLength); - follower.position = linePoint; - - if (includeRotation) - { - Quaternion lineRotation = source.GetRotation(normalizedLength); - follower.rotation = lineRotation; - } - - if (includeScale) - { - follower.localScale = Vector3.one * scaleOverLength.Evaluate(normalizedLength); - } - } - - #endregion MonoBehaviour Implementation - - private void EnsureSetup() - { - if (follower == null) - { - follower = transform; - } - - if (source == null) - { - source = GetComponent(); - } - - if (source == null) - { - Debug.LogError($"Missing a Mixed Reality Line Data Provider for Line Follower on {gameObject.name}"); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs.meta deleted file mode 100644 index ac644070e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineFollower.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4f854e06dcc241178868bfe87b1dd113 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs deleted file mode 100644 index 7cf886348..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Mixed Reality line utility class with helpful math functions for calculation, and other convenience methods. - /// - public static class LineUtility - { - /// - /// Inverts the color - /// - public static Color Invert(this Color color) - { - color.r = 1.0f - color.r; - color.g = 1.0f - color.g; - color.b = 1.0f - color.b; - return color; - } - - /// - /// Returns a blended value from a collection of vectors - /// - /// The collection to use to calculate the blend. - /// the normalized length along the line to calculate the point. - /// The calculated point found along the normalized length. - public static Vector3 GetVectorCollectionBlend(Vector3[] vectorCollection, float normalizedLength, bool repeat) - { - if (vectorCollection.Length == 0) - { - return Vector3.zero; - } - - if (vectorCollection.Length == 1) - { - return vectorCollection[0]; - } - - float arrayValueLength = 1f / vectorCollection.Length; - int indexA = Mathf.FloorToInt(normalizedLength * vectorCollection.Length); - - if (indexA >= vectorCollection.Length) - { - indexA = repeat ? 0 : vectorCollection.Length - 1; - } - - int indexB = indexA + 1; - - if (indexB >= vectorCollection.Length) - { - indexB = repeat ? 0 : vectorCollection.Length - 1; - } - - float blendAmount = (normalizedLength - (arrayValueLength * indexA)) / arrayValueLength; - return Vector3.Lerp(vectorCollection[indexA], vectorCollection[indexB], blendAmount); - } - - /// - /// Gets the point along a physics based parabola. - /// - /// The point in space where the parabola starts - /// The direction the line is intended to go - /// The calculated point. - public static Vector3 GetPointAlongPhysicalParabola(Vector3 origin, Vector3 direction, float velocity, Vector3 gravity, float time) - { - direction = Vector3.Normalize(direction); - - origin.x += ((direction.x * velocity * time) + (0.5f * gravity.x * (time * time))); - origin.y += ((direction.y * velocity * time) + (0.5f * gravity.y * (time * time))); - origin.z += ((direction.z * velocity * time) + (0.5f * gravity.z * (time * time))); - - return origin; - } - - /// - /// Gets the point along a constrained parabola. - /// - /// The point in space where the parabola starts. - /// The point in space where the parabola ends. - /// The up direction of the arc. - /// The height of the arc. - /// the normalized length along the line to calculate the point. - /// The calculated point found along the normalized length. - public static Vector3 GetPointAlongConstrainedParabola(Vector3 origin, Vector3 end, Vector3 upDirection, float height, float normalizedLength) - { - float parabolaTime = normalizedLength * 2 - 1; - Vector3 direction = end - origin; - Vector3 pos = origin + normalizedLength * direction; - pos += ((-parabolaTime * parabolaTime + 1) * height) * upDirection.normalized; - return pos; - } - - /// - /// Gets the point along the spline. - /// - /// the points of the whole spline. - /// the normalized length along the line to calculate the point. - /// Optional Interpolation type to use when calculating the point. - /// The calculated point found along the normalized length. - public static Vector3 GetPointAlongSpline(MixedRealityPose[] points, float normalizedLength, InterpolationType interpolation = InterpolationType.Bezier) - { - int pointIndex = (Mathf.RoundToInt(normalizedLength * points.Length)); - float length = normalizedLength - ((float)pointIndex / points.Length); - - if (pointIndex + 3 >= points.Length) - { - return points[points.Length - 1].Position; - } - - if (pointIndex < 0) - { - return points[0].Position; - } - - Vector3 point1 = points[pointIndex].Position; - Vector3 point2 = points[pointIndex + 1].Position; - Vector3 point3 = points[pointIndex + 2].Position; - Vector3 point4 = points[pointIndex + 3].Position; - - switch (interpolation) - { - case InterpolationType.CatmullRom: - return InterpolateCatmullRomPoints(point1, point2, point3, point4, length); - default: - return InterpolateBezierPoints(point1, point2, point3, point4, length); - } - } - - /// - /// Interpolate a position between the provided points. - /// - /// The points to use in the calculation. - /// the normalized length along the line to calculate the point. - /// The calculated point found along the normalized length. - public static Vector3 InterpolateVectorArray(Vector3[] points, float normalizedLength) - { - float arrayValueLength = 1f / points.Length; - int indexA = Mathf.FloorToInt(normalizedLength * points.Length); - - if (indexA >= points.Length) - { - indexA = 0; - } - - int indexB = indexA + 1; - - if (indexB >= points.Length) - { - indexB = 0; - } - - float blendAmount = (normalizedLength - (arrayValueLength * indexA)) / arrayValueLength; - - return Vector3.Lerp(points[indexA], points[indexB], blendAmount); - } - - /// - /// Interpolate the provided points using Catmull Rom algorithm. - /// - /// the normalized length along the line to calculate the point. - /// The calculated point found along the normalized length. - public static Vector3 InterpolateCatmullRomPoints(Vector3 point1, Vector3 point2, Vector3 point3, Vector3 point4, float normalizedLength) - { - Vector3 p1 = 2f * point2; - Vector3 p2 = point3 - point1; - Vector3 p3 = 2f * point1 - 5f * point2 + 4f * point3 - point4; - Vector3 p4 = -point1 + 3f * point2 - 3f * point3 + point4; - return 0.5f * (p1 + (p2 * normalizedLength) + (p3 * normalizedLength * normalizedLength) + (p4 * normalizedLength * normalizedLength * normalizedLength)); - } - - /// - /// Interpolate the provided points using the standard Bezier algorithm. - /// - /// the normalized length along the line to calculate the point. - /// The calculated point found along the normalized length. - public static Vector3 InterpolateBezierPoints(Vector3 point1, Vector3 point2, Vector3 point3, Vector3 point4, float normalizedLength) - { - float invertedDistance = 1f - normalizedLength; - return invertedDistance * invertedDistance * invertedDistance * point1 + - 3f * invertedDistance * invertedDistance * normalizedLength * point2 + - 3f * invertedDistance * normalizedLength * normalizedLength * point3 + - normalizedLength * normalizedLength * normalizedLength * point4; - } - - /// - /// Interpolate the provided points using the Hermite algorithm. - /// - /// the normalized length along the line to calculate the point. - /// The calculated point found along the normalized length. - public static Vector3 InterpolateHermitePoints(Vector3 point1, Vector3 point2, Vector3 point3, Vector3 point4, float normalizedLength) - { - float invertedDistance = 1f - normalizedLength; - return invertedDistance * invertedDistance * invertedDistance * point1 + - 3f * invertedDistance * invertedDistance * normalizedLength * point2 + - 3f * invertedDistance * normalizedLength * normalizedLength * point3 + - normalizedLength * normalizedLength * normalizedLength * point4; - } - - /// - /// Calculate the ellipse point at the angle provided. - /// - /// The radius of the ellipse. - /// Angle along the ellipse to find the point. - /// The calculated point at the specified angle. - public static Vector3 GetEllipsePoint(Vector2 radius, float angle) - { - cachedEllipsePoint.x = radius.x * Mathf.Cos(angle); - cachedEllipsePoint.y = radius.y * Mathf.Sin(angle); - cachedEllipsePoint.z = 0.0f; - return cachedEllipsePoint; - } - - /// - /// Used to calculate the ellipse point in - /// - private static Vector3 cachedEllipsePoint = Vector3.zero; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs.meta deleted file mode 100644 index 8f175341a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/LineUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ddd47121e0b64588a7f8fe4690ba3902 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers.meta deleted file mode 100644 index bef81c302..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0ae80d29d6d54df7931ed263901126ef -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs deleted file mode 100644 index e3c6254a0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs +++ /dev/null @@ -1,338 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Base class for Mixed Reality Line Renderers. - /// - [ExecuteAlways] - public abstract class BaseMixedRealityLineRenderer : MonoBehaviour - { - [SerializeField] - [Tooltip("The line data this component will render")] - protected BaseMixedRealityLineDataProvider lineDataSource; - - /// - /// The data provider component that provides the positioning source information for the LineRenderer. - /// - public BaseMixedRealityLineDataProvider LineDataSource - { - get - { - if (lineDataSource == null) - { - lineDataSource = GetComponent(); - - if (lineDataSource != null) - { - var lineDataType = lineDataSource.GetType(); - - if (lineDataType == typeof(RectangleLineDataProvider)) - { - StepMode = StepMode.FromSource; - } - } - } - - if (lineDataSource == null) - { - Debug.LogError($"Missing a Line Data Provider on {gameObject.name}"); - enabled = false; - } - - return lineDataSource; - } - set - { - lineDataSource = value; - enabled = lineDataSource != null; - } - } - - [Header("Visual Settings")] - - [SerializeField] - [Tooltip("Color gradient applied to line's normalized length")] - private Gradient lineColor = new Gradient(); - - /// - /// Color gradient applied to line's normalized length - /// - public Gradient LineColor - { - get => lineColor; - set => lineColor = value; - } - - [SerializeField] - private AnimationCurve lineWidth = AnimationCurve.Linear(0f, 1f, 1f, 1f); - - public AnimationCurve LineWidth - { - get => lineWidth; - set => lineWidth = value; - } - - [Range(0.01f, 10f)] - [SerializeField] - private float widthMultiplier = 0.01f; - - public float WidthMultiplier - { - get => widthMultiplier; - set => widthMultiplier = Mathf.Clamp(value, 0f, 10f); - } - - [Header("Offsets")] - - [Range(0f, 10f)] - [SerializeField] - [Tooltip("Normalized offset for color gradient")] - private float colorOffset = 0f; - - /// - /// Normalized offset for color gradient - /// - public float ColorOffset - { - get => colorOffset; - set => colorOffset = Mathf.Clamp(value, 0f, 10f); - } - - [Range(0f, 10f)] - [SerializeField] - [Tooltip("Normalized offset for width curve")] - private float widthOffset = 0f; - - /// - /// Normalized offset for width curve - /// - public float WidthOffset - { - get => widthOffset; - set => widthOffset = Mathf.Clamp(value, 0f, 10f); - } - - [Header("Point Placement")] - - [SerializeField] - [Tooltip("Method for gathering points along line. Interpolated uses normalized length. FromSource uses line's base points. (FromSource may not look right for all LineDataProvider types.)")] - private StepMode stepMode = StepMode.Interpolated; - - /// - /// Method for gathering points along line. Interpolated uses normalized length. FromSource uses line's base points. (FromSource may not look right for all LineDataProvider types.) - /// - public StepMode StepMode - { - get => stepMode; - set => stepMode = value; - } - - [Range(2, 2048)] - [SerializeField] - [Tooltip("Number of steps to interpolate along line in Interpolated step mode")] - private int lineStepCount = 16; - - [SerializeField] - [Tooltip("Method for distributing rendered points along line. Auto lets the implementation decide. None means normalized distribution. DistanceSingleValue ensures uniform distribution. DistanceCurveValue enables custom distribution.")] - private PointDistributionMode pointDistributionMode = PointDistributionMode.Auto; - - /// - /// Method for distributing rendered points along line. - /// - public PointDistributionMode PointDistributionMode - { - get => pointDistributionMode; - set => pointDistributionMode = value; - } - - [SerializeField] - [Tooltip("Minimum distance between points distributed along curve. Used when PointDistributionMode is set to DistanceSingleValue. Total points capped by LineStepCount.")] - private float customPointDistributionLength = 0.1f; - - [SerializeField] - [Tooltip("Custom function for distributing points along curve.Used when DistanceCurveValue is set to Distance. Total points set by LineStepCount.")] - private AnimationCurve customPointDistributionCurve = AnimationCurve.Linear(0, 0, 1, 1); - - /// - /// Number of steps to interpolate along line in Interpolated step mode - /// - public int LineStepCount - { - get => lineStepCount; - set => lineStepCount = Mathf.Clamp(value, 2, 2048); - } - - /// - /// Get the Color along the normalized length of the line. - /// - protected virtual Color GetColor(float normalizedLength) - { - if (LineColor == null) - { - LineColor = new Gradient(); - } - - return LineColor.Evaluate(Mathf.Repeat(normalizedLength + colorOffset, 1f)); - } - - /// - /// Get the width of the line along the normalized length of the line. - /// - protected virtual float GetWidth(float normalizedLength) - { - if (LineWidth == null) - { - LineWidth = AnimationCurve.Linear(0f, 1f, 1f, 1f); - } - - return LineWidth.Evaluate(Mathf.Repeat(normalizedLength + widthOffset, 1f)) * widthMultiplier; - } - - /// - /// Gets the normalized distance along the line path (range 0 to 1) going the given number of steps provided - /// - /// Number of steps to take "walking" along the curve - protected virtual float GetNormalizedPointAlongLine(int stepNum) - { - float normalizedDistance = 0; - - switch (pointDistributionMode) - { - case PointDistributionMode.None: - case PointDistributionMode.Auto: - // Normalized length along line - normalizedDistance = (1f / (LineStepCount - 1)) * stepNum; - break; - - case PointDistributionMode.DistanceCurveValue: - // Use curve to interpret value - normalizedDistance = (1f / (LineStepCount - 1)) * stepNum; - normalizedDistance = customPointDistributionCurve.Evaluate(normalizedDistance); - break; - - case PointDistributionMode.DistanceSingleValue: - // Get the normalized distance along curve - float totalWorldLength = customPointDistributionLength * stepNum; - normalizedDistance = lineDataSource.GetNormalizedLengthFromWorldLength(totalWorldLength); - break; - } - - return normalizedDistance; - } - - private void LateUpdate() - { - UpdateLine(); - } - - /// - /// Executes every Unity LateUpdate(). Any property updates or frame updates should occur here to update the line data source. - /// - protected abstract void UpdateLine(); - - #region Gizmos - -#if UNITY_EDITOR - - protected virtual void OnDrawGizmos() - { - if (UnityEditor.Selection.activeGameObject == gameObject || Application.isPlaying) { return; } - - if (lineDataSource == null) - { - lineDataSource = gameObject.GetComponent(); - } - - if (lineDataSource == null || !lineDataSource.enabled) - { - return; - } - - GizmosDrawLineRenderer(); - } - - private void GizmosDrawLineRenderer() - { - if (stepMode == StepMode.FromSource) - { - GizmosDrawLineFromSource(); - } - else - { - GizmosDrawLineInterpolated(); - } - } - - private void GizmosDrawLineFromSource() - { - Vector3 firstPos = lineDataSource.GetPoint(0); - Vector3 lastPos = firstPos; - - Color gColor = GetColor(0); - gColor.a = 0.15f; - Gizmos.color = gColor; - Gizmos.DrawSphere(firstPos, GetWidth(0) * 0.5f); - - for (int i = 1; i < lineDataSource.PointCount; i++) - { - float normalizedLength = (1f / lineDataSource.PointCount) * i; - Vector3 currentPos = lineDataSource.GetPoint(i); - - gColor = GetColor(normalizedLength); - Gizmos.color = gColor.Invert(); - Gizmos.DrawLine(lastPos, currentPos); - - gColor.a = 0.15f; - Gizmos.color = gColor; - Gizmos.DrawSphere(currentPos, GetWidth(normalizedLength) * 0.5f); - - lastPos = currentPos; - } - - if (lineDataSource.Loops) - { - Gizmos.color = gColor.Invert(); - Gizmos.DrawLine(lastPos, firstPos); - } - } - - private void GizmosDrawLineInterpolated() - { - Vector3 firstPos = lineDataSource.GetPoint(0f); - Vector3 lastPos = firstPos; - Color gColor = GetColor(0f); - - gColor.a = 0.15f; - Gizmos.color = gColor; - Gizmos.DrawSphere(firstPos, GetWidth(0f) * 0.5f); - - for (int i = 1; i <= lineStepCount; i++) - { - float normalizedLength = (1f / lineStepCount) * i; - Vector3 currentPos = lineDataSource.GetPoint(normalizedLength); - - gColor = GetColor(normalizedLength); - Gizmos.color = gColor.Invert(); - Gizmos.DrawLine(lastPos, currentPos); - - gColor.a = 0.15f; - Gizmos.color = gColor; - Gizmos.DrawSphere(currentPos, GetWidth(normalizedLength) * 0.5f); - lastPos = currentPos; - } - - if (lineDataSource.Loops) - { - Gizmos.color = gColor.Invert(); - Gizmos.DrawLine(lastPos, firstPos); - } - } - -#endif - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs.meta deleted file mode 100644 index c53ea6705..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/BaseMixedRealityLineRenderer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 10da3696cde44b73b23819105f9fefce -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs deleted file mode 100644 index 47462b306..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Creates instances of a mesh along the line - /// - [AddComponentMenu("Scripts/MRTK/Core/MeshLineRenderer")] - public class MeshLineRenderer : BaseMixedRealityLineRenderer - { - [Header("Instanced Mesh Settings")] - - [SerializeField] - private Mesh lineMesh = null; - - public Mesh LineMesh - { - get { return lineMesh; } - set - { - enabled = false; - lineMesh = value; - enabled = true; - } - } - - [SerializeField] - private Material lineMaterial = null; - - public Material LineMaterial - { - get { return lineMaterial; } - set - { - enabled = false; - lineMaterial = value; - enabled = true; - } - } - - [SerializeField] - private string colorProperty = "_Color"; - - [SerializeField] - [Tooltip("How many line steps to skip before a mesh is drawn")] - [Range(0, 10)] - private int lineStepSkip = 0; - - [SerializeField] - private bool useVertexColors = true; - - public string ColorProperty - { - get { return colorProperty; } - set - { - enabled = false; - colorProperty = value; - - if (!lineMaterial.HasProperty(value)) - { - Debug.LogError($"Unable to find the property {value} for the line material"); - return; - } - - enabled = true; - } - } - - private bool IsInitialized - { - get - { - if (lineMaterial != null && lineMesh != null && lineMaterial.HasProperty(colorProperty)) - return true; - - Debug.Assert(lineMesh != null, "Missing assigned line mesh."); - Debug.Assert(lineMaterial != null, "Missing assigned line material."); - Debug.Assert((lineMaterial != null && lineMaterial.HasProperty(colorProperty)), $"Unable to find the property \"{colorProperty}\" for the line material"); - return false; - } - } - - private int colorId; - private List colorValues = new List(); - private List meshTransforms = new List(); - private MaterialPropertyBlock linePropertyBlock; - - protected virtual void OnEnable() - { - if (!IsInitialized) - { - enabled = false; - return; - } - - if (linePropertyBlock == null) - { - linePropertyBlock = new MaterialPropertyBlock(); - } - - lineMaterial.enableInstancing = true; - } - - protected override void UpdateLine() - { - if (!Application.isPlaying) - { // This check is only necessary in edit mode. - if (!IsInitialized) - { - enabled = false; - return; - } - } - - if (LineDataSource.enabled) - { - meshTransforms.Clear(); - colorValues.Clear(); - linePropertyBlock.Clear(); - - int skipCount = 0; - - for (int i = 0; i < LineStepCount; i++) - { - if (lineStepSkip > 0) - { - skipCount++; - if (skipCount < lineStepSkip) - continue; - - skipCount = 0; - } - - float normalizedDistance = GetNormalizedPointAlongLine(i); - colorValues.Add(GetColor(normalizedDistance)); - meshTransforms.Add(Matrix4x4.TRS(LineDataSource.GetPoint(normalizedDistance), LineDataSource.GetRotation(normalizedDistance), Vector3.one * GetWidth(normalizedDistance))); - } - - if (useVertexColors) - { - colorId = Shader.PropertyToID(colorProperty); - linePropertyBlock.SetVectorArray(colorId, colorValues); - } - - Graphics.DrawMeshInstanced(lineMesh, 0, lineMaterial, meshTransforms, linePropertyBlock); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs.meta deleted file mode 100644 index 55ddb1e9e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MeshLineRenderer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b50a81c1a64f4ab6a511959e70fe72aa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs deleted file mode 100644 index ff8d6d788..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs +++ /dev/null @@ -1,257 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.Rendering; -using System.Collections; -using System; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Implements Unity's built in line renderer component, and applies the line data to it. - /// - [RequireComponent(typeof(LineRenderer))] - [AddComponentMenu("Scripts/MRTK/Core/MixedRealityLineRenderer")] - public class MixedRealityLineRenderer : BaseMixedRealityLineRenderer - { - [Header("Mixed Reality Line Renderer Settings")] - - [SerializeField] - [Tooltip("The material to use for the Unity MixedRealityLineRenderer.")] - private Material lineMaterial = null; - - public Material LineMaterial - { - get => lineMaterial; - set => lineMaterial = value; - } - - [SerializeField] - private bool roundedEdges = true; - - public bool RoundedEdges - { - get => roundedEdges; - set => roundedEdges = value; - } - - [SerializeField] - private bool roundedCaps = true; - - public bool RoundedCaps - { - get => roundedCaps; - set => roundedCaps = value; - } - - [SerializeField] - [Tooltip("Sets whether the pointer line will animate to a lower brightness level after a hand/controller is recognized.")] - private bool fadeLineBrightnessOnEnable = true; - - /// - /// Sets whether the ray line will animate to a lower brightness level on enable of this component - /// - public bool FadeLineBrightnessOnEnable - { - get => fadeLineBrightnessOnEnable; - set => fadeLineBrightnessOnEnable = value; - } - - [SerializeField, Range(0f, 1f)] - [Tooltip("The amount the pointer line will fade if FadeLineBrightnessOnEnable is true.")] - private float fadeLinePercentage = 0.55f; - - /// - /// The amount the pointer line will fade if FadeLineBrightnessOnEnable is true" - /// - public float FadeLinePercentage - { - get => fadeLinePercentage; - set => fadeLinePercentage = value; - } - - [SerializeField] - [Tooltip("The length of the animation if fadeLineBrightnessOnEnable is true.")] - private float fadeLineAnimationTime = 0.65f; - - /// - /// The amount the pointer line will fade if fadeLineBrightnessOnEnable is true" - /// - public float FadeLineAnimationTime - { - get => fadeLineAnimationTime; - set => fadeLineAnimationTime = value; - } - - [SerializeField] - [HideInInspector] - private LineRenderer lineRenderer = null; - - [Header("Texture Tiling")] - [SerializeField] - [Tooltip("Tiles the material on the line renderer by world length. Use if you want the texture size to remain constant regardless of a line's length.")] - private bool tileMaterialByWorldLength = false; - private MaterialPropertyBlock tilingPropertyBlock; - private Vector4 tilingPropertyVector = Vector4.one; - - [SerializeField] - private float tileMaterialScale = 1f; - - private Vector3[] positions; - - private Coroutine fadeLine = null; - private GradientAlphaKey[] cachedKeys; - - private void OnEnable() - { - lineRenderer = gameObject.EnsureComponent(); - - if (LineMaterial == null) - { - LineMaterial = lineRenderer.sharedMaterial; - } - - // mafinc - Start the line renderer off disabled (invisible), we'll enable it - // when we have enough data for it to render properly. - if (lineRenderer != null) - { - lineRenderer.enabled = false; - } - - if (LineMaterial == null) - { - Debug.LogError("MixedRealityLineRenderer needs a material."); - enabled = false; - } - - if (FadeLineBrightnessOnEnable && Application.isPlaying) - { - fadeLine = StartCoroutine(FadeLine(FadeLinePercentage, FadeLineAnimationTime)); - } - } - - private void OnDisable() - { - lineRenderer.enabled = false; - - if (fadeLine != null) - { - StopCoroutine(fadeLine); - fadeLine = null; - } - } - - /// - protected override void UpdateLine() - { - if (LineDataSource == null) - { - enabled = false; - lineRenderer.enabled = false; - return; - } - - lineRenderer.enabled = lineDataSource.enabled; - lineRenderer.positionCount = StepMode == StepMode.FromSource ? lineDataSource.PointCount : LineStepCount; - - if (positions == null || positions.Length != lineRenderer.positionCount) - { - positions = new Vector3[lineRenderer.positionCount]; - } - - for (int i = 0; i < positions.Length; i++) - { - if (StepMode == StepMode.FromSource) - { - positions[i] = lineDataSource.GetPoint(i); - } - else - { - float normalizedDistance = GetNormalizedPointAlongLine(i); - positions[i] = lineDataSource.GetPoint(normalizedDistance); - } - } - - // Set line renderer properties - lineRenderer.loop = lineDataSource.Loops; - lineRenderer.numCapVertices = roundedCaps ? 8 : 0; - lineRenderer.numCornerVertices = roundedEdges ? 8 : 0; - lineRenderer.useWorldSpace = true; - lineRenderer.startWidth = 1; - lineRenderer.endWidth = 1; - lineRenderer.startColor = Color.white; - lineRenderer.endColor = Color.white; - lineRenderer.sharedMaterial = lineMaterial; - lineRenderer.widthCurve = LineWidth; - lineRenderer.widthMultiplier = WidthMultiplier; - lineRenderer.colorGradient = LineColor; - lineRenderer.shadowCastingMode = ShadowCastingMode.Off; - lineRenderer.lightProbeUsage = LightProbeUsage.Off; - - // Set positions - lineRenderer.positionCount = positions.Length; - lineRenderer.SetPositions(positions); - - // Update texture tiling, if applicable - if (tileMaterialByWorldLength) - { - if (tilingPropertyBlock == null) - { - tilingPropertyBlock = new MaterialPropertyBlock(); - } - - tilingPropertyVector.x = lineDataSource.UnClampedWorldLength * tileMaterialScale; - tilingPropertyBlock.SetVector("_MainTex_ST", tilingPropertyVector); - lineRenderer.SetPropertyBlock(tilingPropertyBlock); - } - else - { - if (tilingPropertyBlock != null) - { - tilingPropertyBlock.Clear(); - lineRenderer.SetPropertyBlock(tilingPropertyBlock); - } - } - } - - private IEnumerator FadeLine(float targetAlphaPercentage, float animationLength) - { - float currentTime = 0f; - - if (cachedKeys == null) - { - cachedKeys = LineColor.alphaKeys; - } - - GradientAlphaKey[] fadedKeys = new GradientAlphaKey[cachedKeys.Length]; - Array.Copy(cachedKeys, fadedKeys, cachedKeys.Length); - float startAlpha = 1f; - - while (currentTime != animationLength) - { - currentTime += Time.deltaTime; - - if (currentTime > animationLength) - { - currentTime = animationLength; - } - - float percentageComplete = currentTime / animationLength; - - float scalar = Mathf.Lerp(startAlpha, targetAlphaPercentage, percentageComplete); - - for (int i = 0; i < fadedKeys.Length; i++) - { - fadedKeys[i].alpha = cachedKeys[i].alpha * scalar; - } - - LineColor.alphaKeys = fadedKeys; - - yield return null; - } - - fadeLine = null; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs.meta deleted file mode 100644 index 81199cf56..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/MixedRealityLineRenderer.cs.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: 1287d4d138a242f794bcfc01354d3ae2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: - - lineDataSource: {instanceID: 0} - - lineMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} - - lineRenderer: {instanceID: 0} - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs deleted file mode 100644 index b1e4ab020..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs +++ /dev/null @@ -1,234 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// attaches a set of particles to the line - /// - [RequireComponent(typeof(ParticleSystem))] - [AddComponentMenu("Scripts/MRTK/Core/ParticleSystemLineRenderer")] - public class ParticleSystemLineRenderer : BaseMixedRealityLineRenderer - { - private const int GlobalMaxParticles = 2048; - - [Header("Particle Settings")] - - [SerializeField] - private Material lineMaterial; - - public Material LineMaterial - { - get { return lineMaterial; } - set { lineMaterial = value; } - } - - [SerializeField] - [Range(128, GlobalMaxParticles)] - private int maxParticles = GlobalMaxParticles; - - public int MaxParticles - { - get { return maxParticles; } - set { maxParticles = Mathf.Clamp(value, 128, GlobalMaxParticles); } - } - - [Header("Noise settings")] - - [SerializeField] - private bool particleNoiseOnDisabled = true; - - public bool ParticleNoiseOnDisabled - { - get { return particleNoiseOnDisabled; } - set { particleNoiseOnDisabled = value; } - } - - [SerializeField] - private Vector3 noiseStrength = Vector3.one; - - public Vector3 NoiseStrength - { - get { return noiseStrength; } - set { noiseStrength = value; } - } - - [SerializeField] - private float noiseFrequency = 1.2f; - - public float NoiseFrequency - { - get { return noiseFrequency; } - set { noiseFrequency = value; } - } - - [Range(1, 10)] - [SerializeField] - private int noiseOcatives = 3; - - public int NoiseOcatives - { - get { return noiseOcatives; } - set { noiseOcatives = Mathf.Clamp(value, 1, 10); } - } - - [SerializeField] - [Range(-10f, 10f)] - private float noiseSpeed = 1f; - - public float NoiseSpeed - { - get { return noiseSpeed; } - set { noiseSpeed = Mathf.Clamp(value, -10f, 10f); } - } - - [SerializeField] - [Range(0.01f, 0.5f)] - private float lifetimeAfterDisabled = 0.25f; - - public float LifetimeAfterDisabled - { - get { return lifetimeAfterDisabled; } - set { lifetimeAfterDisabled = Mathf.Clamp(value, 0.01f, 0.5f); } - } - - [SerializeField] - private Gradient decayGradient = new Gradient(); - - public Gradient DecayGradient - { - get { return decayGradient; } - set { decayGradient = value; } - } - - [SerializeField] - [HideInInspector] - private ParticleSystem particles; - - [SerializeField] - [HideInInspector] - private ParticleSystemRenderer mainParticleRenderer; - - public ParticleSystemRenderer MainParticleRenderer - { - get - { - if (particles == null) - { - particles = gameObject.EnsureComponent(); - } - - if (mainParticleRenderer == null) - { - mainParticleRenderer = particles.EnsureComponent(); - } - - return mainParticleRenderer; - } - set { mainParticleRenderer = value; } - } - - private readonly ParticleSystem.Particle[] mainParticleArray = new ParticleSystem.Particle[GlobalMaxParticles]; - - private ParticleSystem.NoiseModule mainNoiseModule; - - private float decayStartTime = 0f; - - private void OnEnable() - { - if (particles == null) - { - particles = gameObject.EnsureComponent(); - } - - mainNoiseModule = particles.noise; - - ParticleSystem.EmissionModule emission = particles.emission; - emission.rateOverTime = new ParticleSystem.MinMaxCurve(0); - emission.rateOverDistance = new ParticleSystem.MinMaxCurve(0); - emission.enabled = true; - - ParticleSystem.MainModule main = particles.main; - main.loop = false; - main.playOnAwake = false; - main.maxParticles = Mathf.Min(maxParticles, GlobalMaxParticles); - main.simulationSpace = ParticleSystemSimulationSpace.World; - - ParticleSystem.ShapeModule shape = particles.shape; - shape.enabled = false; - - MainParticleRenderer.sharedMaterial = lineMaterial; - MainParticleRenderer.enabled = true; - - // Initialize our particles - for (int i = 0; i < mainParticleArray.Length; i++) - { - ParticleSystem.Particle particle = mainParticleArray[i]; - particle.startColor = Color.white; - particle.startSize = 1f; - particle.startLifetime = float.MaxValue; - particle.remainingLifetime = float.MaxValue; - particle.velocity = Vector3.zero; - particle.angularVelocity = 0; - mainParticleArray[i] = particle; - } - } - - /// - protected override void UpdateLine() - { - if (!LineDataSource.enabled) - { - mainNoiseModule.enabled = particleNoiseOnDisabled; - mainNoiseModule.strengthX = noiseStrength.x; - mainNoiseModule.strengthY = noiseStrength.y; - mainNoiseModule.strengthZ = noiseStrength.z; - mainNoiseModule.octaveCount = noiseOcatives; - mainNoiseModule.scrollSpeed = noiseSpeed; - mainNoiseModule.frequency = noiseFrequency; - - if (decayStartTime < 0) - { - decayStartTime = Time.unscaledTime; - } - } - else - { - mainNoiseModule.enabled = false; - decayStartTime = -1; - } - - if (LineDataSource.enabled) - { - for (int i = 0; i < LineStepCount; i++) - { - float normalizedDistance = GetNormalizedPointAlongLine(i); - ParticleSystem.Particle particle = mainParticleArray[i]; - particle.position = LineDataSource.GetPoint(normalizedDistance); - particle.startColor = GetColor(normalizedDistance); - particle.startSize = GetWidth(normalizedDistance); - mainParticleArray[i] = particle; - } - } - else - { - int numDecayingParticles = particles.GetParticles(mainParticleArray); - - for (int i = 0; i < numDecayingParticles; i++) - { - float normalizedDistance = (1f / (LineStepCount - 1)) * i; - mainParticleArray[i].startColor = decayGradient.Evaluate((Time.unscaledTime - decayStartTime) / lifetimeAfterDisabled) * GetColor(normalizedDistance); - } - } - - particles.SetParticles(mainParticleArray, LineStepCount); - } - - private void OnDisable() - { - MainParticleRenderer.enabled = false; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs.meta deleted file mode 100644 index 84ef04f52..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/ParticleSystemLineRenderer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 442f3cafc6c848569eac015f46e9a029 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs deleted file mode 100644 index c5d2b4cf2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Draws a strip of polygons along the line - /// - [AddComponentMenu("Scripts/MRTK/Core/StripMeshLineRenderer")] - public class StripMeshLineRenderer : BaseMixedRealityLineRenderer - { - [Header("Strip Mesh Settings")] - - [SerializeField] - private Material lineMaterial = null; - [SerializeField] - private float uvOffset = 0f; - - [SerializeField] - [HideInInspector] - private MeshRenderer stripMeshRenderer; - [SerializeField] - [HideInInspector] - private GameObject meshRendererGameObject; - - private Mesh stripMesh; - private Material lineMatInstance; - - private readonly List positions = new List(); - private readonly List forwards = new List(); - private readonly List colors = new List(); - private readonly List widths = new List(); - - private static Vector3[] stripMeshVertices = null; - private static Color[] stripMeshColors = null; - private static Vector2[] stripMeshUvs = null; - private static int[] stripMeshTriangles = null; - - private void OnEnable() - { - if (lineMaterial == null) - { - Debug.LogError("LineDataProvider material cannot be null."); - enabled = false; - return; - } - - lineMatInstance = new Material(lineMaterial); - - // Create a mesh - if (stripMesh == null) - { - stripMesh = new Mesh(); - } - - if (stripMeshRenderer == null) - { - meshRendererGameObject = new GameObject("Strip Mesh Renderer"); - stripMeshRenderer = meshRendererGameObject.AddComponent(); - } - - stripMeshRenderer.sharedMaterial = lineMatInstance; - stripMeshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; - stripMeshRenderer.receiveShadows = false; - stripMeshRenderer.lightProbeUsage = UnityEngine.Rendering.LightProbeUsage.Off; - - var stripMeshFilter = stripMeshRenderer.EnsureComponent(); - stripMeshFilter.sharedMesh = stripMesh; - } - - private void OnDisable() - { - if (lineMatInstance != null) - { - if (Application.isEditor) - { - DestroyImmediate(lineMatInstance); - } - else - { - Destroy(lineMatInstance); - } - } - - if (meshRendererGameObject != null) - { - if (Application.isEditor) - { - DestroyImmediate(meshRendererGameObject); - } - else - { - Destroy(meshRendererGameObject); - } - stripMeshRenderer = null; - } - } - - /// - protected override void UpdateLine() - { - if (stripMeshRenderer == null) - { - Debug.LogError("Strip mesh renderer has been destroyed - disabling"); - enabled = false; - } - - if (!LineDataSource.enabled) - { - stripMeshRenderer.enabled = false; - return; - } - - stripMeshRenderer.enabled = true; - positions.Clear(); - forwards.Clear(); - colors.Clear(); - widths.Clear(); - - for (int i = 0; i <= LineStepCount; i++) - { - float normalizedDistance = GetNormalizedPointAlongLine(i); - positions.Add(LineDataSource.GetPoint(normalizedDistance)); - colors.Add(GetColor(normalizedDistance)); - widths.Add(GetWidth(normalizedDistance)); - forwards.Add(LineDataSource.GetVelocity(normalizedDistance)); - } - - GenerateStripMesh(positions, colors, widths, uvOffset, forwards, stripMesh, LineDataSource.LineTransform.up); - } - - public static void GenerateStripMesh(List positionList, List colorList, List thicknessList, float uvOffsetLocal, List forwardList, Mesh mesh, Vector3 up) - { - int vertexCount = positionList.Count * 2; - int colorCount = colorList.Count * 2; - int uvCount = positionList.Count * 2; - - if (stripMeshVertices == null || stripMeshVertices.Length != vertexCount) - { - stripMeshVertices = new Vector3[vertexCount]; - } - - if (stripMeshColors == null || stripMeshColors.Length != colorCount) - { - stripMeshColors = new Color[colorCount]; - } - - if (stripMeshUvs == null || stripMeshUvs.Length != uvCount) - { - stripMeshUvs = new Vector2[uvCount]; - } - - for (int x = 0; x < positionList.Count; x++) - { - int index = (int)(x * 0.5f); - Vector3 forward = forwardList[index]; - Vector3 right = Vector3.Cross(forward, up).normalized; - float thickness = thicknessList[index] * 0.5f; - stripMeshVertices[2 * x] = positionList[x] - right * thickness; - stripMeshVertices[2 * x + 1] = positionList[x] + right * thickness; - stripMeshColors[2 * x] = colorList[x]; - stripMeshColors[2 * x + 1] = colorList[x]; - - float uv = uvOffsetLocal; - - if (x == positionList.Count - 1 && x > 1) - { - float distLast = (positionList[x - 2] - positionList[x - 1]).magnitude; - float distCur = (positionList[x] - positionList[x - 1]).magnitude; - uv += 1 - distCur / distLast; - } - - stripMeshUvs[2 * x] = new Vector2(0, x - uv); - stripMeshUvs[2 * x + 1] = new Vector2(1, x - uv); - } - - int numTriangles = ((positionList.Count * 2 - 2) * 3); - - if (stripMeshTriangles == null || stripMeshTriangles.Length != numTriangles) - { - stripMeshTriangles = new int[numTriangles]; - } - - int j = 0; - - for (int i = 0; i < positionList.Count * 2 - 3; i += 2, j++) - { - stripMeshTriangles[i * 3] = j * 2; - stripMeshTriangles[i * 3 + 1] = j * 2 + 1; - stripMeshTriangles[i * 3 + 2] = j * 2 + 2; - - stripMeshTriangles[i * 3 + 3] = j * 2 + 1; - stripMeshTriangles[i * 3 + 4] = j * 2 + 3; - stripMeshTriangles[i * 3 + 5] = j * 2 + 2; - } - - mesh.Clear(); - mesh.vertices = stripMeshVertices; - mesh.uv = stripMeshUvs; - mesh.triangles = stripMeshTriangles; - mesh.colors = stripMeshColors; - mesh.RecalculateBounds(); - mesh.RecalculateNormals(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs.meta deleted file mode 100644 index f65c7a434..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Lines/Renderers/StripMeshLineRenderer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 00e17397bc344b5a8f17a2b2cebda927 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs b/AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs deleted file mode 100644 index fae572f89..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Utility component to keep the border light width a constant size no mater the - /// object scale. This component should be used in conjunction with the - /// "MixedRealityToolkit/Standard" shader "_BorderLight" feature. - /// - [RequireComponent(typeof(Renderer))] - [AddComponentMenu("Scripts/MRTK/Core/MaintainBorderLightWidth")] - public class MaintainBorderLightWidth : MonoBehaviour - { - private Renderer targetRenderer = null; - private MaterialPropertyBlock properties = null; - private static int borderWidthID = Shader.PropertyToID("_BorderWidth"); - private float initialBorderWidth = 1.0f; - private Vector3 initialScale = Vector3.one; - private Vector3 prevScale; - - private void Start() - { - // Cache the initial border width state. - targetRenderer = GetComponent(); - properties = new MaterialPropertyBlock(); - - initialBorderWidth = targetRenderer.sharedMaterial.GetFloat(borderWidthID); - initialScale = transform.lossyScale; - prevScale = initialScale; - - for (int i = 0; i < 3; ++i) - { - if (initialScale[i].Equals(0.0f)) - { - initialScale[i] = 1.0f; - } - } - } - - private void LateUpdate() - { - if (prevScale != transform.lossyScale && targetRenderer != null) - { - prevScale = transform.lossyScale; - - // Find the axis with the smallest scale. - var minAxis = 0; - var minScale = float.MaxValue; - - for (int i = 0; i < 3; ++i) - { - var scaleAbs = Mathf.Abs(transform.lossyScale[i]); - - if (scaleAbs < minScale) - { - minAxis = i; - minScale = scaleAbs; - } - } - - // Multiply the initial border width by the amount need to maintain its value at the new scale. - var scalePercentage = minScale / initialScale[minAxis]; - - if (scalePercentage.Equals(0.0f)) - { - scalePercentage = 1.0f; - } - - targetRenderer.GetPropertyBlock(properties); - properties.SetFloat(borderWidthID, initialBorderWidth / scalePercentage); - targetRenderer.SetPropertyBlock(properties); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs.meta deleted file mode 100644 index b4ee01f65..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MaintainBorderLightWidth.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 36065390e01a3cd40b87e4bf4acd02f9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs deleted file mode 100644 index 1b529b8a2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs +++ /dev/null @@ -1,550 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Math Utilities class. - /// - public static class MathUtilities - { - /// - /// Takes a point in the coordinate space specified by the "from" transform and transforms it to be the correct - /// point in the coordinate space specified by the "to" transform applies rotation, scale and translation. - /// - /// Point to. - public static Vector3 TransformPointFromTo(Transform from, Transform to, Vector3 fromPoint) - { - Vector3 worldPoint = (from == null) ? fromPoint : from.TransformPoint(fromPoint); - return (to == null) ? worldPoint : to.InverseTransformPoint(worldPoint); - } - - /// - /// Takes a direction in the coordinate space specified by the "from" transform and transforms it to be the correct direction in the coordinate space specified by the "to" transform - /// applies rotation only, no translation or scale - /// - /// Direction to. - public static Vector3 TransformDirectionFromTo(Transform from, Transform to, Vector3 fromDirection) - { - Vector3 worldDirection = (from == null) ? fromDirection : from.TransformDirection(fromDirection); - return (to == null) ? worldDirection : to.InverseTransformDirection(worldDirection); - } - - /// - /// Takes a vector in the coordinate space specified by the "from" transform and transforms it to be the correct direction in the coordinate space specified by the "to" transform - /// applies rotation and scale, no translation - /// - public static Vector3 TransformVectorFromTo(Transform from, Transform to, Vector3 vecInFrom) - { - Vector3 vecInWorld = (from == null) ? vecInFrom : from.TransformVector(vecInFrom); - Vector3 vecInTo = (to == null) ? vecInWorld : to.InverseTransformVector(vecInWorld); - return vecInTo; - } - - /// - /// Retrieve angular measurement describing how large a sphere or circle appears from a given point of view. - /// Takes an angle (at given point of view) and a distance and returns the actual diameter of the object. - /// - public static float ScaleFromAngularSizeAndDistance(float angle, float distance) - { - float scale = 2.0f * distance * Mathf.Tan(angle * Mathf.Deg2Rad * 0.5f); - return scale; - } - - [System.Obsolete("Method obsolete. Use ScaleFromAngularSizeAndDistance instead")] - public static float AngularScaleFromDistance(float angle, float distance) - { - return ScaleFromAngularSizeAndDistance(angle, distance); - } - - /// - /// Takes a ray in the coordinate space specified by the "from" transform and transforms it to be the correct ray in the coordinate space specified by the "to" transform - /// - public static Ray TransformRayFromTo(Transform from, Transform to, Ray rayToConvert) - { - Ray outputRay = new Ray - { - origin = TransformPointFromTo(from, to, rayToConvert.origin), - direction = TransformDirectionFromTo(from, to, rayToConvert.direction) - }; - - return outputRay; - } - - /// - /// Creates a quaternion containing the rotation from the input matrix. - /// - /// Input matrix to convert to quaternion - public static Quaternion QuaternionFromMatrix(Matrix4x4 m) - { - // TODO: test and replace with this simpler, more unity-friendly code - // Quaternion q = Quaternion.LookRotation(m.GetColumn(2),m.GetColumn(1)); - - Quaternion q = new Quaternion - { - w = Mathf.Sqrt(Mathf.Max(0, 1 + m[0, 0] + m[1, 1] + m[2, 2])) / 2, - x = Mathf.Sqrt(Mathf.Max(0, 1 + m[0, 0] - m[1, 1] - m[2, 2])) / 2, - y = Mathf.Sqrt(Mathf.Max(0, 1 - m[0, 0] + m[1, 1] - m[2, 2])) / 2, - z = Mathf.Sqrt(Mathf.Max(0, 1 - m[0, 0] - m[1, 1] + m[2, 2])) / 2 - }; - q.x *= Mathf.Sign(q.x * (m[2, 1] - m[1, 2])); - q.y *= Mathf.Sign(q.y * (m[0, 2] - m[2, 0])); - q.z *= Mathf.Sign(q.z * (m[1, 0] - m[0, 1])); - return q; - } - - /// - /// Extract the translation and rotation components of a Unity matrix - /// - public static void ToTranslationRotation(Matrix4x4 unityMtx, out Vector3 translation, out Quaternion rotation) - { - Vector3 upwards = new Vector3(unityMtx.m01, unityMtx.m11, unityMtx.m21); - Vector3 forward = new Vector3(unityMtx.m02, unityMtx.m12, unityMtx.m22); - translation = new Vector3(unityMtx.m03, unityMtx.m13, unityMtx.m23); - rotation = Quaternion.LookRotation(forward, upwards); - } - - /// - /// Project vector onto XZ plane - /// - /// result of projecting v onto XZ plane - public static Vector3 XZProject(Vector3 v) - { - return new Vector3(v.x, 0.0f, v.z); - } - - /// - /// Project vector onto YZ plane - /// - /// result of projecting v onto YZ plane - public static Vector3 YZProject(Vector3 v) - { - return new Vector3(0.0f, v.y, v.z); - } - - /// - /// Project vector onto XY plane - /// - /// result of projecting v onto XY plane - public static Vector3 XYProject(Vector3 v) - { - return new Vector3(v.x, v.y, 0.0f); - } - - /// - /// Returns the distance between a point and an infinite line defined by two points; linePointA and linePointB - /// - public static float DistanceOfPointToLine(Vector3 point, Vector3 linePointA, Vector3 linePointB) - { - Vector3 closestPoint = ClosestPointOnLineToPoint(point, linePointA, linePointB); - return (point - closestPoint).magnitude; - } - - public static Vector3 ClosestPointOnLineToPoint(Vector3 point, Vector3 linePointA, Vector3 linePointB) - { - Vector3 v = linePointB - linePointA; - Vector3 w = point - linePointA; - - float c1 = Vector3.Dot(w, v); - float c2 = Vector3.Dot(v, v); - float b = c1 / c2; - - Vector3 pointB = linePointA + (v * b); - - return pointB; - } - - public static float DistanceOfPointToLineSegment(Vector3 point, Vector3 lineStart, Vector3 lineEnd) - { - Vector3 closestPoint = ClosestPointOnLineSegmentToPoint(point, lineStart, lineEnd); - return (point - closestPoint).magnitude; - } - - public static Vector3 ClosestPointOnLineSegmentToPoint(Vector3 point, Vector3 lineStart, Vector3 lineEnd) - { - Vector3 v = lineEnd - lineStart; - Vector3 w = point - lineStart; - - float c1 = Vector3.Dot(w, v); - if (c1 <= 0) - { - return lineStart; - } - - float c2 = Vector3.Dot(v, v); - if (c2 <= c1) - { - return lineEnd; - } - - float b = c1 / c2; - - Vector3 pointB = lineStart + (v * b); - - return pointB; - } - - public static bool TestPlanesAABB(Plane[] planes, int planeMask, Bounds bounds, out bool entirelyInside) - { - int planeIndex = 0; - int entirelyInsideCount = 0; - Vector3 boundsCenter = bounds.center; // center of bounds - Vector3 boundsExtent = bounds.extents; // half diagonal - // do intersection test for each active frame - int mask = 1; - - // while active frames - while (mask <= planeMask) - { - // if active - if ((uint)(planeMask & mask) != 0) - { - Plane p = planes[planeIndex]; - Vector3 n = p.normal; - n.x = Mathf.Abs(n.x); - n.y = Mathf.Abs(n.y); - n.z = Mathf.Abs(n.z); - - float distance = p.GetDistanceToPoint(boundsCenter); - float radius = Vector3.Dot(boundsExtent, n); - - if (distance + radius < 0) - { - // behind clip plane - entirelyInside = false; - return false; - } - - if (distance > radius) - { - entirelyInsideCount++; - } - } - - mask += mask; - planeIndex++; - } - - entirelyInside = entirelyInsideCount == planes.Length; - return true; - } - - /// - /// Tests component-wise if a Vector2 is in a given range - /// - /// The vector to test - /// The lower bounds - /// The upper bounds - /// true if in range, otherwise false - public static bool InRange(Vector2 vec, Vector2 lower, Vector2 upper) - { - return vec.x >= lower.x && vec.x <= upper.x && vec.y >= lower.y && vec.y <= upper.y; - } - - /// - /// Tests component-wise if a Vector3 is in a given range - /// - /// The vector to test - /// The lower bounds - /// The upper bounds - /// true if in range, otherwise false - public static bool InRange(Vector3 vec, Vector3 lower, Vector3 upper) - { - return vec.x >= lower.x && vec.x <= upper.x && vec.y >= lower.y && vec.y <= upper.y && vec.z >= lower.z && vec.z <= upper.z; - } - - /// - /// Element-wise addition of two Matrix4x4s - extension method - /// - /// matrix - /// matrix - /// element-wise (a+b) - public static Matrix4x4 Add(Matrix4x4 a, Matrix4x4 b) - { - Matrix4x4 result = new Matrix4x4(); - result.SetColumn(0, a.GetColumn(0) + b.GetColumn(0)); - result.SetColumn(1, a.GetColumn(1) + b.GetColumn(1)); - result.SetColumn(2, a.GetColumn(2) + b.GetColumn(2)); - result.SetColumn(3, a.GetColumn(3) + b.GetColumn(3)); - return result; - } - - /// - /// Element-wise subtraction of two Matrix4x4s - extension method - /// - /// matrix - /// matrix - /// element-wise (a-b) - public static Matrix4x4 Subtract(Matrix4x4 a, Matrix4x4 b) - { - Matrix4x4 result = new Matrix4x4(); - result.SetColumn(0, a.GetColumn(0) - b.GetColumn(0)); - result.SetColumn(1, a.GetColumn(1) - b.GetColumn(1)); - result.SetColumn(2, a.GetColumn(2) - b.GetColumn(2)); - result.SetColumn(3, a.GetColumn(3) - b.GetColumn(3)); - return result; - } - - /// - /// find unsigned distance of 3D point to an infinite line - /// - /// ray that specifies an infinite line - /// 3D point - /// unsigned perpendicular distance from point to line - public static float DistanceOfPointToLine(Ray ray, Vector3 point) - { - return Vector3.Cross(ray.direction, point - ray.origin).magnitude; - } - - /// - /// Find 3D point that minimizes distance to 2 lines, midpoint of the shortest perpendicular line segment between them - /// - /// ray that specifies a line - /// ray that specifies a line - /// point nearest to the lines - public static Vector3 NearestPointToLines(Ray p, Ray q) - { - float a = Vector3.Dot(p.direction, p.direction); - float b = Vector3.Dot(p.direction, q.direction); - float c = Vector3.Dot(q.direction, q.direction); - Vector3 w0 = p.origin - q.origin; - float den = a * c - b * b; - float epsilon = 0.00001f; - if (den < epsilon) - { - // parallel, so just average origins - return 0.5f * (p.origin + q.origin); - } - float d = Vector3.Dot(p.direction, w0); - float e = Vector3.Dot(q.direction, w0); - float sc = (b * e - c * d) / den; - float tc = (a * e - b * d) / den; - Vector3 point = 0.5f * (p.origin + sc * p.direction + q.origin + tc * q.direction); - return point; - } - - /// - /// Find 3D point that minimizes distance to a set of 2 or more lines, ignoring outliers - /// - /// list of rays, each specifying a line, must have at least 1 - /// number of iterations: log(1-p)/log(1-(1-E)^s) - /// where p is probability of at least one sample containing s points is all inliers - /// E is proportion of outliers (1-ransac_ratio) - /// e.g. p=0.999, ransac_ratio=0.54, s=2 ==> log(0.001)/(log(1-0.54^2) = 20 - /// - /// minimum distance from point to line for a line to be considered an inlier - /// return number of inliers: lines that are within ransac_threshold of nearest point - /// point nearest to the set of lines, ignoring outliers - public static Vector3 NearestPointToLinesRANSAC(List rays, int ransac_iterations, float ransac_threshold, out int numActualInliers) - { - // start with something, just in case no inliers - this works for case of 1 or 2 rays - Vector3 nearestPoint = NearestPointToLines(rays[0], rays[rays.Count - 1]); - numActualInliers = 0; - if (rays.Count > 2) - { - for (int it = 0; it < ransac_iterations; it++) - { - Vector3 testPoint = NearestPointToLines(rays[Random.Range(0, rays.Count)], rays[Random.Range(0, rays.Count)]); - - // count inliers - int numInliersForIteration = 0; - for (int ind = 0; ind < rays.Count; ++ind) - { - if (DistanceOfPointToLine(rays[ind], testPoint) < ransac_threshold) - ++numInliersForIteration; - } - - // remember best - if (numInliersForIteration > numActualInliers) - { - numActualInliers = numInliersForIteration; - nearestPoint = testPoint; - } - } - } - - // now find and count actual inliers and do least-squares to find best fit - IEnumerable inlierList = rays.Where(r => DistanceOfPointToLine(r, nearestPoint) < ransac_threshold); - numActualInliers = inlierList.Count(); - if (numActualInliers >= 2) - { - nearestPoint = NearestPointToLinesLeastSquares(inlierList); - } - return nearestPoint; - } - - /// - /// Find 3D point that minimizes distance to a set of 2 or more lines - /// - /// each ray specifies an infinite line - /// point nearest to the set of lines - public static Vector3 NearestPointToLinesLeastSquares(IEnumerable rays) - { - // finding the point nearest to the set of lines specified by rays - // Use the following formula, where u_i are normalized direction - // vectors along each ray and p_i is a point along each ray. - - // -1 - // / ===== \ ===== - // | \ / T\ | \ / T\ - // | > |I - u u | | > |I - u u | p - // | / \ i i/ | / \ i i/ i - // | ===== | ===== - // \ i / i - - Matrix4x4 sumOfProduct = Matrix4x4.zero; - Vector4 sumOfProductTimesDirection = Vector4.zero; - - foreach (Ray r in rays) - { - Vector4 point = r.origin; - Matrix4x4 directionColumnMatrix = new Matrix4x4(); - Vector3 rNormal = r.direction.normalized; - directionColumnMatrix.SetColumn(0, rNormal); - Matrix4x4 directionRowMatrix = directionColumnMatrix.transpose; - Matrix4x4 product = directionColumnMatrix * directionRowMatrix; - Matrix4x4 identityMinusDirectionProduct = Subtract(Matrix4x4.identity, product); - sumOfProduct = Add(sumOfProduct, identityMinusDirectionProduct); - Vector4 vectorProduct = identityMinusDirectionProduct * point; - sumOfProductTimesDirection += vectorProduct; - } - - Matrix4x4 sumOfProductInverse = sumOfProduct.inverse; - Vector3 nearestPoint = sumOfProductInverse * sumOfProductTimesDirection; - return nearestPoint; - } - - /// - /// Convert degrees to radians. - /// - /// Angle, in degrees. - /// Angle, in radians. - public static float DegreesToRadians(double degrees) - { - return (float)(degrees * Mathf.Deg2Rad); - } - - /// - /// Convert radians to degrees. - /// - /// Angle, in radians. - /// Angle, in degrees. - public static float RadiansToDegrees(float radians) - { - return (radians * Mathf.Rad2Deg); - } - - /// - /// Calculates the angle (at pointA) between two, two-dimensional points. - /// - /// The first point. - /// The second point. - /// - /// The angle between the two points. - /// - public static float GetAngleBetween(Vector2 pointA, Vector2 pointB) - { - Vector2 diff = pointA - pointB; - return MathUtilities.RadiansToDegrees(Mathf.Atan2(diff.y, diff.x)); - } - - /// - /// Clamps via a lerp for a "soft" clamp effect - /// - /// number to clamp - /// if pos is less than min, then lerp clamps to this value - /// if pos is more than max, lerp clamps to this value - /// Range from 0.0f to 1.0f of how close to snap to min and max - /// A soft clamped value - public static float CLampLerp(float pos, float min, float max, float clampFactor) - { - clampFactor = Mathf.Clamp(clampFactor, 0.0f, 1.0f); - if (pos < min) - { - return Mathf.Lerp(pos, min, clampFactor); - } - else if (pos > max) - { - return Mathf.Lerp(pos, max, clampFactor); - } - - return pos; - } - - /// - /// Calculates the direction vector from a rotation. - /// - /// Quaternion representing the rotation of the object. - /// - /// Normalized Vector3 representing the direction vector. - /// - public static Vector3 GetDirection(Quaternion rotation) - { - return (rotation * Vector3.forward).normalized; - } - - /// - /// Returns if a point lies within a frame of reference view as defined by arguments - /// - /// - /// Field of view parameters are in degrees and plane distances are in meters - /// - public static bool IsInFOV(Vector3 testPosition, Transform frameOfReference, - float verticalFOV, float horizontalFOV, - float minPlaneDistance, float maxPlaneDistance) - { - Vector3 deltaPos = testPosition - frameOfReference.position; - Vector3 referenceDeltaPos = TransformDirectionFromTo(null, frameOfReference, deltaPos); - - if (referenceDeltaPos.z < minPlaneDistance || referenceDeltaPos.z > maxPlaneDistance) - { - return false; - } - - float verticalFovHalf = verticalFOV * 0.5f; - float horizontalFovHalf = horizontalFOV * 0.5f; - - referenceDeltaPos = referenceDeltaPos.normalized; - float yaw = Mathf.Asin(referenceDeltaPos.x) * Mathf.Rad2Deg; - float pitch = Mathf.Asin(referenceDeltaPos.y) * Mathf.Rad2Deg; - - return Mathf.Abs(yaw) < horizontalFovHalf && Mathf.Abs(pitch) < verticalFovHalf; - } - - /// - /// Returns true if a point lies inside the cone described with given parameters, false otherwise. - /// The cone is inscribed to a radius equal to the vertical height of the provided FOV. - /// The test also ensures the distance from the point to the cone lies within the given range. - /// - /// The transform that defines the orientation and position of the cone - /// The point to test if it lies within the cone FOV - /// Field of view for the cone which calculates its radius - /// Point must be at least this far away (along direction forward) from the cone - /// Point must be at most this far away (along direction forward) from the cone. - /// - /// Field of view parameter is in degrees and distances are in meters. - /// - public static bool IsInFOVCone(Transform cone, - Vector3 point, - float fieldOfView, - float minDist = 0.05f, - float maxDist = 100f) - { - var dirToPoint = point - cone.position; - - var pointDist = Vector3.Dot(cone.forward, dirToPoint); - if (pointDist < minDist || pointDist > maxDist) - { - return false; - } - - var degrees = Mathf.Acos(pointDist / dirToPoint.magnitude) * Mathf.Rad2Deg; - return degrees < fieldOfView * 0.5f; - } - - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs.meta deleted file mode 100644 index e27e7c0d6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MathUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5b737012b8e5485b8764ed00e6932da1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Migration.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Migration.meta deleted file mode 100644 index 9309cfa68..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Migration.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4c8bc4b9211e30f469747bf7ffbccf04 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs deleted file mode 100644 index a10af2ab7..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Interface defining a migration handler, which is used to migrate assets as they - /// upgrade to new versions of MRTK. - /// - public interface IMigrationHandler - { - /// - /// Returns true if this migration handler can apply a migration to gameObject - /// - bool CanMigrate(GameObject gameObject); - - /// - /// Applies migration to gameObject - /// - void Migrate(GameObject gameObject); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs.meta deleted file mode 100644 index ac18730d6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Migration/IMigrationHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aaeb43b898aa91947a4d4d9907d1af35 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs b/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs deleted file mode 100644 index 6808211d4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs +++ /dev/null @@ -1,298 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.SceneManagement; -#if UNITY_EDITOR -using UnityEditor; -using UnityEditor.SceneManagement; -#endif - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// A static class encapsulating the Mixed Reality playspace. - /// - public static class MixedRealityPlayspace - { - private const string Name = "MixedRealityPlayspace"; - - private static Transform mixedRealityPlayspace; - - public static void Destroy() - { - // Playspace makes main camera dependent on it (see Transform initialization), - // so here it needs to restore camera's initial position. - // Without second parameter camera will not move to its original position. - CameraCache.Main.transform.SetParent(null, false); - UnityEngine.Object.Destroy(mixedRealityPlayspace.gameObject); - mixedRealityPlayspace = null; - } - - /// - /// The transform of the playspace. - /// - public static Transform Transform - { - get - { - if (mixedRealityPlayspace) - { - mixedRealityPlayspace.gameObject.SetActive(true); - return mixedRealityPlayspace; - } - - if (CameraCache.Main.transform.parent == null) - { - // Create a new mixed reality playspace - GameObject mixedRealityPlayspaceGo = new GameObject(Name); - mixedRealityPlayspace = mixedRealityPlayspaceGo.transform; - CameraCache.Main.transform.SetParent(mixedRealityPlayspace); - } - else - { - mixedRealityPlayspace = CameraCache.Main.transform.parent; - } - - // It's very important that the Playspace align with the tracked space, - // otherwise reality-locked things like playspace boundaries won't be aligned properly. - // For now, we'll just assume that when the playspace is first initialized, the - // tracked space origin overlaps with the world space origin. If a platform ever does - // something else (i.e, placing the lower left hand corner of the tracked space at world - // space 0,0,0), we should compensate for that here. - return mixedRealityPlayspace; - } - } - - /// - /// The location of the playspace. - /// - public static Vector3 Position - { - get { return Transform.position; } - set { Transform.position = value; } - } - - /// - /// The playspace's rotation. - /// - public static Quaternion Rotation - { - get { return Transform.rotation; } - set { Transform.rotation = value; } - } - - /// - /// Adds a child object to the playspace's hierarchy. - /// - /// The child object's transform. - public static void AddChild(Transform transform) - { - transform.SetParent(Transform); - } - - /// - /// Transforms a position from local to world space. - /// - /// The position to be transformed. - /// - /// The position, in world space. - /// - public static Vector3 TransformPoint(Vector3 localPosition) - { - return Transform.TransformPoint(localPosition); - } - - /// - /// Transforms a position from world to local space. - /// - /// The position to be transformed. - /// - /// The position, in local space. - /// - public static Vector3 InverseTransformPoint(Vector3 worldPosition) - { - return Transform.InverseTransformPoint(worldPosition); - } - - /// - /// Transforms a direction from local to world space. - /// - /// The direction to be transformed. - /// - /// The direction, in world space. - /// - public static Vector3 TransformDirection(Vector3 localDirection) - { - return Transform.TransformDirection(localDirection); - } - - /// - /// Transforms a direction from world to local space. - /// - /// The direction to be transformed. - /// - /// The direction, in local space. - /// - public static Vector3 InverseTransformDirection(Vector3 worldDirection) - { - return Transform.InverseTransformDirection(worldDirection); - } - - /// - /// Rotates the playspace around the specified axis. - /// - /// The point to pass through during rotation. - /// The axis about which to rotate. - /// The angle, in degrees, to rotate. - public static void RotateAround(Vector3 point, Vector3 axis, float angle) - { - Transform.RotateAround(point, axis, angle); - } - - /// - /// Performs a playspace transformation. - /// - /// The transformation to be applied to the playspace. - /// - /// This method takes a lambda function and may contribute to garbage collector pressure. - /// For best performance, avoid calling this method from an inner loop function. - /// - public static void PerformTransformation(Action transformation) - { - transformation?.Invoke(Transform); - } - - #region Multi-scene management - - private static bool subscribedToEvents = false; - -#if UNITY_EDITOR - private static bool subscribedToEditorEvents = false; - - [InitializeOnLoadMethod] - public static void InitializeOnLoad() - { - if (!subscribedToEditorEvents) - { - EditorSceneManager.sceneOpened += EditorSceneManagerSceneOpened; - EditorSceneManager.sceneClosed += EditorSceneManagerSceneClosed; - subscribedToEditorEvents = true; - } - - SearchForAndEnableExistingPlayspace(EditorSceneUtils.GetRootGameObjectsInLoadedScenes()); - } - - private static void EditorSceneManagerSceneClosed(Scene scene) - { - if (Application.isPlaying) - { // Let the runtime scene management handle this - return; - } - - if (mixedRealityPlayspace == null) - { // If we unloaded our playspace, see if another one exists - SearchForAndEnableExistingPlayspace(EditorSceneUtils.GetRootGameObjectsInLoadedScenes()); - } - } - - private static void EditorSceneManagerSceneOpened(Scene scene, OpenSceneMode mode) - { - if (Application.isPlaying) - { // Let the runtime scene management handle this - return; - } - - if (mixedRealityPlayspace == null) - { - SearchForAndEnableExistingPlayspace(EditorSceneUtils.GetRootGameObjectsInLoadedScenes()); - } - else - { - if (scene.isLoaded) - { - SearchForAndDisableExtraPlayspaces(scene.GetRootGameObjects()); - } - } - } -#endif - - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] - public static void RuntimeInitializeOnLoadMethod() - { - if (!subscribedToEvents) - { - SceneManager.sceneLoaded += SceneManagerSceneLoaded; - SceneManager.sceneUnloaded += SceneManagerSceneUnloaded; - subscribedToEvents = true; - } - } - - private static void SceneManagerSceneLoaded(Scene scene, LoadSceneMode loadSceneMode) - { - if (mixedRealityPlayspace == null) - { - SearchForAndEnableExistingPlayspace(RuntimeSceneUtils.GetRootGameObjectsInLoadedScenes()); - } - else - { - SearchForAndDisableExtraPlayspaces(scene.GetRootGameObjects()); - } - } - - private static void SceneManagerSceneUnloaded(Scene scene) - { - if (mixedRealityPlayspace == null) - { // If we unloaded our playspace, see if another one exists - SearchForAndEnableExistingPlayspace(RuntimeSceneUtils.GetRootGameObjectsInLoadedScenes()); - } - } - - private static void SearchForAndDisableExtraPlayspaces(IEnumerable rootGameObjects) - { - // We've already got a mixed reality playspace. - // Our task is to search for any additional play spaces that may have been loaded, and disable them. - foreach (GameObject rootGameObject in rootGameObjects) - { - if (rootGameObject == mixedRealityPlayspace.gameObject) - { // Don't disable our existing playspace - continue; - } - - if (rootGameObject.name.Equals(Name)) - { - rootGameObject.SetActive(false); - } - } - } - - private static void SearchForAndEnableExistingPlayspace(IEnumerable rootGameObjects) - { - // We haven't created / found a playspace yet. - // Our task is to see if one exists in the newly loaded scene. - bool enabledOne = false; - foreach (GameObject rootGameObject in rootGameObjects) - { - if (rootGameObject.name.Equals(Name)) - { - if (!enabledOne) - { - mixedRealityPlayspace = rootGameObject.transform; - mixedRealityPlayspace.gameObject.SetActive(true); - enabledOne = true; - } - else - { // If we've already enabled one, we need to disable all others - rootGameObject.SetActive(false); - } - return; - } - } - } - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs.meta deleted file mode 100644 index 0953dca82..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityPlayspace.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3b71d7f51382ebe4c8bb7e06d10b0cfc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs b/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs deleted file mode 100644 index 0a2656b4c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs +++ /dev/null @@ -1,434 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit -{ - /// - /// Static class that represents the Mixed Reality Toolkit service registry. - /// - /// - /// The service registry is used to enable discovery of and access to active Mixed Reality Toolkit services at - /// runtime without requiring direct code reference to a singleton style component. - /// - public static class MixedRealityServiceRegistry - { - /// - /// The service registry store where the key is the Type of the service interface and the value is - /// a pair in which they key is the service instance and the value is the registrar instance. - /// - private static Dictionary>> registry = - new Dictionary>>(); - - /// - /// A cache used to power - /// - /// - /// Lists are sorted in ascending priority order (i.e. services with a smaller priority - /// value are first in the list). - /// - private static Dictionary> allServicesByRegistrar = - new Dictionary>(); - - /// - /// A cache used to power - /// - /// - /// The list is sorted in ascending priority order (i.e. services with a smaller priority - /// value are first in the list). - /// - private static List allServices = new List(); - - /// - /// A comparer used to sort the allServices and allServiceByRegistrar lists in-place. - /// - private static readonly Comparer ascendingOrderComparer = - Comparer.Create((i1, i2) => i1.Priority.CompareTo(i2.Priority)); - - /// - /// Static constructor. - /// - static MixedRealityServiceRegistry() - { } - - /// - /// Adds an instance to the registry. - /// - /// The interface type of the service being added. - /// Instance of the service to add. - /// Instance of the registrar manages the service. - /// - /// True if the service was successfully added, false otherwise. - /// - public static bool AddService(T serviceInstance, IMixedRealityServiceRegistrar registrar) where T : IMixedRealityService - { - if (serviceInstance == null) - { - // Adding a null service instance is not supported. - return false; - } - - if (serviceInstance is IMixedRealityDataProvider) - { - // Data providers are generally not used by application code. Services that intend for clients to - // directly communicate with their data providers will expose a GetDataProvider or similarly named - // method. - return false; - } - - Type interfaceType = typeof(T); - T existingService; - - if (TryGetService(out existingService, serviceInstance.Name)) - { - return false; - } - - // Ensure we have a place to put our newly registered service. - if (!registry.ContainsKey(interfaceType)) - { - registry.Add(interfaceType, new List>()); - } - - List> services = registry[interfaceType]; - services.Add(new KeyValuePair(serviceInstance, registrar)); - AddServiceToCache(serviceInstance, registrar); - return true; - } - - /// - /// Removes an instance from the registry. - /// - /// The interface type of the service being removed. - /// Instance of the service to remove. - /// Instance of the registrar manages the service. - /// - /// True if the service was successfully removed, false otherwise. - /// - public static bool RemoveService(T serviceInstance, IMixedRealityServiceRegistrar registrar) where T : IMixedRealityService - { - return RemoveServiceInternal(typeof(T), serviceInstance, registrar); - } - - /// - /// Removes an instance from the registry. - /// - /// The interface type of the service being removed. - /// Instance of the service to remove. - /// - /// True if the service was successfully removed, false otherwise. - /// - public static bool RemoveService(T serviceInstance) where T : IMixedRealityService - { - T tempService; - IMixedRealityServiceRegistrar registrar; - - if (!TryGetService(out tempService, out registrar)) - { - return false; - } - - if (!object.ReferenceEquals(serviceInstance, tempService)) - { - return false; - } - - return RemoveServiceInternal(typeof(T), serviceInstance, registrar); - } - - /// - /// Removes an instance from the registry. - /// - /// The interface type of the service being removed. - /// The friendly name of the service to remove. - /// - /// True if the service was successfully removed, false otherwise. - /// - public static bool RemoveService(string name) where T : IMixedRealityService - { - T tempService; - IMixedRealityServiceRegistrar registrar; - - if (!TryGetService(out tempService, out registrar, name)) - { - return false; - } - - return RemoveServiceInternal(typeof(T), tempService, registrar); - } - - /// - /// Removes an instance from the registry. - /// - /// The interface type of the service being removed. - /// Instance of the service to remove. - /// Instance of the registrar manages the service. - /// - /// True if the service was successfully removed, false otherwise. - /// - private static bool RemoveServiceInternal( - Type interfaceType, - IMixedRealityService serviceInstance, - IMixedRealityServiceRegistrar registrar) - { - if (!registry.ContainsKey(interfaceType)) { return false; } - - List> services = registry[interfaceType]; - - bool removed = services.Remove(new KeyValuePair(serviceInstance, registrar)); - - if (services.Count == 0) - { - // If the last service was removed, the key can be removed. - registry.Remove(interfaceType); - } - - RemoveServiceFromCache(serviceInstance, registrar); - - return removed; - } - - /// - /// Adds the given service/registrar combination to the GetAllServices cache - /// - private static void AddServiceToCache( - IMixedRealityService service, - IMixedRealityServiceRegistrar registrar) - { - // Services are stored in ascending priority order - adding them to the - // list requires that we re-enforce that order. This must happen - // in both the allServices and allServicesByRegistrar data structures. - allServices.Add(service); - allServices.Sort(ascendingOrderComparer); - - if (!allServicesByRegistrar.ContainsKey(registrar)) - { - allServicesByRegistrar.Add(registrar, new List()); - } - - allServicesByRegistrar[registrar].Add(service); - allServicesByRegistrar[registrar].Sort(ascendingOrderComparer); - } - - /// - /// Removes the given service/registrar combination from the GetAllServices cache - /// - private static void RemoveServiceFromCache( - IMixedRealityService service, - IMixedRealityServiceRegistrar registrar) - { - // Removing from the sorted list keeps sort order, so re-sorting isn't necessary - allServices.Remove(service); - if (allServicesByRegistrar.ContainsKey(registrar)) - { - allServicesByRegistrar[registrar].Remove(service); - if (allServicesByRegistrar[registrar].Count == 0) - { - allServicesByRegistrar.Remove(registrar); - } - } - } - - /// - /// Gets the first instance of the requested service from the registry that matches the given query. - /// - /// The interface type of the service being requested. - /// Output parameter to receive the requested service instance. - /// Optional name of the service. - /// - /// True if the requested service is being returned, false otherwise. - /// - public static bool TryGetService( - out T serviceInstance, - string name = null) where T : IMixedRealityService - { - return TryGetService( - out serviceInstance, - out _, // The registrar out param is not used, it can be discarded. - name); - } - - /// - /// Gets the first instance of the requested service from the registry that matches the given query. - /// - /// The interface type of the service being requested. - /// Output parameter to receive the requested service instance. - /// Output parameter to receive the registrar that loaded the service instance. - /// Optional name of the service. - /// - /// True if the requested service is being returned, false otherwise. - /// - public static bool TryGetService( - out T serviceInstance, - out IMixedRealityServiceRegistrar registrar, - string name = null) where T : IMixedRealityService - { - Type interfaceType = typeof(T); - - IMixedRealityService tempService; - if (TryGetServiceInternal(interfaceType, out tempService, out registrar, name)) - { - Debug.Assert(tempService is T, "The service in the registry does not match the expected type."); - serviceInstance = (T)tempService; - return true; - } - - serviceInstance = default(T); - registrar = null; - return false; - } - - /// - /// Gets the first instance of the requested service from the registry that matches the given query. - /// - /// The interface type of the service being requested. - /// Output parameter to receive the requested service instance. - /// Output parameter to receive the registrar that loaded the service instance. - /// Optional name of the service. - /// - /// True if the requested service is being returned, false otherwise. - /// - public static bool TryGetService(Type interfaceType, - out IMixedRealityService serviceInstance, - out IMixedRealityServiceRegistrar registrar, - string name = null) - { - if (!typeof(IMixedRealityService).IsAssignableFrom(interfaceType)) - { - Debug.LogWarning($"Cannot find type {interfaceType.Name} since it does not extend IMixedRealityService"); - serviceInstance = null; - registrar = null; - return false; - } - - return TryGetServiceInternal(interfaceType, out serviceInstance, out registrar, name); - } - - private static readonly ProfilerMarker TryGetServiceInternalPerfMarker = new ProfilerMarker("[MRTK] MixedRealityServiceRegistry.TryGetServiceInternal"); - - private static bool TryGetServiceInternal(Type interfaceType, - out IMixedRealityService serviceInstance, - out IMixedRealityServiceRegistrar registrar, - string name = null) - { - using (TryGetServiceInternalPerfMarker.Auto()) - { - // Assume failed and return null unless proven otherwise - serviceInstance = null; - registrar = null; - - // If there is an entry for the interface key provided, search that small list first - if (registry.ContainsKey(interfaceType)) - { - if (FindEntry(registry[interfaceType], interfaceType, name, out serviceInstance, out registrar)) - { - return true; - } - } - - // Either there is no entry for the interface type, or it was not placed in that list. - // Services can have multiple supported interfaces thus they may match the requested query but be placed in a different registry bin - // Thus, search all bins until a match is found - foreach (var list in registry.Values) - { - if (FindEntry(list, interfaceType, name, out serviceInstance, out registrar)) - { - return true; - } - } - - return false; - } - } - - private static readonly ProfilerMarker FindEntryPerfMarker = new ProfilerMarker("[MRTK] MixedRealityServiceRegistry.FindEntry"); - - /// - /// Helper method to search list of IMixedRealityService/IMixedRealityServiceRegistrar pairs to find first service that matches name and interface type query - /// - /// list of IMixedRealityService/IMixedRealityServiceRegistrar pairs to search - /// type of interface to check - /// name of service to check. Wildcard if null or empty - /// reference to IMixedRealityService matching query, null otherwise - /// reference to IMixedRealityServiceRegistrar matching query, null otherwise - /// true if found first entry to match query, false otherwise - private static bool FindEntry(List> serviceList, - Type interfaceType, - string name, - out IMixedRealityService serviceInstance, - out IMixedRealityServiceRegistrar registrar) - { - using (FindEntryPerfMarker.Auto()) - { - // Assume failed and return null unless proven otherwise - serviceInstance = null; - registrar = null; - - for (int i = 0; i < serviceList.Count; ++i) - { - var svc = serviceList[i].Key; - if ((string.IsNullOrEmpty(name) || svc.Name == name) && interfaceType.IsAssignableFrom(svc.GetType())) - { - serviceInstance = svc; - registrar = serviceList[i].Value; - - return true; - } - } - - return false; - } - } - - /// - /// Clears the registry cache of all services - /// - public static void ClearAllServices() - { - if (registry != null) - { - registry.Clear(); - allServices.Clear(); - allServicesByRegistrar.Clear(); - } - } - - /// - /// Returns readonly list of all services registered - /// - /// - /// The list is sorted in ascending priority order. - /// - public static IReadOnlyList GetAllServices() - { - return allServices; - } - - /// - /// Returns readonly list of all services registered for given registrar - /// - /// Registrar object to filter services by - /// - /// The list is sorted in ascending priority order. - /// - /// Readonly list of all services registered for given registrar, all services if parameter null. - /// If given a registrar that the registry is not aware of, returns null. - /// - public static IReadOnlyCollection GetAllServices(IMixedRealityServiceRegistrar registrar) - { - if (registrar == null) - { - return GetAllServices(); - } - if (allServicesByRegistrar.TryGetValue(registrar, out List services)) - { - return services; - } - return null; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs.meta deleted file mode 100644 index f1bd4d3fb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/MixedRealityServiceRegistry.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 152d000245e4f3a4fa849c565ecd8a89 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs deleted file mode 100644 index 4eb76682e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Text; -using System.Threading.Tasks; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Utility for generating and saving OBJ files from GameObjects and their Meshes - /// - public static class OBJWriterUtility - { - /// - /// Export mesh data of provided GameObject, and children if enabled, to file provided in OBJ format - /// - /// - /// Traversal of GameObject mesh data is done via Coroutine on main Unity thread due to limitations by Unity. - /// If a file does not exist at given file path, a new one is automatically created - /// If applicable, children Mesh data will be bundled into same OBJ file. - /// - public static async Task ExportOBJAsync(GameObject root, string filePath, bool includeChildren = true) - { - if (string.IsNullOrEmpty(filePath)) - { - throw new Exception("Invalid file path"); - } - - Debug.Log($"Exporting GameObject {root.name} to {filePath} OBJ file"); - - // Await coroutine that must execute on Unity's main thread - string getObjData = await CreateOBJFileContentAsync(root, includeChildren); - - using (FileStream fs = new FileStream(filePath, FileMode.Create)) - { - using (StreamWriter sw = new StreamWriter(fs)) - { - await sw.WriteAsync(getObjData); - } - } - } - - /// - /// Coroutine async method that generates string in OBJ file format of provided GameObject's Mesh, and possibly children. - /// - /// GameObject to target for pulling MeshFilter data - /// Include Mesh data of children GameObjects as sub-meshes in output - /// string of all mesh data (no materials) in OBJ file format - public static IEnumerator CreateOBJFileContentAsync(GameObject target, bool includeChildren) - { - StringBuilder objBuffer = new StringBuilder(); - - objBuffer.Append($"# {target.name}").AppendNewLine(); - var dt = DateTime.Now; - objBuffer.Append($"# {dt.ToString(CultureInfo.InvariantCulture)}").AppendNewLine().AppendNewLine(); - - Stack processStack = new Stack(); - processStack.Push(target.transform); - - // If including sub-meshes, need to track vertex indices in relation to entire file - int startVertexIndex = 0; - - // DFS processing routine to add Mesh data to OBJ - while (processStack.Count != 0) - { - var current = processStack.Pop(); - - MeshFilter meshFilter = current.GetComponent(); - if (meshFilter != null) - { - CreateOBJDataForMesh(meshFilter, objBuffer, ref startVertexIndex); - } - - if (includeChildren) - { - for (int i = 0; i < current.childCount; i++) - { - processStack.Push(current.GetChild(i)); - } - } - - yield return null; - } - - yield return objBuffer.ToString(); - } - - private static void CreateOBJDataForMesh(MeshFilter meshFilter, StringBuilder buffer, ref int startVertexIndex) - { - Mesh mesh = meshFilter.sharedMesh; - if (!mesh) - { - return; - } - - var transform = meshFilter.transform; - - buffer.Append("g ").Append(transform.name).AppendNewLine(); - - foreach (Vector3 vertex in mesh.vertices) - { - Vector3 v = transform.TransformPoint(vertex); - buffer.Append($"v {v.x} {v.y} {v.z}\n"); - } - buffer.AppendNewLine(); - - foreach (Vector3 normal in mesh.normals) - { - Vector3 vn = transform.TransformDirection(normal); - buffer.Append($"vn {vn.x} {vn.y} {vn.z}\n"); - } - - buffer.AppendNewLine(); - foreach (Vector3 uv in mesh.uv) - { - buffer.Append($"vt {uv.x} {uv.y}\n"); - } - - for (int idx = 0; idx < mesh.subMeshCount; idx++) - { - buffer.AppendNewLine(); - - int[] triangles = mesh.GetTriangles(idx); - for (int i = 0; i < triangles.Length; i += 3) - { - buffer.Append(string.Format("f {0}/{0}/{0} {1}/{1}/{1} {2}/{2}/{2}\n", - triangles[i] + 1 + startVertexIndex, triangles[i + 1] + 1 + startVertexIndex, triangles[i + 2] + 1 + startVertexIndex)); - } - } - - startVertexIndex += mesh.vertexCount; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs.meta deleted file mode 100644 index 1fb8a5182..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/OBJWriterUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d640d6b0dcd40df47ba1b27fa58af59a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics.meta deleted file mode 100644 index 00932667b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d8dd16054b0848f9b8807cf604281b0b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs deleted file mode 100644 index 87cbae5d0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// A base class for a stabilizer that takes an input position and rotation, - /// and performs operations on them to stabilize, or smooth deltas, in the data. - /// - public abstract class BaseRayStabilizer : IBaseRayStabilizer - { - /// - /// The stabilized position. - /// - public abstract Vector3 StablePosition { get; } - - /// - /// The stabilized rotation. - /// - public abstract Quaternion StableRotation { get; } - - /// - /// A ray representing the stable position and rotation - /// - public abstract Ray StableRay { get; } - - /// - /// Call this each frame to smooth out changes to a position and rotation, if supported. - /// - /// Input position to smooth. - /// Input rotation to smooth. - public virtual void UpdateStability(Vector3 position, Quaternion rotation) - { - UpdateStability(position, (rotation * Vector3.forward)); - } - - /// - /// Call this each frame to smooth out changes to a position and direction, if supported. - /// - /// Input position to smooth. - /// Input direction to smooth. - public abstract void UpdateStability(Vector3 position, Vector3 direction); - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs.meta deleted file mode 100644 index 828787ecf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/BaseRayStabilizer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c0e4c3fae37c49c79d96ec544014a18f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters.meta deleted file mode 100644 index c3741502a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: bea89912bc574b7aa06904c9817b311e -folderAsset: yes -timeCreated: 1509729124 -licenseType: Free -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs deleted file mode 100644 index a1c51959a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - public abstract class Distorter : MonoBehaviour, IComparable - { - [Range(0, 10)] - [SerializeField] - private int distortOrder = 0; - - [Range(0, 1)] - [SerializeField] - private float distortStrength = 1f; - - public bool DistortionEnabled { get; private set; } - - public float DistortStrength - { - get { return distortStrength; } - set { distortStrength = Mathf.Clamp01(value); } - } - - public int DistortOrder - { - get { return distortOrder; } - set - { - distortOrder = Mathf.Clamp(value, 0, 10); - } - } - - public int CompareTo(Distorter other) - { - return other == null ? 0 : DistortOrder.CompareTo(other.DistortOrder); - } - - /// - /// Distorts a world-space point - /// Automatically applies DistortStrength and ensures that strength never exceeds 1 - /// - public Vector3 DistortPoint(Vector3 point, float strength = 1f) - { - strength = Mathf.Clamp01(strength * DistortStrength); - - return strength <= 0 ? point : DistortPointInternal(point, strength); - } - - /// - /// Distorts a world-space scale - /// Automatically applies DistortStrength and ensures that strength never exceeds 1 - /// - public Vector3 DistortScale(Vector3 scale, float strength = 1f) - { - if (!isActiveAndEnabled) - { - return scale; - } - - strength = Mathf.Clamp01(strength * DistortStrength); - - return DistortScaleInternal(scale, strength); - } - - /// - /// Internal function where position distortion is done - /// - protected abstract Vector3 DistortPointInternal(Vector3 point, float strength); - - /// - /// Internal function where scale distortion is done - /// - protected abstract Vector3 DistortScaleInternal(Vector3 point, float strength); - - #region MonoBehaviour Implementation - - protected virtual void OnEnable() - { - DistortionEnabled = true; - } - - protected virtual void OnDisable() - { - DistortionEnabled = false; - } - - #endregion MonoBehaviour Implementation - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs.meta deleted file mode 100644 index 0f454107e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/Distorter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: deb9802fee2a40978457e3369fe0fa04 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs deleted file mode 100644 index 330dd8192..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// A Distorter that distorts points based on their distance and direction from the center of the - /// bulge point. - /// - /// - /// The characteristics of the distortion are also heavily controlled by the BulgeFalloff - /// property, which should contain key frames that cover the [0, 1] time range. - /// - [AddComponentMenu("Scripts/MRTK/Core/DistorterBulge")] - public class DistorterBulge : Distorter - { - [SerializeField] - private Vector3 bulgeLocalCenter = Vector3.zero; - - public Vector3 BulgeLocalCenter - { - get { return bulgeLocalCenter; } - set { bulgeLocalCenter = value; } - } - - public Vector3 BulgeWorldCenter - { - get - { - return transform.TransformPoint(bulgeLocalCenter); - } - set - { - bulgeLocalCenter = transform.InverseTransformPoint(value); - } - } - - [SerializeField] - private AnimationCurve bulgeFalloff = new AnimationCurve(); - - public AnimationCurve BulgeFalloff - { - get { return bulgeFalloff; } - set { bulgeFalloff = value; } - } - - [SerializeField] - private float bulgeRadius = 1f; - - public float BulgeRadius - { - get { return bulgeRadius; } - set { bulgeRadius = value < 0f ? 0f : value; } - } - - [SerializeField] - private float scaleDistort = 2f; - - public float ScaleDistort - { - get { return scaleDistort; } - set { scaleDistort = value; } - } - - [SerializeField] - private float bulgeStrength = 1f; - - public float BulgeStrength - { - get { return bulgeStrength; } - set { bulgeStrength = value; } - } - - protected override Vector3 DistortPointInternal(Vector3 point, float strength) - { - float distanceToCenter = Vector3.Distance(point, BulgeWorldCenter); - - if (distanceToCenter < bulgeRadius) - { - float distortion = (1f - (bulgeFalloff.Evaluate(distanceToCenter / bulgeRadius))) * bulgeStrength; - Vector3 direction = (point - BulgeWorldCenter).normalized; - point = point + (direction * distortion * bulgeStrength); - } - - return point; - } - - /// - protected override Vector3 DistortScaleInternal(Vector3 point, float strength) - { - float distanceToCenter = Vector3.Distance(point, BulgeWorldCenter); - - if (distanceToCenter < bulgeRadius) - { - float distortion = (1f - (bulgeFalloff.Evaluate(distanceToCenter / bulgeRadius))) * bulgeStrength; - return Vector3.one + (Vector3.one * distortion * scaleDistort); - } - - return Vector3.one; - } - - private void OnDrawGizmos() - { - Vector3 bulgePoint = transform.TransformPoint(bulgeLocalCenter); - Color gColor = Color.red; - gColor.a = 0.5f; - Gizmos.color = gColor; - Gizmos.DrawWireSphere(bulgePoint, bulgeRadius); - const int steps = 8; - - for (int i = 0; i < steps; i++) - { - float normalizedStep = (1f / steps) * i; - gColor.a = (1f - bulgeFalloff.Evaluate(normalizedStep)) * 0.5f; - Gizmos.color = gColor; - Gizmos.DrawSphere(bulgePoint, bulgeRadius * bulgeFalloff.Evaluate(normalizedStep)); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs.meta deleted file mode 100644 index dcc334482..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterBulge.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 12e4df7fa38a448bbebf7dec9d76235d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs deleted file mode 100644 index 4bb1c58b0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// A Distorter that distorts points based on their distance and direction to the world - /// center of gravity as defined by WorldCenterOfGravity. - /// - [AddComponentMenu("Scripts/MRTK/Core/DistorterGravity")] - public class DistorterGravity : Distorter - { - [SerializeField] - private Vector3 localCenterOfGravity; - - public Vector3 LocalCenterOfGravity - { - get { return localCenterOfGravity; } - set { localCenterOfGravity = value; } - } - - public Vector3 WorldCenterOfGravity - { - get - { - return transform.TransformPoint(localCenterOfGravity); - } - set - { - localCenterOfGravity = transform.InverseTransformPoint(value); - } - } - - [SerializeField] - private Vector3 axisStrength = Vector3.one; - - public Vector3 AxisStrength - { - get { return axisStrength; } - set { axisStrength = value; } - } - - [Range(0f, 10f)] - [SerializeField] - private float radius = 0.5f; - - public float Radius - { - get { return radius; } - set - { - radius = Mathf.Clamp(value, 0f, 10f); - } - } - - [SerializeField] - private AnimationCurve gravityStrength = AnimationCurve.EaseInOut(0, 0, 1, 1); - - public AnimationCurve GravityStrength - { - get { return gravityStrength; } - set { gravityStrength = value; } - } - - /// - protected override Vector3 DistortPointInternal(Vector3 point, float strength) - { - Vector3 target = WorldCenterOfGravity; - - float normalizedDistance = 1f - Mathf.Clamp01(Vector3.Distance(point, target) / radius); - - strength *= gravityStrength.Evaluate(normalizedDistance); - - point.x = Mathf.Lerp(point.x, target.x, Mathf.Clamp01(strength * axisStrength.x)); - point.y = Mathf.Lerp(point.y, target.y, Mathf.Clamp01(strength * axisStrength.y)); - point.z = Mathf.Lerp(point.z, target.z, Mathf.Clamp01(strength * axisStrength.z)); - - return point; - } - - /// - protected override Vector3 DistortScaleInternal(Vector3 point, float strength) - { - return point; - } - - public void OnDrawGizmos() - { - Gizmos.color = Color.cyan; - Gizmos.DrawSphere(WorldCenterOfGravity, 0.01f); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs.meta deleted file mode 100644 index f7803c4e2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterGravity.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 61e2b9c3b68642d6a51894a46aaece55 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs deleted file mode 100644 index c51fc7c04..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// A Distorter that randomly distorts points. - /// - [AddComponentMenu("Scripts/MRTK/Core/DistorterSimplex")] - public class DistorterSimplex : Distorter - { - private readonly FastSimplexNoise noise = new FastSimplexNoise(); - - [SerializeField] - private float scaleMultiplier = 2f; - - public float ScaleMultiplier - { - get { return scaleMultiplier; } - set { scaleMultiplier = value; } - } - - [SerializeField] - private float strengthMultiplier = 0.25f; - - public float StrengthMultiplier - { - get { return strengthMultiplier; } - set { strengthMultiplier = value; } - } - - [SerializeField] - private Vector3 axisStrength = Vector3.one; - - public Vector3 AxisStrength - { - get { return axisStrength; } - set { axisStrength = value; } - } - - [SerializeField] - private Vector3 axisSpeed = Vector3.one; - - public Vector3 AxisSpeed - { - get { return axisSpeed; } - set { axisSpeed = value; } - } - - [SerializeField] - private Vector3 axisOffset = Vector3.zero; - - public Vector3 AxisOffset - { - get { return axisOffset; } - set { axisOffset = value; } - } - - [SerializeField] - private float scaleDistort = 2f; - - public float ScaleDistort - { - get { return scaleDistort; } - set { scaleDistort = value; } - } - - [SerializeField] - private bool uniformScaleDistort = true; - - public bool UniformScaleDistort - { - get { return uniformScaleDistort; } - set { uniformScaleDistort = value; } - } - - protected override Vector3 DistortPointInternal(Vector3 point, float strength) - { - Vector3 scaledPoint = (point * scaleMultiplier) + axisOffset; - point.x += (float)((noise.Evaluate(scaledPoint.x, Time.unscaledTime * axisSpeed.x)) * axisStrength.x * strengthMultiplier * strength); - point.y += (float)((noise.Evaluate(scaledPoint.x + scaledPoint.y, Time.unscaledTime * axisSpeed.y)) * axisStrength.y * strengthMultiplier * strength); - point.z += (float)((noise.Evaluate(scaledPoint.x + scaledPoint.y + scaledPoint.z, Time.unscaledTime * axisSpeed.z)) * axisStrength.z * strengthMultiplier * strength); - return point; - } - - protected override Vector3 DistortScaleInternal(Vector3 point, float strength) - { - if (uniformScaleDistort) - { - var scale = (float)(noise.Evaluate(point.x, point.y, point.z, Time.unscaledTime)); - return Vector3.one + (Vector3.one * (scale * scaleDistort)); - } - - point = DistortPointInternal(point, strength); - return Vector3.Lerp(Vector3.one, Vector3.Scale(Vector3.one, Vector3.one + (point * scaleDistort)), strength); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs.meta deleted file mode 100644 index 75e150483..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSimplex.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e60291a5bfe545a99306d683e3092c60 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs deleted file mode 100644 index 97ba25041..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// A Distorter that distorts points based on their distance and direction from the - /// center of the sphere of size 2. - /// - [AddComponentMenu("Scripts/MRTK/Core/DistorterSphere")] - public class DistorterSphere : Distorter - { - public Vector3 SphereCenter - { - get - { - return transform.TransformPoint(sphereCenter); - } - set - { - sphereCenter = transform.InverseTransformPoint(value); - } - } - - [SerializeField] - private Vector3 sphereCenter; - - [SerializeField] - private float radius = 2f; - - /// - protected override Vector3 DistortPointInternal(Vector3 point, float strength) - { - Vector3 direction = (point - SphereCenter).normalized; - return Vector3.Lerp(point, SphereCenter + (direction * radius), strength); - } - - /// - protected override Vector3 DistortScaleInternal(Vector3 point, float strength) - { - return Vector3.one; - } - - private void OnDrawGizmos() - { - Gizmos.color = Color.red; - Gizmos.DrawWireSphere(SphereCenter, radius); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs.meta deleted file mode 100644 index cf906f0c9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterSphere.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fed987802b4a4dcfa95cb3fd7da507b6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs deleted file mode 100644 index 37281e8d8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - [AddComponentMenu("Scripts/MRTK/Core/DistorterWiggly")] - public class DistorterWiggly : Distorter - { - private const float MinScaleMultiplier = 0.05f; - private const float MaxScaleMultiplier = 1f; - private const float MinSpeedMultiplier = -25f; - private const float MaxSpeedMultiplier = 25f; - private const float MinStrengthMultiplier = 0.00001f; - private const float MaxStrengthMultiplier = 1f; - private const float GlobalScale = 0.1f; - - [SerializeField] - [Range(MinScaleMultiplier, MaxScaleMultiplier)] - private float scaleMultiplier = 0.1f; - - public float ScaleMultiplier - { - get { return scaleMultiplier; } - set - { - scaleMultiplier = Mathf.Clamp(value, MinScaleMultiplier, MinScaleMultiplier); - } - } - - [SerializeField] - [Range(MinSpeedMultiplier, MaxSpeedMultiplier)] - private float speedMultiplier = 3f; - - public float SpeedMultiplier - { - get { return speedMultiplier; } - set - { - speedMultiplier = Mathf.Clamp(value, MinSpeedMultiplier, MaxSpeedMultiplier); - } - } - - [SerializeField] - [Range(MinStrengthMultiplier, MaxStrengthMultiplier)] - private float strengthMultiplier = 0.01f; - - public float StrengthMultiplier - { - get { return strengthMultiplier; } - set - { - strengthMultiplier = Mathf.Clamp(value, MinStrengthMultiplier, MaxStrengthMultiplier); - } - } - - [SerializeField] - private Vector3 axisStrength = new Vector3(0.5f, 0.1f, 0.5f); - - public Vector3 AxisStrength - { - get { return axisStrength; } - set { axisStrength = value; } - } - - [SerializeField] - private Vector3 axisSpeed = new Vector3(0.2f, 0.5f, 0.7f); - - public Vector3 AxisSpeed - { - get { return axisSpeed; } - set { axisSpeed = value; } - } - - [SerializeField] - private Vector3 axisOffset = new Vector3(0.2f, 0.5f, 0.7f); - - public Vector3 AxisOffset - { - get { return axisOffset; } - set { axisOffset = value; } - } - - /// - protected override Vector3 DistortPointInternal(Vector3 point, float strength) - { - Vector3 wiggly = point; - float scale = scaleMultiplier * GlobalScale; - wiggly.x = Wiggle(axisSpeed.x * speedMultiplier, (wiggly.x + axisOffset.x) / scale, axisStrength.x * strengthMultiplier); - wiggly.y = Wiggle(axisSpeed.y * speedMultiplier, (wiggly.y + axisOffset.y) / scale, axisStrength.y * strengthMultiplier); - wiggly.z = Wiggle(axisSpeed.z * speedMultiplier, (wiggly.z + axisOffset.z) / scale, axisStrength.z * strengthMultiplier); - return point + (wiggly * strength); - } - - /// - protected override Vector3 DistortScaleInternal(Vector3 point, float strength) - { - return point; - } - - private float Wiggle(float speed, float offset, float strength) - { - return Mathf.Sin((Time.unscaledTime * speed) + offset) * strength; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs.meta deleted file mode 100644 index fb3b0f594..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Distorters/DistorterWiggly.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b7606e46a60643bf8cb5462f9e726af2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs deleted file mode 100644 index 469766619..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// GazeStabilizer iterates over samples of Raycast data and - /// helps stabilize the user's gaze for precision targeting. - /// - [Serializable] - public class GazeStabilizer : BaseRayStabilizer - { - /// - ///Number of samples that you want to iterate on. - /// - public int StoredStabilitySamples => storedStabilitySamples; - - [SerializeField] - [Range(40, 120)] - [Tooltip("Number of samples that you want to iterate on.")] - private int storedStabilitySamples = 60; - - /// - /// The stabilized position. - /// - public override Vector3 StablePosition => stablePosition; - private Vector3 stablePosition; - - /// - /// The stabilized rotation. - /// - public override Quaternion StableRotation => stableRotation; - private Quaternion stableRotation; - - /// - /// The stabilized position. - /// - public override Ray StableRay => stableRay; - private Ray stableRay; - - /// - /// Calculates standard deviation and averages for the gaze position. - /// - private readonly VectorRollingStatistics positionRollingStats = new VectorRollingStatistics(); - - /// - /// Calculates standard deviation and averages for the gaze direction. - /// - private readonly VectorRollingStatistics directionRollingStats = new VectorRollingStatistics(); - - /// - /// Tunable parameter. - /// If the standard deviation for the position is above this value, we reset and stop stabilizing. - /// - private const float PositionStandardDeviationReset = 0.2f; - - /// - /// Tunable parameter. - /// If the standard deviation for the direction is above this value, we reset and stop stabilizing. - /// - private const float DirectionStandardDeviationReset = 0.1f; - - /// - /// We must have at least this many samples with a standard deviation below the above constants to stabilize - /// - private const int MinimumSamplesRequiredToStabilize = 30; - - /// - /// When not stabilizing this is the 'lerp' applied to the position and direction of the gaze to smooth it over time. - /// - private const float UnstabilizedLerpFactor = 0.3f; - - /// - /// When stabilizing we will use the standard deviation of the position and direction to create the lerp value. - /// By default this value will be low and the cursor will be too sluggish, so we 'boost' it by this value. - /// - private const float StabalizedLerpBoost = 10.0f; - - public GazeStabilizer() - { - directionRollingStats.Init(storedStabilitySamples); - positionRollingStats.Init(storedStabilitySamples); - } - - /// - /// Updates the StablePosition and StableRotation based on GazeSample values. - /// Call this method with RaycastHit parameters to get stable values. - /// - /// Position value from a RaycastHit point. - /// Direction value from a RaycastHit rotation. - public override void UpdateStability(Vector3 gazePosition, Vector3 gazeDirection) - { - positionRollingStats.AddSample(gazePosition); - directionRollingStats.AddSample(gazeDirection); - - float lerpPower = UnstabilizedLerpFactor; - - if (positionRollingStats.ActualSampleCount > MinimumSamplesRequiredToStabilize && // we have enough samples and... - (positionRollingStats.CurrentStandardDeviation > PositionStandardDeviationReset || // the standard deviation of positions is high or... - directionRollingStats.CurrentStandardDeviation > DirectionStandardDeviationReset)) // the standard deviation of directions is high - { - // We've detected that the user's gaze is no longer fixed, so stop stabilizing so that gaze is responsive. - // Debug.Log($"Reset {positionRollingStats.CurrentStandardDeviation} {positionRollingStats.StandardDeviationsAwayOfLatestSample} {directionRollingStats.CurrentStandardDeviation} {directionRollingStats.StandardDeviationsAwayOfLatestSample}"); - positionRollingStats.Reset(); - directionRollingStats.Reset(); - } - else if (positionRollingStats.ActualSampleCount > MinimumSamplesRequiredToStabilize) - { - // We've detected that the user's gaze is fairly fixed, so start stabilizing. The more fixed the gaze the less the cursor will move. - lerpPower = StabalizedLerpBoost * (positionRollingStats.CurrentStandardDeviation + directionRollingStats.CurrentStandardDeviation); - } - - stablePosition = Vector3.Lerp(stablePosition, gazePosition, lerpPower); - stableRotation = Quaternion.LookRotation(Vector3.Lerp(stableRotation * Vector3.forward, gazeDirection, lerpPower)); - stableRay = new Ray(stablePosition, stableRotation * Vector3.forward); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs.meta deleted file mode 100644 index 4b7e4ce5a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/GazeStabilizer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fc90d09b0ada44808fa6e4b0104ad8ec -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs deleted file mode 100644 index 379622200..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// Static class containing interpolation-related utility functions. - /// - public static class InterpolationUtilities - { - #region Exponential Decay - - public static float ExpDecay(float from, float to, float hLife, float dTime) - { - return Mathf.Lerp(from, to, ExpCoefficient(hLife, dTime)); - } - - public static Vector2 ExpDecay(Vector2 from, Vector2 to, float hLife, float dTime) - { - return Vector2.Lerp(from, to, ExpCoefficient(hLife, dTime)); - } - - public static Vector3 ExpDecay(Vector3 from, Vector3 to, float hLife, float dTime) - { - return Vector3.Lerp(from, to, ExpCoefficient(hLife, dTime)); - } - - public static Quaternion ExpDecay(Quaternion from, Quaternion to, float hLife, float dTime) - { - return Quaternion.Slerp(from, to, ExpCoefficient(hLife, dTime)); - } - - public static Color ExpDecay(Color from, Color to, float hLife, float dTime) - { - return Color.Lerp(from, to, ExpCoefficient(hLife, dTime)); - } - - - /// - /// Computes an exponential coefficient following the given formula: 1 - .5^(dTime/hLife) - /// - public static float ExpCoefficient(float hLife, float dTime) - { - if (hLife == 0) - { - return 1; - } - - return 1.0f - Mathf.Pow(0.5f, dTime / hLife); - } - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs.meta deleted file mode 100644 index dcd728b28..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/InterpolationUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d2528cd8f0eb4d0e83245bbb4f8a34e1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs deleted file mode 100644 index 53d1d285b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs +++ /dev/null @@ -1,455 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// A MonoBehaviour that interpolates a transform's position, rotation or scale. - /// - [AddComponentMenu("Scripts/MRTK/Core/Interpolator")] - public class Interpolator : MonoBehaviour - { - /// - /// A very small number that is used in determining if the Interpolator needs to run at all. - /// - private const float Tolerance = 0.0000001f; - - /// - /// The event fired when an Interpolation is started. - /// - public event Action InterpolationStarted; - - /// - /// The event fired when an Interpolation is completed. - /// - public event Action InterpolationDone; - - [SerializeField] - [Tooltip("When interpolating, use unscaled time. This is useful for games that have a pause mechanism or otherwise adjust the game timescale.")] - private bool useUnscaledTime = true; - - [SerializeField] - [Tooltip("The movement speed in meters per second.")] - private float positionPerSecond = 30.0f; - - [SerializeField] - [Tooltip("The rotation speed, in degrees per second.")] - private float rotationDegreesPerSecond = 720.0f; - - [SerializeField] - [Tooltip("Adjusts rotation speed based on angular distance.")] - private float rotationSpeedScaler = 0.0f; - - [SerializeField] - [Tooltip("The amount to scale per second.")] - private float scalePerSecond = 5.0f; - - /// - /// Lerp the estimated targets towards the object each update, slowing and smoothing movement. - /// - public bool SmoothLerpToTarget { get; set; } = false; - public float SmoothPositionLerpRatio { get; set; } = 0.5f; - public float SmoothRotationLerpRatio { get; set; } = 0.5f; - public float SmoothScaleLerpRatio { get; set; } = 0.5f; - - /// - /// If animating position, specifies the target position as specified - /// by SetTargetPosition. Otherwise returns the current position of - /// the transform. - /// - public Vector3 TargetPosition => AnimatingPosition ? targetPosition : transform.position; - private Vector3 targetPosition; - - /// - /// If animating rotation, specifies the target rotation as specified - /// by SetTargetRotation. Otherwise returns the current rotation of - /// the transform. - /// - public Quaternion TargetRotation => AnimatingRotation ? targetRotation : transform.rotation; - private Quaternion targetRotation; - - /// - /// If animating local rotation, specifies the target local rotation as - /// specified by SetTargetLocalRotation. Otherwise returns the current - /// local rotation of the transform. - /// - public Quaternion TargetLocalRotation => AnimatingLocalRotation ? targetLocalRotation : transform.localRotation; - private Quaternion targetLocalRotation; - - /// - /// If animating local scale, specifies the target local scale as - /// specified by SetTargetLocalScale. Otherwise returns the current - /// local scale of the transform. - /// - public Vector3 TargetLocalScale => AnimatingLocalScale ? targetLocalScale : transform.localScale; - private Vector3 targetLocalScale; - - /// - /// True if the transform's position is animating; false otherwise. - /// - public bool AnimatingPosition { get; private set; } - - /// - /// True if the transform's rotation is animating; false otherwise. - /// - public bool AnimatingRotation { get; private set; } - - /// - /// True if the transform's local rotation is animating; false otherwise. - /// - public bool AnimatingLocalRotation { get; private set; } - - /// - /// True if the transform's scale is animating; false otherwise. - /// - public bool AnimatingLocalScale { get; private set; } - - /// - /// The velocity of a transform whose position is being interpolated. - /// - public Vector3 PositionVelocity { get; private set; } - - private Vector3 oldPosition = Vector3.zero; - - /// - /// True if position, rotation or scale are animating; false otherwise. - /// - public bool Running => AnimatingPosition || AnimatingRotation || AnimatingLocalRotation || AnimatingLocalScale; - - #region MonoBehaviour Implementation - - private void Awake() - { - targetPosition = transform.position; - targetRotation = transform.rotation; - targetLocalRotation = transform.localRotation; - targetLocalScale = transform.localScale; - - enabled = false; - } - - private void Update() - { - float deltaTime = useUnscaledTime - ? Time.unscaledDeltaTime - : Time.deltaTime; - - bool interpOccuredThisFrame = false; - - if (AnimatingPosition) - { - Vector3 lerpTargetPosition = targetPosition; - if (SmoothLerpToTarget) - { - lerpTargetPosition = Vector3.Lerp(transform.position, lerpTargetPosition, SmoothPositionLerpRatio); - } - - Vector3 newPosition = NonLinearInterpolateTo(transform.position, lerpTargetPosition, deltaTime, positionPerSecond); - if ((targetPosition - newPosition).sqrMagnitude <= Tolerance) - { - // Snap to final position - newPosition = targetPosition; - AnimatingPosition = false; - } - else - { - interpOccuredThisFrame = true; - } - - transform.position = newPosition; - - // Calculate interpolatedVelocity and store position for next frame - PositionVelocity = oldPosition - newPosition; - oldPosition = newPosition; - } - - // Determine how far we need to rotate - if (AnimatingRotation) - { - Quaternion lerpTargetRotation = targetRotation; - if (SmoothLerpToTarget) - { - lerpTargetRotation = Quaternion.Lerp(transform.rotation, lerpTargetRotation, SmoothRotationLerpRatio); - } - - float angleDiff = Quaternion.Angle(transform.rotation, lerpTargetRotation); - float speedScale = 1.0f + (Mathf.Pow(angleDiff, rotationSpeedScaler) / 180.0f); - float ratio = Mathf.Clamp01((speedScale * rotationDegreesPerSecond * deltaTime) / angleDiff); - - if (angleDiff < Mathf.Epsilon) - { - AnimatingRotation = false; - transform.rotation = targetRotation; - } - else - { - // Only lerp rotation here, as ratio is NaN if angleDiff is 0.0f - transform.rotation = Quaternion.Slerp(transform.rotation, lerpTargetRotation, ratio); - interpOccuredThisFrame = true; - } - } - - // Determine how far we need to rotate - if (AnimatingLocalRotation) - { - Quaternion lerpTargetLocalRotation = targetLocalRotation; - if (SmoothLerpToTarget) - { - lerpTargetLocalRotation = Quaternion.Lerp(transform.localRotation, lerpTargetLocalRotation, SmoothRotationLerpRatio); - } - - float angleDiff = Quaternion.Angle(transform.localRotation, lerpTargetLocalRotation); - float speedScale = 1.0f + (Mathf.Pow(angleDiff, rotationSpeedScaler) / 180.0f); - float ratio = Mathf.Clamp01((speedScale * rotationDegreesPerSecond * deltaTime) / angleDiff); - - if (angleDiff < Mathf.Epsilon) - { - AnimatingLocalRotation = false; - transform.localRotation = targetLocalRotation; - } - else - { - // Only lerp rotation here, as ratio is NaN if angleDiff is 0.0f - transform.localRotation = Quaternion.Slerp(transform.localRotation, lerpTargetLocalRotation, ratio); - interpOccuredThisFrame = true; - } - } - - if (AnimatingLocalScale) - { - Vector3 lerpTargetLocalScale = targetLocalScale; - if (SmoothLerpToTarget) - { - lerpTargetLocalScale = Vector3.Lerp(transform.localScale, lerpTargetLocalScale, SmoothScaleLerpRatio); - } - - Vector3 newScale = NonLinearInterpolateTo(transform.localScale, lerpTargetLocalScale, deltaTime, scalePerSecond); - if ((targetLocalScale - newScale).sqrMagnitude <= Tolerance) - { - // Snap to final scale - newScale = targetLocalScale; - AnimatingLocalScale = false; - } - else - { - interpOccuredThisFrame = true; - } - - transform.localScale = newScale; - } - - // If all interpolations have completed, stop updating - if (!interpOccuredThisFrame) - { - InterpolationDone?.Invoke(); - enabled = false; - } - } - - /// - /// Stops the transform in place and terminates any animations. - /// - /// Reset() is usually reserved as a MonoBehaviour API call in editor, but is used in this case as a convenience method. - public void Reset() - { - targetPosition = transform.position; - targetRotation = transform.rotation; - targetLocalRotation = transform.localRotation; - targetLocalScale = transform.localScale; - - AnimatingPosition = false; - AnimatingRotation = false; - AnimatingLocalRotation = false; - AnimatingLocalScale = false; - - enabled = false; - } - - #endregion MonoBehaviour Implementation - - /// - /// Sets the target position for the transform and if position wasn't - /// already animating, fires the InterpolationStarted event. - /// - /// The new target position to for the transform. - public void SetTargetPosition(Vector3 target) - { - bool wasRunning = Running; - - targetPosition = target; - - float magsq = (targetPosition - transform.position).sqrMagnitude; - if (magsq > Tolerance) - { - AnimatingPosition = true; - enabled = true; - - if (InterpolationStarted != null && !wasRunning) - { - InterpolationStarted(); - } - } - else - { - // Set immediately to prevent accumulation of error. - transform.position = target; - AnimatingPosition = false; - } - } - - /// - /// Sets the target rotation for the transform and if rotation wasn't - /// already animating, fires the InterpolationStarted event. - /// - /// The new target rotation for the transform. - public void SetTargetRotation(Quaternion target) - { - bool wasRunning = Running; - - targetRotation = target; - - if (Quaternion.Dot(transform.rotation, target) < 1.0f) - { - AnimatingRotation = true; - enabled = true; - - if (InterpolationStarted != null && !wasRunning) - { - InterpolationStarted(); - } - } - else - { - // Set immediately to prevent accumulation of error. - transform.rotation = target; - AnimatingRotation = false; - } - } - - /// - /// Sets the target local rotation for the transform and if rotation - /// wasn't already animating, fires the InterpolationStarted event. - /// - /// The new target local rotation for the transform. - public void SetTargetLocalRotation(Quaternion target) - { - bool wasRunning = Running; - - targetLocalRotation = target; - - if (Quaternion.Dot(transform.localRotation, target) < 1.0f) - { - AnimatingLocalRotation = true; - enabled = true; - - if (InterpolationStarted != null && !wasRunning) - { - InterpolationStarted(); - } - } - else - { - // Set immediately to prevent accumulation of error. - transform.localRotation = target; - AnimatingLocalRotation = false; - } - } - - /// - /// Sets the target local scale for the transform and if scale - /// wasn't already animating, fires the InterpolationStarted event. - /// - /// The new target local rotation for the transform. - public void SetTargetLocalScale(Vector3 target) - { - bool wasRunning = Running; - - targetLocalScale = target; - - float magsq = (targetLocalScale - transform.localScale).sqrMagnitude; - if (magsq > Mathf.Epsilon) - { - AnimatingLocalScale = true; - enabled = true; - - if (InterpolationStarted != null && !wasRunning) - { - InterpolationStarted(); - } - } - else - { - // set immediately to prevent accumulation of error - transform.localScale = target; - AnimatingLocalScale = false; - } - } - - /// - /// Interpolates smoothly to a target position. - /// - /// The starting position. - /// The destination position. - /// Caller-provided Time.deltaTime. - /// The speed to apply to the interpolation. - /// New interpolated position closer to target - public static Vector3 NonLinearInterpolateTo(Vector3 start, Vector3 target, float deltaTime, float speed) - { - // If no interpolation speed, jump to target value. - if (speed <= 0.0f) - { - return target; - } - - Vector3 distance = (target - start); - - // When close enough, jump to the target - if (distance.sqrMagnitude <= Mathf.Epsilon) - { - return target; - } - - // Apply the delta, then clamp so we don't overshoot the target - Vector3 deltaMove = distance * Mathf.Clamp(deltaTime * speed, 0.0f, 1.0f); - - return start + deltaMove; - } - - /// - /// Snaps to the final target and stops interpolating - /// - public void SnapToTarget() - { - if (enabled) - { - transform.position = TargetPosition; - transform.rotation = TargetRotation; - transform.localRotation = TargetLocalRotation; - transform.localScale = TargetLocalScale; - - AnimatingPosition = false; - AnimatingLocalScale = false; - AnimatingRotation = false; - AnimatingLocalRotation = false; - enabled = false; - - InterpolationDone?.Invoke(); - } - } - - /// - /// Stops the interpolation regardless if it has reached the target - /// - public void StopInterpolating() - { - if (enabled) - { - Reset(); - InterpolationDone?.Invoke(); - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs.meta deleted file mode 100644 index 23ecb1a77..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/Interpolator.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 49e053307151459ca2db5bdd9176a3b0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs deleted file mode 100644 index bbd00d29d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs +++ /dev/null @@ -1,264 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Unity.Profiling; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - public static class MixedRealityRaycaster - { - public static bool DebugEnabled = false; - - public const int MaxRaycastHitCount = 32; - public const int MaxSphereCastHitCount = 32; - private static readonly RaycastHit[] RaycastHits = new RaycastHit[MaxRaycastHitCount]; - private static readonly RaycastHit[] SphereCastHits = new RaycastHit[MaxSphereCastHitCount]; - - /// - /// Simple raycasts each physics . - /// - /// Whether or not the raycast hit something. - public static bool RaycastSimplePhysicsStep(RayStep step, LayerMask[] prioritizedLayerMasks, bool focusIndividualCompoundCollider, out RaycastHit physicsHit) - { - return RaycastSimplePhysicsStep(step, step.Length, prioritizedLayerMasks, focusIndividualCompoundCollider, out physicsHit); - } - - private static readonly ProfilerMarker RaycastSimplePhysicsStepPerfMarker = new ProfilerMarker("[MRTK] MixedRealityRaycaster.RaycastSimplePhysicsStep"); - - /// - /// Simple raycasts each physics within a specified maximum distance. - /// - /// Whether or not the raycast hit something. - public static bool RaycastSimplePhysicsStep(RayStep step, float maxDistance, LayerMask[] prioritizedLayerMasks, bool focusIndividualCompoundCollider, out RaycastHit physicsHit) - { - using (RaycastSimplePhysicsStepPerfMarker.Auto()) - { - Debug.Assert(maxDistance > 0, "Length must be longer than zero!"); - Debug.Assert(step.Direction != Vector3.zero, "Invalid step direction!"); - - bool result = false; - if (prioritizedLayerMasks.Length == 1) - { - // If there is only one priority, don't prioritize - result = UnityEngine.Physics.Raycast(step.Origin, step.Direction, out physicsHit, maxDistance, prioritizedLayerMasks[0]); - } - else - { - // Raycast across all layers and prioritize - int hitCount = UnityEngine.Physics.RaycastNonAlloc(step.Origin, step.Direction, RaycastHits, maxDistance, UnityEngine.Physics.AllLayers); - result = TryGetPrioritizedPhysicsHit(RaycastHits, hitCount, prioritizedLayerMasks, focusIndividualCompoundCollider, out physicsHit); - } - - return result; - } - } - - private static readonly ProfilerMarker RaycastBoxPhysicsStepPerfMarker = new ProfilerMarker("[MRTK] MixedRealityRaycaster.RaycastBoxPhysicsStep"); - - /// - /// Box raycasts each physics . - /// - /// Whether or not the raycast hit something. - public static bool RaycastBoxPhysicsStep(RayStep step, Vector3 extents, Vector3 targetPosition, Matrix4x4 matrix, float maxDistance, LayerMask[] prioritizedLayerMasks, int raysPerEdge, bool isOrthographic, bool focusIndividualCompoundCollider, out Vector3[] points, out Vector3[] normals, out bool[] hits) - { - using (RaycastBoxPhysicsStepPerfMarker.Auto()) - { - if (Application.isEditor && DebugEnabled) - { - Debug.DrawLine(step.Origin, step.Origin + step.Direction * 10.0f, Color.green); - } - - extents /= (raysPerEdge - 1); - - int halfRaysPerEdge = (int)((raysPerEdge - 1) * 0.5f); - int numRays = raysPerEdge * raysPerEdge; - bool hitSomething = false; - - points = new Vector3[numRays]; - normals = new Vector3[numRays]; - hits = new bool[numRays]; - - int index = 0; - - for (int x = -halfRaysPerEdge; x <= halfRaysPerEdge; x += 1) - { - for (int y = -halfRaysPerEdge; y <= halfRaysPerEdge; y += 1) - { - Vector3 offset = matrix.MultiplyVector(new Vector3(x * extents.x, y * extents.y, 0)); - - Vector3 origin = step.Origin; - Vector3 direction = (targetPosition + offset) - step.Origin; - - if (isOrthographic) - { - origin += offset; - direction = step.Direction; - } - - RaycastHit rayHit; - hits[index] = RaycastSimplePhysicsStep(new RayStep(origin, direction.normalized * maxDistance), prioritizedLayerMasks, focusIndividualCompoundCollider, out rayHit); - - if (hits[index]) - { - hitSomething = true; - points[index] = rayHit.point; - normals[index] = rayHit.normal; - - if (Application.isEditor && DebugEnabled) - { - Debug.DrawLine(origin, points[index], Color.yellow); - } - } - else - { - if (Application.isEditor && DebugEnabled) - { - Debug.DrawLine(origin, origin + direction * 3.0f, Color.gray); - } - } - - index++; - } - } - - return hitSomething; - } - } - - /// - /// Sphere raycasts each physics . - /// - /// Whether or not the raycast hit something. - public static bool RaycastSpherePhysicsStep(RayStep step, float radius, LayerMask[] prioritizedLayerMasks, bool focusIndividualCompoundCollider, out RaycastHit physicsHit) - { - return RaycastSpherePhysicsStep(step, radius, step.Length, prioritizedLayerMasks, focusIndividualCompoundCollider, out physicsHit); - } - - private static readonly ProfilerMarker RaycastSpherePhysicsStepPerfMarker = new ProfilerMarker("[MRTK] MixedRealityRaycaster.RaycastSpherePhysicsStep"); - - /// - /// Sphere raycasts each physics within a specified maximum distance. - /// - /// Whether or not the raycast hit something. - public static bool RaycastSpherePhysicsStep(RayStep step, float radius, float maxDistance, LayerMask[] prioritizedLayerMasks, bool focusIndividualCompoundCollider, out RaycastHit physicsHit) - { - using (RaycastSpherePhysicsStepPerfMarker.Auto()) - { - bool result = false; - if (prioritizedLayerMasks.Length == 1) - { - // If there is only one priority, don't prioritize - result = UnityEngine.Physics.SphereCast(step.Origin, radius, step.Direction, out physicsHit, maxDistance, prioritizedLayerMasks[0]); - } - else - { - // Raycast across all layers and prioritize - int hitCount = UnityEngine.Physics.SphereCastNonAlloc(step.Origin, radius, step.Direction, SphereCastHits, maxDistance, UnityEngine.Physics.AllLayers); - result = TryGetPrioritizedPhysicsHit(SphereCastHits, hitCount, prioritizedLayerMasks, focusIndividualCompoundCollider, out physicsHit); - } - - return result; - } - } - - /// - /// Tries to get the prioritized physics raycast hit based on the prioritized layer masks. - /// - /// Sorts all hit objects first by layerMask, then by distance. - /// The minimum distance hit within the first layer that has hits. - public static bool TryGetPrioritizedPhysicsHit( - RaycastHit[] hits, - LayerMask[] priorityLayers, - bool focusIndividualCompoundCollider, - out RaycastHit raycastHit) - { - return TryGetPrioritizedPhysicsHit( - hits, - hits.Length, - priorityLayers, - focusIndividualCompoundCollider, - out raycastHit); - } - - private static readonly ProfilerMarker TryGetPrioritizedPhysicsHitPerfMarker = new ProfilerMarker("[MRTK] MixedRealityRaycaster.TryGetPrioritizedPhysicsHit"); - - /// - /// Tries to get the prioritized physics raycast hit based on the prioritized layer masks. - /// - /// Sorts all hit objects first by layerMask, then by distance. - /// The minimum distance hit within the first layer that has hits. - private static bool TryGetPrioritizedPhysicsHit( - RaycastHit[] hits, - int hitCount, - LayerMask[] priorityLayers, - bool focusIndividualCompoundCollider, - out RaycastHit raycastHit) - { - using (TryGetPrioritizedPhysicsHitPerfMarker.Auto()) - { - raycastHit = default(RaycastHit); - - if (hits.Length < hitCount) - { - Debug.LogError("TryGetPrioritizedPhysicsHit: hitCount is larger than the hits array."); - return false; - } - - if (hitCount == 0) - { - return false; - } - - for (int layerMaskIdx = 0; layerMaskIdx < priorityLayers.Length; layerMaskIdx++) - { - RaycastHit? minHit = null; - - for (int hitIdx = 0; hitIdx < hitCount; hitIdx++) - { - RaycastHit hit = hits[hitIdx]; - GameObject targetGameObject = focusIndividualCompoundCollider ? hit.collider.gameObject : hit.transform.gameObject; - - if (targetGameObject.layer.IsInLayerMask(priorityLayers[layerMaskIdx]) && - (minHit == null || hit.distance < minHit.Value.distance)) - { - minHit = hit; - } - } - - if (minHit != null) - { - raycastHit = minHit.Value; - return true; - } - } - - return false; - } - } - - private static readonly ProfilerMarker RaycastPlanePhysicsStepPerfMarker = new ProfilerMarker("[MRTK] MixedRealityRaycaster.RaycastSpherePhysicsStep"); - - /// - /// Intersection test of ray step with given plane. - /// - /// Whether the ray step intersects the ray step. - public static bool RaycastPlanePhysicsStep(RayStep step, Plane plane, out Vector3 hitPoint) - { - using (RaycastPlanePhysicsStepPerfMarker.Auto()) - { - if (plane.Raycast(step, out float intersectDistance)) - { - if (intersectDistance <= step.Length) - { - hitPoint = ((Ray)step).GetPoint(intersectDistance); - return true; - } - } - - hitPoint = Vector3.zero; - return false; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs.meta deleted file mode 100644 index b06e8790b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/MixedRealityRaycaster.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 50aa07661f674aa69dc74d258135f9ee -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs deleted file mode 100644 index f02789ecd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// Compares the Raycast Results from Unity's Graphic & Physics Raycasters. - /// - public class RaycastResultComparer : IComparer - { - private static readonly List> comparers = new List> - { - CompareRaycastsByLayerMaskPrioritization, - CompareRaycastsBySortingLayer, - CompareRaycastsBySortingOrder, - CompareRaycastsByCanvasDepth, - CompareRaycastsByDistance, - }; - - protected virtual List> Comparers - { - get - { - return comparers; - } - } - - public int Compare(ComparableRaycastResult left, ComparableRaycastResult right) - { - for (var i = 0; i < Comparers.Count; i++) - { - var result = Comparers[i](left, right); - if (result != 0) - { - return result; - } - } - return 0; - } - - protected static int CompareRaycastsByLayerMaskPrioritization(ComparableRaycastResult left, ComparableRaycastResult right) - { - // Lower is better, -1 is not relevant. - return right.LayerMaskIndex.CompareTo(left.LayerMaskIndex); - } - - protected static int CompareRaycastsBySortingLayer(ComparableRaycastResult left, ComparableRaycastResult right) - { - // Higher is better. - return left.RaycastResult.sortingLayer.CompareTo(right.RaycastResult.sortingLayer); - } - - protected static int CompareRaycastsBySortingOrder(ComparableRaycastResult left, ComparableRaycastResult right) - { - // Higher is better. - return left.RaycastResult.sortingOrder.CompareTo(right.RaycastResult.sortingOrder); - } - - protected static int CompareRaycastsByCanvasDepth(ComparableRaycastResult left, ComparableRaycastResult right) - { - // Module is the graphic raycaster on the canvases. - if (left.RaycastResult.module.transform.IsParentOrChildOf(right.RaycastResult.module.transform)) - { - // Higher is better. - return left.RaycastResult.depth.CompareTo(right.RaycastResult.depth); - } - return 0; - } - - protected static int CompareRaycastsByDistance(ComparableRaycastResult left, ComparableRaycastResult right) - { - // Lower is better. - return right.RaycastResult.distance.CompareTo(left.RaycastResult.distance); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs.meta deleted file mode 100644 index fa8921d46..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/RaycastResultComparer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 67fdf0112c3a4e27b39723383e28ca64 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs deleted file mode 100644 index c4a68be5b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Physics -{ - /// - /// Vector Statistics used in gaze stabilization. - /// - public class VectorRollingStatistics - { - /// - /// Current standard deviation of the positions of the vectors. - /// - public float CurrentStandardDeviation { get; private set; } - - /// - /// Difference to standardDeviation when the latest sample was added. - /// - public float StandardDeviationDeltaAfterLatestSample { get; private set; } - - /// - /// How many standard deviations the latest sample was away. - /// - public float StandardDeviationsAwayOfLatestSample { get; private set; } - - /// - /// The average position. - /// - public Vector3 Average { get; private set; } - - /// - /// The number of samples in the current set (may be 0 - maxSamples) - /// - public float ActualSampleCount { get; private set; } - - /// - /// Keeps track of the index into the sample list for the rolling average. - /// - private int currentSampleIndex; - - /// - /// An array of samples for calculating standard deviation. - /// - private Vector3[] samples; - - /// - /// The sum of all of the samples. - /// - private Vector3 cumulativeFrame; - - /// - /// The sum of all of the samples squared. - /// - private Vector3 cumulativeFrameSquared; - - /// - /// The total number of samples taken. - /// - private int cumulativeFrameSamples; - - /// - /// The maximum number of samples to include in - /// the average and standard deviation calculations. - /// - private int maxSamples; - - /// - /// Initialize the rolling stats. - /// - public void Init(int sampleCount) - { - maxSamples = sampleCount; - samples = new Vector3[sampleCount]; - Reset(); - } - - /// - /// Resets the stats to zero. - /// - public void Reset() - { - currentSampleIndex = 0; - ActualSampleCount = 0; - cumulativeFrame = Vector3.zero; - cumulativeFrameSquared = Vector3.zero; - cumulativeFrameSamples = 0; - CurrentStandardDeviation = 0.0f; - StandardDeviationDeltaAfterLatestSample = 0.0f; - StandardDeviationsAwayOfLatestSample = 0.0f; - Average = Vector3.zero; - - if (samples != null) - { - for (int index = 0; index < samples.Length; index++) - { - samples[index] = Vector3.zero; - } - } - } - - /// - /// Adds a new sample to the sample list and updates the stats. - /// - /// The new sample to add - public void AddSample(Vector3 value) - { - if (maxSamples == 0) - { - return; - } - - // remove the old sample from our accumulation - Vector3 oldSample = samples[currentSampleIndex]; - - // -- Below replaces operations: - // cumulativeFrame -= oldSample; - // cumulativeFrameSquared -= (oldSample.Mul(oldSample)); - - cumulativeFrame.x -= oldSample.x; - cumulativeFrame.y -= oldSample.y; - cumulativeFrame.z -= oldSample.z; - - oldSample.x *= oldSample.x; - oldSample.y *= oldSample.y; - oldSample.z *= oldSample.z; - - cumulativeFrameSquared.x -= oldSample.x; - cumulativeFrameSquared.y -= oldSample.y; - cumulativeFrameSquared.z -= oldSample.z; - // -- - - // Add the new sample to the accumulation - samples[currentSampleIndex] = value; - - // -- Below replaces operations: - // cumulativeFrame += value; - // cumulativeFrameSquared += value.Mul(value); - cumulativeFrame.x += value.x; - cumulativeFrame.y += value.y; - cumulativeFrame.z += value.z; - - Vector3 valueSquared = value; - valueSquared.x = value.x * value.x; - valueSquared.y = value.y * value.y; - valueSquared.z = value.z * value.z; - - cumulativeFrameSquared.x += valueSquared.x; - cumulativeFrameSquared.y += valueSquared.y; - cumulativeFrameSquared.z += valueSquared.z; - // -- - - // Keep track of how many samples we have - cumulativeFrameSamples++; - ActualSampleCount = Mathf.Min(maxSamples, cumulativeFrameSamples); - - // see how many standard deviations the current sample is from the previous average - // -- Below replaces operations: - // Vector3 deltaFromAverage = (Average - value); - Vector3 deltaFromAverage = Average; - deltaFromAverage.x -= value.x; - deltaFromAverage.y -= value.y; - deltaFromAverage.z -= value.z; - // -- - - float oldStandardDeviation = CurrentStandardDeviation; - // -- Below replaces operations: - // StandardDeviationsAwayOfLatestSample = oldStandardDeviation.Equals(0) ? 0 : (deltaFromAverage / oldStandardDeviation).magnitude; - if (oldStandardDeviation == 0) - { - StandardDeviationsAwayOfLatestSample = 0; - } - else - { - deltaFromAverage.x /= oldStandardDeviation; - deltaFromAverage.y /= oldStandardDeviation; - deltaFromAverage.z /= oldStandardDeviation; - StandardDeviationsAwayOfLatestSample = deltaFromAverage.magnitude; - } - // -- - - // And calculate new averages and standard deviations - // (note that calculating a standard deviation of a Vector3 might not - // be done properly, but the logic is working for the gaze stabilization scenario) - - // -- Below replaces operations: - // Average = cumulativeFrame / ActualSampleCount; - // float newStandardDev = Mathf.Sqrt((cumulativeFrameSquared / ActualSampleCount - Average.Mul(Average)).magnitude); - Vector3 average = Average; - average.x = cumulativeFrame.x / ActualSampleCount; - average.y = cumulativeFrame.y / ActualSampleCount; - average.z = cumulativeFrame.z / ActualSampleCount; - - Average = average; - - Vector3 frmSqrDivSamples = cumulativeFrameSquared; - frmSqrDivSamples.x /= ActualSampleCount; - frmSqrDivSamples.y /= ActualSampleCount; - frmSqrDivSamples.z /= ActualSampleCount; - - frmSqrDivSamples.x -= (average.x * average.x); - frmSqrDivSamples.y -= (average.y * average.y); - frmSqrDivSamples.z -= (average.z * average.z); - - float newStandardDev = Mathf.Sqrt(frmSqrDivSamples.magnitude); - // -- - - StandardDeviationDeltaAfterLatestSample = oldStandardDeviation - newStandardDev; - CurrentStandardDeviation = newStandardDev; - - // update the next list position - currentSampleIndex = (currentSampleIndex + 1) % maxSamples; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs.meta deleted file mode 100644 index ae91e1823..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Physics/VectorRollingStatistics.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 99186bbf7f7d4b82a9b5af274dce1e18 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs deleted file mode 100644 index 717347ab0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public static class PlatformUtility - { - public static bool IsPlatformSupported(SupportedPlatforms platforms) - { -#if UNITY_EDITOR - SupportedPlatforms target = GetSupportedPlatformMask(UnityEditor.EditorUserBuildSettings.activeBuildTarget); -#else - SupportedPlatforms target = GetSupportedPlatformMask(Application.platform); -#endif - return IsPlatformSupported(target, platforms); - } - - [Obsolete("Use PlatformUtility.IsPlatformSupported(SupportedPlatforms platforms) instead, which accounts for both the in-editor and runtime case.")] - public static bool IsPlatformSupported(this RuntimePlatform runtimePlatform, SupportedPlatforms platforms) - { - SupportedPlatforms target = GetSupportedPlatformMask(runtimePlatform); - return IsPlatformSupported(target, platforms); - } - - private static SupportedPlatforms GetSupportedPlatformMask(RuntimePlatform runtimePlatform) - { - SupportedPlatforms supportedPlatforms = 0; - - switch (runtimePlatform) - { - case RuntimePlatform.WindowsPlayer: - case RuntimePlatform.WindowsEditor: - supportedPlatforms |= SupportedPlatforms.WindowsStandalone; - break; - case RuntimePlatform.WSAPlayerARM: - case RuntimePlatform.WSAPlayerX86: - case RuntimePlatform.WSAPlayerX64: - supportedPlatforms |= SupportedPlatforms.WindowsUniversal; - break; - case RuntimePlatform.OSXPlayer: - case RuntimePlatform.OSXEditor: - supportedPlatforms |= SupportedPlatforms.MacStandalone; - break; - case RuntimePlatform.LinuxPlayer: - case RuntimePlatform.LinuxEditor: - supportedPlatforms |= SupportedPlatforms.LinuxStandalone; - break; - case RuntimePlatform.Android: - supportedPlatforms |= SupportedPlatforms.Android; - break; - case RuntimePlatform.IPhonePlayer: - supportedPlatforms |= SupportedPlatforms.IOS; - break; - case RuntimePlatform.WebGLPlayer: - supportedPlatforms |= SupportedPlatforms.Web; - break; - case RuntimePlatform.Lumin: - supportedPlatforms |= SupportedPlatforms.Lumin; - break; - } - - return supportedPlatforms; - } - - private static bool IsPlatformSupported(SupportedPlatforms target, SupportedPlatforms supported) - { - return (target & supported) > 0; - } - -#if UNITY_EDITOR - [Obsolete("Use PlatformUtility.IsPlatformSupported(SupportedPlatforms platforms) instead, which accounts for both the in-editor and runtime case.")] - public static bool IsPlatformSupported(this UnityEditor.BuildTarget editorBuildTarget, SupportedPlatforms platforms) - { - SupportedPlatforms target = GetSupportedPlatformMask(editorBuildTarget); - return IsPlatformSupported(target, platforms); - } - - private static SupportedPlatforms GetSupportedPlatformMask(UnityEditor.BuildTarget editorBuildTarget) - { - SupportedPlatforms supportedPlatforms = 0; - - // Editor platforms - switch (Application.platform) - { - case RuntimePlatform.WindowsEditor: - supportedPlatforms |= SupportedPlatforms.WindowsEditor; - break; - - case RuntimePlatform.OSXEditor: - supportedPlatforms |= SupportedPlatforms.MacEditor; - break; - - case RuntimePlatform.LinuxEditor: - supportedPlatforms |= SupportedPlatforms.LinuxEditor; - break; - } - - // Build target platforms - switch (editorBuildTarget) - { - case UnityEditor.BuildTarget.StandaloneWindows: - case UnityEditor.BuildTarget.StandaloneWindows64: - supportedPlatforms |= SupportedPlatforms.WindowsStandalone; - break; - case UnityEditor.BuildTarget.WSAPlayer: - supportedPlatforms |= SupportedPlatforms.WindowsUniversal; - break; - case UnityEditor.BuildTarget.StandaloneOSX: - supportedPlatforms |= SupportedPlatforms.MacStandalone; - break; -#if !UNITY_2019_2_OR_NEWER - case UnityEditor.BuildTarget.StandaloneLinux: - case UnityEditor.BuildTarget.StandaloneLinuxUniversal: -#endif - case UnityEditor.BuildTarget.StandaloneLinux64: - supportedPlatforms |= SupportedPlatforms.LinuxStandalone; - break; - case UnityEditor.BuildTarget.Android: - supportedPlatforms |= SupportedPlatforms.Android; - break; - case UnityEditor.BuildTarget.iOS: - supportedPlatforms |= SupportedPlatforms.IOS; - break; - case UnityEditor.BuildTarget.WebGL: - supportedPlatforms |= SupportedPlatforms.Web; - break; - case UnityEditor.BuildTarget.Lumin: - supportedPlatforms |= SupportedPlatforms.Lumin; - break; - } - - return supportedPlatforms; - } -#endif - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs.meta deleted file mode 100644 index 8f5239021..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/PlatformUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a77dca6c5c89447ca4330f72438bc150 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/README.md b/AR-ROS/Assets/MRTK/Core/Utilities/README.md deleted file mode 100644 index 92595acd3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Mixed Reality Toolkit - Utilities - -This folder contains all the MRTK reusable / comment functionality \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/README.md.meta b/AR-ROS/Assets/MRTK/Core/Utilities/README.md.meta deleted file mode 100644 index 55d7237c6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/README.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: fc709b4dde6c4f57943c50b46950e16d -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Rendering.meta deleted file mode 100644 index cf892967a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 22471e245140aec4a9b57f84b7f1cb8c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs deleted file mode 100644 index 013d8d37e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Rendering -{ - /// - /// Component should be applied to the main camera and will apply post-process procedure to blit the scene's rendered depth buffer as the color output - /// - [ExecuteInEditMode] - [AddComponentMenu("Scripts/MRTK/Core/DepthBufferRenderer")] - public class DepthBufferRenderer : MonoBehaviour - { - [SerializeField] - [Tooltip("If not null, depth buffer rendering output will blit to this RenderTexture. If null, normal operation will blit the depth buffer as color to the screen.")] - private RenderTexture outputTexture = null; - - /// - /// If not null, depth buffer rendering output will blit to this RenderTexture. - /// If null, normal operation will blit the depth buffer as color to the screen. - /// - public RenderTexture OutputTexture - { - get => outputTexture; - set => outputTexture = value; - } - - private const string DepthShaderName = "Mixed Reality Toolkit/Depth Buffer Viewer"; - -#if UNITY_EDITOR - private RenderTexture originalRT; - private Material postProcessMaterial; - private RenderTexture depthTexture; - private int textureWidth, textureHeight; - private Camera cam; - - private void Awake() - { - originalRT = CameraCache.Main.targetTexture; - postProcessMaterial = new Material(Shader.Find(DepthShaderName)); - - cam = GetComponent(); - } - - private void OnEnable() - { - SetUp(); - } - - private void SetUp() - { - textureWidth = Screen.width; - textureHeight = Screen.height; - - depthTexture = new RenderTexture(textureWidth, textureHeight, 24, RenderTextureFormat.Depth); - RenderTexture renderTexture = new RenderTexture(textureWidth, textureHeight, 0); - - postProcessMaterial.SetTexture("_DepthTex", depthTexture); - - cam.depthTextureMode = DepthTextureMode.Depth; - cam.SetTargetBuffers(renderTexture.colorBuffer, depthTexture.depthBuffer); - } - - private void Update() - { - if (textureWidth != Screen.width || textureHeight != Screen.height) - { - SetUp(); - } - } - - private void OnRenderImage(RenderTexture source, RenderTexture destination) - { - var target = OutputTexture != null ? outputTexture : destination; - Graphics.Blit(source, target, postProcessMaterial); - } - - private void OnDisable() - { - cam.targetTexture = originalRT; - } -#endif - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs.meta deleted file mode 100644 index 2a5e51f07..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/DepthBufferRenderer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aaa958f15a5330d439c036cba648e023 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs deleted file mode 100644 index 32585b0a9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs +++ /dev/null @@ -1,352 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; -using Object = UnityEngine.Object; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace Microsoft.MixedReality.Toolkit.Rendering -{ - /// - /// The MaterialInstance behavior aides in tracking instance material lifetime and automatically destroys instanced materials for the user. - /// This utility component can be used as a replacement to Renderer.material or - /// Renderer.materials. When invoking Unity's Renderer.material(s), Unity - /// automatically instantiates new materials. It is the caller's responsibility to destroy the materials when a material is no longer needed or the game object is - /// destroyed. The MaterialInstance behavior helps avoid material leaks and keeps material allocation paths consistent during edit and run time. - /// - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Rendering/MaterialInstance.html")] - [ExecuteAlways, RequireComponent(typeof(Renderer))] - [AddComponentMenu("Scripts/MRTK/Core/MaterialInstance")] - public class MaterialInstance : MonoBehaviour - { - /// - /// Returns the first instantiated Material assigned to the renderer, similar to Renderer.material. - /// If any owner is specified the instanced material(s) will not be released until all owners are released. When a material - /// is no longer needed ReleaseMaterial should be called with the matching owner. - /// - /// An optional owner to track instance ownership. - /// The first instantiated Material. - public Material AcquireMaterial(Object owner = null, bool instance = true) - { - if (owner != null) - { - materialOwners.Add(owner); - } - - if (instance) - { - AcquireInstances(); - } - - if (instanceMaterials?.Length > 0) - { - return instanceMaterials[0]; - } - - return null; - } - - /// - /// Returns all the instantiated materials of this object, similar to Renderer.materials. - /// If any owner is specified the instanced material(s) will not be released until all owners are released. When a material - /// is no longer needed ReleaseMaterial should be called with the matching owner. - /// - /// An optional owner to track instance ownership. - /// Should this acquisition attempt to instance materials? - /// All the instantiated materials. - public Material[] AcquireMaterials(Object owner = null, bool instance = true) - { - if (owner != null) - { - materialOwners.Add(owner); - } - - if (instance) - { - AcquireInstances(); - } - - return instanceMaterials; - } - - /// - /// Relinquishes ownership of a material instance. This should be called when a material is no longer needed - /// after acquire ownership with AcquireMaterial(s). - /// - /// The same owner which originally acquire ownership via AcquireMaterial(s). - /// Should this acquisition attempt to instance materials? - /// When ownership count hits zero should the MaterialInstance component be destroyed? - public void ReleaseMaterial(Object owner, bool autoDestroy = true) - { - materialOwners.Remove(owner); - - if (autoDestroy && materialOwners.Count == 0) - { - DestorySafe(this); - - // OnDestroy not called on inactive objects - if (!gameObject.activeInHierarchy) - { - RestoreRenderer(); - } - } - } - - /// - /// Returns the first instantiated Material assigned to the renderer, similar to Renderer.material. - /// - public Material Material - { - get { return AcquireMaterial(); } - } - - /// - /// Returns all the instantiated materials of this object, similar to Renderer.materials. - /// - public Material[] Materials - { - get { return AcquireMaterials(); } - } - - private Renderer CachedRenderer - { - get - { - if (cachedRenderer == null) - { - cachedRenderer = GetComponent(); - } - - return cachedRenderer; - } - } - - private Renderer cachedRenderer = null; - - [SerializeField, HideInInspector] - private Material[] defaultMaterials = null; - private Material[] instanceMaterials = null; - private bool initialized = false; - private bool materialsInstanced = false; - private readonly HashSet materialOwners = new HashSet(); - - private const string instancePostfix = " (Instance)"; - - #region MonoBehaviour Implementation - - private void Awake() - { - Initialize(); - } - - private void Update() - { - // If the materials get changed via outside of MaterialInstance. - var sharedMaterials = CachedRenderer.sharedMaterials; - - if (!MaterialsMatch(sharedMaterials, instanceMaterials)) - { - // Re-create the material instances. - var newDefaultMaterials = new Material[sharedMaterials.Length]; - var min = Math.Min(newDefaultMaterials.Length, defaultMaterials.Length); - - // Copy the old defaults. - for (var i = 0; i < min; ++i) - { - newDefaultMaterials[i] = defaultMaterials[i]; - } - - // Patch in the new defaults. - for (var i = 0; i < newDefaultMaterials.Length; ++i) - { - var material = sharedMaterials[i]; - - if (!IsInstanceMaterial(material)) - { - newDefaultMaterials[i] = material; - } - } - - defaultMaterials = newDefaultMaterials; - CreateInstances(); - - // Notify owners of the change. - foreach (var owner in materialOwners) - { - (owner as IMaterialInstanceOwner)?.OnMaterialChanged(this); - } - } - } - - private void OnDestroy() - { - RestoreRenderer(); - } - - private void RestoreRenderer() - { - if (CachedRenderer != null && defaultMaterials != null) - { - CachedRenderer.sharedMaterials = defaultMaterials; - } - - DestroyMaterials(instanceMaterials); - instanceMaterials = null; - } - - #endregion MonoBehaviour Implementation - - private void Initialize() - { - if (!initialized && CachedRenderer != null) - { - // Cache the default materials if ones do not already exist. - if (!HasValidMaterial(defaultMaterials)) - { - defaultMaterials = CachedRenderer.sharedMaterials; - } - else if (!materialsInstanced) // Restore the clone to its initial state. - { - CachedRenderer.sharedMaterials = defaultMaterials; - } - - initialized = true; - } - } - - private void AcquireInstances() - { - if (CachedRenderer != null) - { - if (!MaterialsMatch(CachedRenderer.sharedMaterials, instanceMaterials)) - { - CreateInstances(); - } - } - } - - private void CreateInstances() - { - // Initialize must get called to set the defaultMaterials in case CreateInstances get's invoked before Awake. - Initialize(); - - DestroyMaterials(instanceMaterials); - instanceMaterials = InstanceMaterials(defaultMaterials); - - if (CachedRenderer != null && instanceMaterials != null) - { - CachedRenderer.sharedMaterials = instanceMaterials; - } - - materialsInstanced = true; - } - - private static bool MaterialsMatch(Material[] a, Material[] b) - { - if (a?.Length != b?.Length) - { - return false; - } - - for (int i = 0; i < a?.Length; ++i) - { - if (a[i] != b[i]) - { - return false; - } - } - - return true; - } - - private static Material[] InstanceMaterials(Material[] source) - { - if (source == null) - { - return null; - } - - var output = new Material[source.Length]; - - for (var i = 0; i < source.Length; ++i) - { - if (source[i] != null) - { - if (IsInstanceMaterial(source[i])) - { - Debug.LogWarning($"A material ({source[i].name}) which is already instanced was instanced multiple times."); - } - - output[i] = new Material(source[i]); - output[i].name += instancePostfix; - } - } - - return output; - } - - private static void DestroyMaterials(Material[] materials) - { - if (materials != null) - { - for (var i = 0; i < materials.Length; ++i) - { - DestorySafe(materials[i]); - } - } - } - - private static bool IsInstanceMaterial(Material material) - { - return ((material != null) && material.name.Contains(instancePostfix)); - } - - private static bool HasValidMaterial(Material[] materials) - { - if (materials != null) - { - foreach (var material in materials) - { - if (material != null) - { - return true; - } - } - } - - return false; - } - - private static void DestorySafe(UnityEngine.Object toDestroy) - { - if (toDestroy != null) - { - if (Application.isPlaying) - { - Destroy(toDestroy); - } - else - { -#if UNITY_EDITOR - // Let Unity handle unload of unused assets if lifecycle is transitioning from editor to play mode - // Defering the call during this transition would destroy reference only after play mode Awake, leading to possible broken material references on TMPro objects - if (!EditorApplication.isPlayingOrWillChangePlaymode) - { - EditorApplication.delayCall += () => - { - if (toDestroy != null) - { - DestroyImmediate(toDestroy); - } - }; - } -#endif - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs.meta deleted file mode 100644 index 0e0e08324..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Rendering/MaterialInstance.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: caf309545b476f649949bf93bf4830d1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Scenes.meta deleted file mode 100644 index 89f75abf2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9220a07b4dd41564386417a3a343a0d0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs deleted file mode 100644 index 12502cbeb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs +++ /dev/null @@ -1,501 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -#if UNITY_EDITOR -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.SceneManagement; -using UnityEditor; -using UnityEditor.SceneManagement; -using System.Reflection; -using Microsoft.MixedReality.Toolkit.SceneSystem; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Utilities for loading / saving scenes in editor via SceneInfo. - /// Because SceneInfo is defined in MixedRealityToolkit, this can't be kept in Editor utilities. - /// - public static class EditorSceneUtils - { - /// - /// Enum used by this class to specify build settings order - /// - public enum BuildIndexTarget - { - First, - None, - Last, - } - - /// - /// Creates a new scene with sceneName and saves to path. - /// - public static SceneInfo CreateAndSaveScene(string sceneName, string path = null) - { - SceneInfo sceneInfo = default(SceneInfo); - - if (!EditorSceneManager.EnsureUntitledSceneHasBeenSaved("Save untitled scene before proceeding?")) - { - return sceneInfo; - } - - Scene newScene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive); - - if (string.IsNullOrEmpty(path)) - { - path = "Assets/" + sceneName + ".unity"; - } - - if (!EditorSceneManager.SaveScene(newScene, path)) - { - Debug.LogError("Couldn't create and save scene " + sceneName + " at path " + path); - return sceneInfo; - } - - SceneAsset sceneAsset = AssetDatabase.LoadAssetAtPath(path); - sceneInfo.Asset = sceneAsset; - sceneInfo.Name = sceneAsset.name; - sceneInfo.Path = path; - - return sceneInfo; - } - - /// - /// Adds scene to build settings. - /// - /// Scene object reference. - /// Sets as first scene to be loaded. - public static bool AddSceneToBuildSettings( - SceneInfo scene, - EditorBuildSettingsScene[] scenes, - BuildIndexTarget buildIndexTarget = BuildIndexTarget.None) - { - if (scene.IsEmpty) - { // Can't add a null scene to build settings - return false; - } - - long localID; - string managerGuidString; - AssetDatabase.TryGetGUIDAndLocalFileIdentifier(scene.Asset, out managerGuidString, out localID); - GUID sceneGuid = new GUID(managerGuidString); - - List newScenes = new List(scenes); - // See if / where the scene exists in build settings - int buildIndex = EditorSceneUtils.GetSceneBuildIndex(sceneGuid, newScenes); - - if (buildIndex < 0) - { - // It doesn't exist in the build settings, add it now - switch (buildIndexTarget) - { - case BuildIndexTarget.First: - // Add it to index 0 - newScenes.Insert(0, new EditorBuildSettingsScene(sceneGuid, true)); - break; - - case BuildIndexTarget.None: - default: - // Just add it to the end - newScenes.Add(new EditorBuildSettingsScene(sceneGuid, true)); - break; - } - - EditorBuildSettings.scenes = newScenes.ToArray(); - return true; - } - else - { - switch (buildIndexTarget) - { - // If it does exist, but isn't in the right spot, move it now - case BuildIndexTarget.First: - if (buildIndex != 0) - { - Debug.LogWarning("Scene '" + scene.Name + "' was not first in build order. Changing build settings now."); - - newScenes.RemoveAt(buildIndex); - newScenes.Insert(0, new EditorBuildSettingsScene(sceneGuid, true)); - EditorBuildSettings.scenes = newScenes.ToArray(); - } - return true; - - case BuildIndexTarget.Last: - if (buildIndex != EditorSceneManager.sceneCountInBuildSettings - 1) - { - newScenes.RemoveAt(buildIndex); - newScenes.Insert(newScenes.Count - 1, new EditorBuildSettingsScene(sceneGuid, true)); - EditorBuildSettings.scenes = newScenes.ToArray(); - } - return true; - - case BuildIndexTarget.None: - default: - // Do nothing - return false; - - } - } - } - - /// - /// Gets the build index for a scene GUID. - /// There are many ways to do this in Unity but this is the only 100% reliable method I know of. - /// - public static int GetSceneBuildIndex(GUID sceneGUID, List scenes) - { - int buildIndex = -1; - int sceneCount = 0; - for (int i = 0; i < scenes.Count; i++) - { - if (scenes[i].guid == sceneGUID) - { - buildIndex = sceneCount; - break; - } - - if (scenes[i].enabled) - { - sceneCount++; - } - } - - return buildIndex; - } - - /// - /// Attempts to load scene in editor using a scene object reference. - /// - /// Scene object reference. - /// Whether to set first in the hierarchy window. - /// The loaded scene. - /// True if successful. - public static bool LoadScene(SceneInfo sceneInfo, bool setAsFirst, out Scene editorScene) - { - editorScene = default(Scene); - - try - { - editorScene = EditorSceneManager.GetSceneByName(sceneInfo.Name); - - if (editorScene.isLoaded) - { // Already open - no need to do anything! - return true; - } - - string scenePath = AssetDatabase.GetAssetOrScenePath(sceneInfo.Asset); - EditorSceneManager.OpenScene(scenePath, OpenSceneMode.Additive); - - if (setAsFirst && EditorSceneManager.loadedSceneCount >= 1) - { // Move the scene to first in order in the hierarchy - Scene nextScene = EditorSceneManager.GetSceneAt(0); - EditorSceneManager.MoveSceneBefore(editorScene, nextScene); - } - } - catch (InvalidOperationException) - { - // This can happen if we're trying to load immediately upon recompilation. - return false; - } - catch (ArgumentException) - { - // This can happen if the scene is an invalid scene and we try to SetActive. - return false; - } - catch (NullReferenceException) - { - // This can happen if the scene object is null. - return false; - } - catch (MissingReferenceException) - { - // This can happen if the scene object is null. - return false; - } - - return true; - } - - /// - /// Finds the scene if loaded. - /// - /// True if scene is loaded - public static bool GetSceneIfLoaded(SceneInfo sceneInfo, out Scene editorScene) - { - editorScene = default(Scene); - editorScene = EditorSceneManager.GetSceneByName(sceneInfo.Name); - return editorScene.IsValid() && editorScene.isLoaded; - } - - /// - /// Returns all root GameObjects in all open scenes. - /// - public static IEnumerable GetRootGameObjectsInLoadedScenes() - { - for (int i = 0; i < EditorSceneManager.sceneCount; i++) - { - Scene openScene = EditorSceneManager.GetSceneAt(i); - if (!openScene.isLoaded) - { // Oh, Unity. - continue; - } - - foreach (GameObject rootGameObject in openScene.GetRootGameObjects()) - yield return rootGameObject; - } - yield break; - } - - /// - /// Returns true if user is currently editing a prefab. - /// - public static bool IsEditingPrefab() - { - var prefabStage = UnityEditor.Experimental.SceneManagement.PrefabStageUtility.GetCurrentPrefabStage(); - return prefabStage != null; - } - - /// - /// Unloads a scene in the editor and catches any errors that can happen along the way. - /// - public static bool UnloadScene(SceneInfo sceneInfo, bool removeFromHeirarchy) - { - Scene editorScene = default(Scene); - - try - { - editorScene = EditorSceneManager.GetSceneByName(sceneInfo.Name); - if (editorScene.isLoaded) - { - EditorSceneManager.CloseScene(editorScene, removeFromHeirarchy); - } - } - catch (InvalidOperationException) - { - // This can happen if we're trying to load immediately upon recompilation. - return false; - } - catch (ArgumentException) - { - // This can happen if the scene is an invalid scene and we try to SetActive. - return false; - } - catch (NullReferenceException) - { - // This can happen if the scene object is null. - return false; - } - catch (MissingReferenceException) - { - // This can happen if the scene object is null. - return false; - } - - return true; - } - - /// - /// Attempts to set the active scene and catches all the various ways it can go wrong. - /// Returns true if successful. - /// - public static bool SetActiveScene(Scene scene) - { - try - { - EditorSceneManager.SetActiveScene(scene); - } - catch (InvalidOperationException) - { - // This can happen if we're trying to load immediately upon recompilation. - return false; - } - catch (ArgumentException) - { - // This can happen if the scene is an invalid scene and we try to SetActive. - return false; - } - catch (NullReferenceException) - { - // This can happen if the scene object is null. - return false; - } - catch (MissingReferenceException) - { - // This can happen if the scene object is null. - return false; - } - - return true; - } - - /// - /// Copies the lighting settings from the lighting scene to the active scene - /// - public static void CopyLightingSettingsToActiveScene(Scene lightingScene) - { - // Store the active scene on entry - Scene activeSceneOnEnter = EditorSceneManager.GetActiveScene(); - - // No need to do anything - if (activeSceneOnEnter == lightingScene) - return; - - SerializedObject sourceLightmapSettings; - SerializedObject sourceRenderSettings; - - // Set the active scene to the lighting scene - SetActiveScene(lightingScene); - // If we can't get the source settings for some reason, abort - if (!GetLightingAndRenderSettings(out sourceLightmapSettings, out sourceRenderSettings)) - { - return; - } - - bool madeChanges = false; - - // Set active scene back to the active scene on enter - if (SetActiveScene(activeSceneOnEnter)) - { - SerializedObject targetLightmapSettings; - SerializedObject targetRenderSettings; - - if (GetLightingAndRenderSettings(out targetLightmapSettings, out targetRenderSettings)) - { - string[] propsToIgnore = new string[] { "m_IndirectSpecularColor" }; - - madeChanges |= SerializedObjectUtils.CopySerializedObject(sourceLightmapSettings, targetLightmapSettings, propsToIgnore); - madeChanges |= SerializedObjectUtils.CopySerializedObject(sourceRenderSettings, targetRenderSettings, propsToIgnore); - } - } - - if (madeChanges) - { - Debug.LogWarning("Changed lighting settings in scene " + activeSceneOnEnter.name + " to match lighting scene " + lightingScene.name); - EditorSceneManager.MarkSceneDirty(activeSceneOnEnter); - } - } - - /// - /// Goes through a scene's objects and checks for components that aren't found in permittedComponentTypes - /// If any are found, they're added to the violations list. - /// - public static bool EnforceSceneComponents(Scene scene, IEnumerable permittedComponentTypes, List violations) - { - if (!scene.IsValid() || !scene.isLoaded) - { - return false; - } - - int typesEvaluated = 0; - bool foundAtLeastOneViolation = false; - - try - { - foreach (GameObject rootGameObject in scene.GetRootGameObjects()) - { - foreach (Component component in rootGameObject.GetComponentsInChildren()) - { - bool componentIsPermitted = false; - foreach (Type type in permittedComponentTypes) - { - if (type.IsAssignableFrom(component.GetType())) - { - componentIsPermitted = true; - break; - } - typesEvaluated++; - } - - if (!componentIsPermitted) - { - foundAtLeastOneViolation = true; - violations.Add(component); - } - } - } - } - catch (Exception) - { - // This can go wrong if GetRootSceneObjects fails. - } - - if (typesEvaluated == 0) - { - Debug.LogError("Permitted component types must include at least one type."); - } - - return foundAtLeastOneViolation; - } - - /// - /// Gets serialized objects for lightmap and render settings from active scene. - /// - public static bool GetLightingAndRenderSettings(out SerializedObject lightmapSettings, out SerializedObject renderSettings) - { - lightmapSettings = null; - renderSettings = null; - - UnityEngine.Object lightmapSettingsObject = null; - UnityEngine.Object renderSettingsObject = null; - - try - { - // Use reflection to get the serialized objects of lightmap settings and render settings - Type lightmapSettingsType = typeof(LightmapEditorSettings); - Type renderSettingsType = typeof(RenderSettings); - - lightmapSettingsObject = (UnityEngine.Object)lightmapSettingsType.GetMethod("GetLightmapSettings", BindingFlags.Static | BindingFlags.NonPublic).Invoke(null, null); - renderSettingsObject = (UnityEngine.Object)renderSettingsType.GetMethod("GetRenderSettings", BindingFlags.Static | BindingFlags.NonPublic).Invoke(null, null); - } - catch (Exception) - { - Debug.LogWarning("Couldn't get lightmap or render settings. This version of Unity may not support this operation."); - return false; - } - - if (lightmapSettingsObject == null) - { - Debug.LogWarning("Couldn't get lightmap settings object"); - return false; - } - - if (renderSettingsObject == null) - { - Debug.LogWarning("Couldn't get render settings object"); - return false; - } - - // Store the settings in serialized objects - lightmapSettings = new SerializedObject(lightmapSettingsObject); - renderSettings = new SerializedObject(renderSettingsObject); - return true; - } - - /// - /// Checks build settings for possible errors and displays warnings. - /// - public static bool CheckBuildSettingsForDuplicates(List allScenes, Dictionary> duplicates) - { - duplicates.Clear(); - List indexes = null; - bool foundDuplicate = false; - - foreach (SceneInfo sceneInfo in allScenes) - { - if (duplicates.TryGetValue(sceneInfo.Name, out indexes)) - { - indexes.Add(sceneInfo.BuildIndex); - foundDuplicate = true; - } - else - { - duplicates.Add(sceneInfo.Name, new List { sceneInfo.BuildIndex }); - } - } - - return foundDuplicate; - } - } -} -#endif diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs.meta deleted file mode 100644 index ad6a3679a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/EditorSceneUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a3a7c179145ec49478f526d12a8d9ee7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs deleted file mode 100644 index ea6d3d7dd..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.SceneManagement; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public static class RuntimeSceneUtils - { - public static string GetSceneNameFromScenePath(string scenePath) - { - return System.IO.Path.GetFileNameWithoutExtension(scenePath); - } - - /// - /// Finds a scene in our build settings by name. - /// - public static bool FindScene(string sceneName, out Scene scene, out int sceneIndex) - { - scene = default(Scene); - sceneIndex = -1; - // This is the only method to get all scenes (including unloaded) - // This absurdity is necessary due to a long-standing Unity bug - // https://issuetracker.unity3d.com/issues/scenemanager-dot-getscenebybuildindex-dot-name-returns-an-empty-string-if-scene-is-not-loaded - List allScenesInProject = new List(); - for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++) - { - string pathToScene = SceneUtility.GetScenePathByBuildIndex(i); - string checkSceneName = System.IO.Path.GetFileNameWithoutExtension(pathToScene); - if (checkSceneName == sceneName) - { - scene = SceneManager.GetSceneByBuildIndex(i); - sceneIndex = i; - return true; - } - } - return false; - } - - /// - /// Returns all root GameObjects in all loaded scenes. - /// - public static IEnumerable GetRootGameObjectsInLoadedScenes() - { - for (int i = 0; i < SceneManager.sceneCount; i++) - { - Scene loadedScene = SceneManager.GetSceneAt(i); - if (!loadedScene.isLoaded) - { - continue; - } - - foreach (GameObject rootGameObject in loadedScene.GetRootGameObjects()) - { - yield return rootGameObject; - } - } - yield break; - } - - /// - /// Sets the active scene to the supplied scene. Returns true if successful. - /// - public static bool SetActiveScene(Scene scene) - { - if (!scene.IsValid() || !scene.isLoaded) - { - return false; - } - - try - { - SceneManager.SetActiveScene(scene); - } - catch (Exception e) - { - Debug.LogException(e); - return false; - } - - return true; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs.meta deleted file mode 100644 index ea5e63aaf..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/RuntimeSceneUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a7d4d483c55473242a48b2961be8f46a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs b/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs deleted file mode 100644 index 0442b0cba..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -#if UNITY_EDITOR -using System; -using System.Collections.Generic; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - public static class SerializedObjectUtils - { - /// - /// Copies properties of one serialized object to another (without undo) - /// - public static bool CopySerializedObject(SerializedObject source, SerializedObject target, IEnumerable propsToIgnore = null) - { - bool madeChanges = false; - SerializedProperty sourceProp = source.GetIterator(); - while (sourceProp.NextVisible(true)) - { - if (propsToIgnore != null) - { - foreach (string propToIgnore in propsToIgnore) - { - if (propToIgnore == sourceProp.name) - { - continue; - } - } - } - madeChanges |= target.CopyFromSerializedPropertyIfDifferent(sourceProp); - } - - if (madeChanges) - { - target.ApplyModifiedPropertiesWithoutUndo(); - } - - return madeChanges; - } - - /// - /// Iterates through a serialized object's fields and sets any accompanying fields in the supplied struct. - /// - /// - /// Prefix to remove from serialized object field name before searching for match in struct - public static T CopySerializedObjectToStruct(SerializedObject source, T target, string propNamePrefixFilter = null, bool errorOnFieldNotFound = false) where T : struct - { - Type targetType = typeof(T); - object targetObject = (object)target; - - SerializedProperty sourceProp = source.GetIterator(); - while (sourceProp.NextVisible(true)) - { - string propName = sourceProp.name; - - if (!string.IsNullOrEmpty(propNamePrefixFilter) && propName.StartsWith(propNamePrefixFilter)) - { - propName = propName.Replace(propNamePrefixFilter, ""); - } - - FieldInfo field = targetType.GetField(propName, BindingFlags.Public | BindingFlags.Instance); - if (field != null) - { - SetTargetFieldToSerializedPropertyValue(field, ref targetObject, sourceProp); - } - if (errorOnFieldNotFound) - { - Debug.LogError("Field " + propName + " not found in struct type " + targetType.Name); - } - } - - return (T)targetObject; - } - - /// - /// Sets the target field to the value from property based on property type. - /// - public static void SetTargetFieldToSerializedPropertyValue(FieldInfo field, ref object target, SerializedProperty property) - { - switch (property.propertyType) - { - case SerializedPropertyType.Boolean: - field.SetValue(target, property.boolValue); - break; - case SerializedPropertyType.Integer: - field.SetValue(target, property.intValue); - break; - case SerializedPropertyType.String: - field.SetValue(target, property.stringValue); - break; - case SerializedPropertyType.Enum: - field.SetValue(target, property.enumValueIndex); - break; - case SerializedPropertyType.Float: - field.SetValue(target, property.floatValue); - break; - case SerializedPropertyType.Color: - field.SetValue(target, property.colorValue); - break; - case SerializedPropertyType.Vector2: - field.SetValue(target, property.vector2Value); - break; - case SerializedPropertyType.Vector3: - field.SetValue(target, property.vector3Value); - break; - case SerializedPropertyType.Vector4: - field.SetValue(target, property.vector4Value); - break; - case SerializedPropertyType.ObjectReference: - field.SetValue(target, property.objectReferenceValue); - break; - default: - throw new NotImplementedException("Type " + property.propertyType + " is not implemented."); - } - } - - /// - /// Uses reflection to set all public fields of a struct in an accompanying serialized property - /// - /// - public static void SetStructValue(SerializedProperty serializedProperty, T value) where T : struct - { - foreach (FieldInfo field in typeof(T).GetFields(BindingFlags.Public | BindingFlags.Instance)) - { - SerializedProperty sourceProp = serializedProperty.FindPropertyRelative(field.Name); - if (sourceProp == null) - { - Debug.LogError("Couldn't find field " + field.Name + " in serialized property."); - } - else - { - Type sourcePropType = Type.GetType(sourceProp.type); - if (!sourcePropType.IsAssignableFrom(field.FieldType)) - { - Debug.LogError("Couldn't assign field " + field.Name + " in serialized property - types do not match."); - } - else - { - SetSerializedPropertyByType(field.GetValue(value), sourceProp); - } - } - } - } - - /// - /// Sets a serialized property value based on type of value object. - /// - public static void SetSerializedPropertyByType(object value, SerializedProperty property) - { - switch (property.propertyType) - { - case SerializedPropertyType.Boolean: - property.boolValue = (bool)value; - break; - case SerializedPropertyType.Integer: - property.intValue = (int)value; - break; - case SerializedPropertyType.String: - property.stringValue = (string)value; - break; - case SerializedPropertyType.Enum: - property.enumValueIndex = (int)value; - break; - case SerializedPropertyType.Float: - property.floatValue = (float)value; - break; - case SerializedPropertyType.ObjectReference: - property.objectReferenceValue = (UnityEngine.Object)value; - break; - default: - throw new NotImplementedException("Type " + property.propertyType + " is not implemented."); - } - } - } -} -#endif \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs.meta deleted file mode 100644 index bf8f327b5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/Scenes/SerializedObjectUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b0a83f1d6c83a244a919b3f4cb50dc54 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs b/AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs deleted file mode 100644 index 557fac3e4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if UNITY_EDITOR -using System; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - /// - /// A set of utilities to configure script compilation. - /// - [Obsolete("The ScriptingUtilities class is obsolete and will be removed from a future version of MRTK. Please use the ScriptUtilities class.")] - public static class ScriptingUtilities - { - /// - /// Appends a set of symbolic constant definitions to Unity's Scripting Define Symbols for the - /// specified build target group. - /// - /// The name of an optional file locate before appending. - /// The build target group for which the symbols are to be defined. - /// Array of symbols to define. - /// - /// To always append the symbols, pass null (or the empty string) for the fileName parameter. - /// - [Obsolete("ScriptingUtilities.AppendScriptingDefinitions is obsolete and will be removed from a future version of MRTK. Please use FileUtilities.FindFilesInAssets and ScriptUtilities.AppendScriptingDefinitions.")] - public static void AppendScriptingDefinitions( - string fileName, - BuildTargetGroup targetGroup, - string[] symbols) - { - // Note: Typically, obsolete methods are re-implemented using the replacement versions. - // In this instance, that is not possible as the replacement exists in a separate assembly that is - // not appropriate for referencing (the new assembly is editor only). - - if (symbols == null || symbols.Length == 0) { return; } - - bool appendSymbols = true; - - if (!string.IsNullOrWhiteSpace(fileName)) - { - DirectoryInfo assets = new DirectoryInfo(Application.dataPath); - FileInfo[] files = assets.GetFiles(fileName, SearchOption.AllDirectories); - appendSymbols = (files.Length > 0); - } - - if (!appendSymbols) { return; } - - string defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup); - foreach (string symbol in symbols) - { - if (string.IsNullOrWhiteSpace(defines)) - { - defines = symbol; - continue; - } - - if (!defines.Contains(symbol)) - { - defines = string.Concat(defines, $";{symbol}"); - } - } - - PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, defines); - } - } -} -#endif // UNITY_EDITOR diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs.meta deleted file mode 100644 index 4171a20fb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/ScriptingUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: db9cffc0f5d4c08429d00c29eb40fc0f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs deleted file mode 100644 index 57541139b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// A ray whose position and direction are stabilized in a way similar to how gaze stabilization - /// works in HoloLens. - /// - /// The ray uses Anatolie Gavrulic's "DynamicExpDecay" filter to stabilize the ray - /// this filter adjusts its smoothing factor based on the velocity of the filtered object - /// - /// The formula is - /// Y_smooted += ∆ð‘Œ_ð‘Ÿ - /// where - /// 〖∆ð‘Œ_ð‘Ÿ=∆ð‘Œâˆ—〖0.5〗^(∆ð‘Œ/〖Halflife〗) - /// - /// In code, LERP(signal, oldValue, POW(0.5, ABS(signal – oldValue) / hl) - /// - public class StabilizedRay - { - /// - /// Half life used for position decay calculations. - /// - public float HalfLifePosition { get; } = 0.1f; - - /// - /// Half life used for velocity decay calculations. - /// - public float HalfLifeDirection { get; } = 0.1f; - - /// - /// Computed Stabilized position. - /// - public Vector3 StabilizedPosition { get; private set; } - - /// - /// Computed stabilized direction. - /// - public Vector3 StabilizedDirection { get; private set; } - - private bool isInitialized = false; - - /// - /// HalfLife closer to zero means lerp closer to one. - /// - public StabilizedRay(float halfLife) - { - HalfLifePosition = halfLife; - HalfLifeDirection = halfLife; - } - - /// - /// Add sample to ray stabilizer. - /// - /// New Sample used to update stabilized ray. - public void AddSample(Ray ray) - { - if (!isInitialized) - { - StabilizedPosition = ray.origin; - StabilizedDirection = ray.direction.normalized; - isInitialized = true; - } - else - { - StabilizedPosition = DynamicExpDecay(StabilizedPosition, ray.origin, HalfLifePosition); - StabilizedDirection = DynamicExpDecay(StabilizedDirection, ray.direction.normalized, HalfLifeDirection); - } - } - - /// - /// Compute dynamic exponential coefficient. - /// - /// Half life - /// Distance delta - /// The dynamic exponential coefficient. - public static float DynamicExpCoefficient(float hLife, float delta) - { - if (hLife == 0) - { - return 1; - } - - return 1.0f - Mathf.Pow(0.5f, delta / hLife); - } - - /// - /// Compute stabilized vector3 given a previously stabilized value, and a new sample, given a half life. - /// - /// Previous stabilized Vector3. - /// New Vector3 sample. - /// Half life used for stabilization. - /// Stabilized Vector 3. - public static Vector3 DynamicExpDecay(Vector3 from, Vector3 to, float hLife) - { - return Vector3.Lerp(from, to, DynamicExpCoefficient(hLife, Vector3.Distance(to, from))); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs.meta deleted file mode 100644 index d6a21343d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StabilizedRay.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e966538be6393884d857b4045424be13 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader.meta deleted file mode 100644 index 3f2845a65..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0da94d773bd9056428711ec44fd8ff37 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs deleted file mode 100644 index 391280fb9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Abstract component to encapsulate common functionality around outline components. - /// - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_MRTKStandardShader.html#mesh-outlines")] - public abstract class BaseMeshOutline : MonoBehaviour - { - /// - /// The material used to render the outline. Outline materials should normal have "Depth Write" set to Off and "Vertex Extrusion" enabled. - /// Most MRTK/Standard features should work as an outline material, but it is recommended to keep the outline material as simple as possible. - /// - public Material OutlineMaterial - { - get { return outlineMaterial; } - set - { - if (outlineMaterial != value) - { - outlineMaterial = value; - ApplyOutlineMaterial(); - } - } - } - - [Tooltip("The material used to render the outline. Outline materials should normal have \"Depth Write\" set to Off and \"Vertex Extrusion\" enabled.")] - [SerializeField] - protected Material outlineMaterial = null; - - /// - /// How thick (in meters) should the outline be. Overrides the "Extrusion Value" in the MRTK/Standard material. - /// - public float OutlineWidth - { - get { return outlineWidth; } - set - { - if (outlineWidth != value) - { - outlineWidth = value; - ApplyOutlineWidth(); - } - } - } - - [Tooltip("How thick (in meters) should the outline be. Overrides the \"Extrusion Value\" in the MRTK/Standard material.")] - [SerializeField] - [Range(0.001f, 1.0f)] - protected float outlineWidth = 0.01f; - - #region MonoBehaviour Implementation - - /// - /// Enables users to modify inspector properties while playing in the editor. - /// - protected virtual void OnValidate() - { - ApplyOutlineMaterial(); - ApplyOutlineWidth(); - } - - #endregion MonoBehaviour Implementation - - protected abstract void ApplyOutlineMaterial(); - protected abstract void ApplyOutlineWidth(); - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs.meta deleted file mode 100644 index edce81913..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/BaseMeshOutline.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6907152d06ee24d4ca3bb38cba67870f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs deleted file mode 100644 index 0dc0df292..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Component to animate and visualize a box that can be used with - /// per pixel based clipping. - /// - [ExecuteInEditMode] - [AddComponentMenu("Scripts/MRTK/Core/ClippingBox")] - public class ClippingBox : ClippingPrimitive - { - /// - /// The property name of the clip box data within the shader. - /// - protected int clipBoxSizeID; - - /// - /// The property name of the clip box inverse transformation matrix within the shader. - /// - protected int clipBoxInverseTransformID; - - /// - protected override string Keyword - { - get { return "_CLIPPING_BOX"; } - } - - /// - protected override string ClippingSideProperty - { - get { return "_ClipBoxSide"; } - } - - /// - /// Renders a visual representation of the clipping primitive when selected. - /// - protected void OnDrawGizmosSelected() - { - if (enabled) - { - Gizmos.matrix = transform.localToWorldMatrix; - Gizmos.DrawWireCube(Vector3.zero, Vector3.one); - } - } - - /// - protected override void Initialize() - { - base.Initialize(); - - clipBoxSizeID = Shader.PropertyToID("_ClipBoxSize"); - clipBoxInverseTransformID = Shader.PropertyToID("_ClipBoxInverseTransform"); - } - - protected override void UpdateShaderProperties(MaterialPropertyBlock materialPropertyBlock) - { - Vector3 lossyScale = transform.lossyScale * 0.5f; - Vector4 boxSize = new Vector4(lossyScale.x, lossyScale.y, lossyScale.z, 0.0f); - materialPropertyBlock.SetVector(clipBoxSizeID, boxSize); - Matrix4x4 boxInverseTransform = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one).inverse; - materialPropertyBlock.SetMatrix(clipBoxInverseTransformID, boxInverseTransform); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs.meta deleted file mode 100644 index 1ae42eade..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingBox.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 75fa637a68e599040bdd08afc22b3bfa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs deleted file mode 100644 index 64cbf6a41..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Component to animate and visualize a plane that can be used with - /// per pixel based clipping. - /// - [ExecuteInEditMode] - [AddComponentMenu("Scripts/MRTK/Core/ClippingPlane")] - public class ClippingPlane : ClippingPrimitive - { - /// - /// The property name of the clip plane data within the shader. - /// - protected int clipPlaneID; - - /// - protected override string Keyword - { - get { return "_CLIPPING_PLANE"; } - } - - /// - protected override string ClippingSideProperty - { - get { return "_ClipPlaneSide"; } - } - - /// - /// Renders a visual representation of the clipping primitive when selected. - /// - protected void OnDrawGizmosSelected() - { - if (enabled) - { - Gizmos.matrix = transform.localToWorldMatrix; - Gizmos.DrawWireCube(Vector3.zero, new Vector3(1.0f, 0.0f, 1.0f)); - Gizmos.DrawLine(Vector3.zero, Vector3.up * -0.5f); - } - } - - /// - protected override void Initialize() - { - base.Initialize(); - - clipPlaneID = Shader.PropertyToID("_ClipPlane"); - } - - /// - protected override void UpdateShaderProperties(MaterialPropertyBlock materialPropertyBlock) - { - Vector3 up = transform.up; - Vector4 plane = new Vector4(up.x, up.y, up.z, Vector3.Dot(up, transform.position)); - - materialPropertyBlock.SetVector(clipPlaneID, plane); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs.meta deleted file mode 100644 index 974f5f4be..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPlane.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c1ae338a2aef44dab5e4cd3f11c6f5d3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs deleted file mode 100644 index d7bddff32..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Rendering; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// An abstract primitive component to animate and visualize a clipping primitive that can be - /// used to drive per pixel based clipping. - /// - [ExecuteAlways] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Rendering/ClippingPrimitive.html")] - public abstract class ClippingPrimitive : MonoBehaviour, IMaterialInstanceOwner - { - [Tooltip("The renderer(s) that should be affected by the primitive.")] - [SerializeField] - protected List renderers = new List(); - - public enum Side - { - Inside = 1, - Outside = -1 - } - - [Tooltip("Which side of the primitive to clip pixels against.")] - [SerializeField] - protected Side clippingSide = Side.Inside; - - /// - /// The renderer(s) that should be affected by the primitive. - /// - public Side ClippingSide - { - get => clippingSide; - set => clippingSide = value; - } - - [SerializeField] - [Tooltip("Toggles whether the primitive will use the Camera OnPreRender event")] - private bool useOnPreRender; - - /// - /// Toggles whether the primitive will use the Camera OnPreRender event. - /// - /// - /// This is especially helpful if you're trying to clip dynamically created objects that may be added to the scene after LateUpdate such as OnWillRender - /// - public bool UseOnPreRender - { - get => useOnPreRender; - set - { - if (cameraMethods == null) - { - cameraMethods = CameraCache.Main.gameObject.EnsureComponent(); - } - - if (value) - { - cameraMethods.OnCameraPreRender += OnCameraPreRender; - } - else - { - cameraMethods.OnCameraPreRender -= OnCameraPreRender; - } - - useOnPreRender = value; - } - } - - protected abstract string Keyword { get; } - protected abstract string ClippingSideProperty { get; } - - protected MaterialPropertyBlock materialPropertyBlock; - - private int clippingSideID; - private CameraEventRouter cameraMethods; - - private bool isDirty; - /// - /// Keeping track of any field, property or transformation changes to optimize material property block setting. - /// - public bool IsDirty - { - get => isDirty; - set => isDirty = value; - } - - /// - /// Adds a renderer to the list of objects this clipping primitive clips. - /// - /// - public void AddRenderer(Renderer _renderer) - { - if (_renderer != null) - { - if (!renderers.Contains(_renderer)) - { - renderers.Add(_renderer); - } - - ToggleClippingFeature(_renderer.EnsureComponent().AcquireMaterials(this), gameObject.activeInHierarchy); - IsDirty = true; - } - } - - /// - /// Removes a renderer to the list of objects this clipping primitive clips. - /// - public void RemoveRenderer(Renderer _renderer) - { - renderers.Remove(_renderer); - - if (_renderer != null) - { - var materialInstance = _renderer.GetComponent(); - - if (materialInstance != null) - { - // There is no need to acquire new instances if ones do not already exist since we are - // in the process of removing. - ToggleClippingFeature(materialInstance.AcquireMaterials(this, false), false); - materialInstance.ReleaseMaterial(this); - } - } - } - - /// - /// Removes all renderers in the list of objects this clipping primitive clips. - /// - public void ClearRenderers() - { - if (renderers != null) - { - // Remove from end of list to avoid re-allocation of array - for (int i = renderers.Count - 1; i >= 0; i--) - { - RemoveRenderer(renderers[0]); - } - } - } - - /// - /// Returns a copy of the current list of renderers. - /// - /// The current list of renderers. - public IEnumerable GetRenderersCopy() - { - return new List(renderers); - } - - #region MonoBehaviour Implementation - - protected void OnEnable() - { - Initialize(); - UpdateRenderers(); - ToggleClippingFeature(true); - - if (useOnPreRender) - { - cameraMethods = CameraCache.Main.gameObject.EnsureComponent(); - cameraMethods.OnCameraPreRender += OnCameraPreRender; - } - } - - protected void OnDisable() - { - UpdateRenderers(); - ToggleClippingFeature(false); - - if (cameraMethods != null) - { - cameraMethods.OnCameraPreRender -= OnCameraPreRender; - } - } - -#if UNITY_EDITOR - // We need this class to be updated once per frame even when in edit mode. Ideally this would - // occur after all other objects are updated in LateUpdate(), but because the ExecuteInEditMode - // attribute only invokes Update() we handle edit mode updating in Update() and runtime updating - // in LateUpdate(). - protected void Update() - { - if (Application.isPlaying) - { - return; - } - - Initialize(); - UpdateRenderers(); - } -#endif - - protected void LateUpdate() - { - // Deferring the LateUpdate() call to OnCameraPreRender() - if (!useOnPreRender) - { - UpdateRenderers(); - } - } - - protected void OnCameraPreRender(CameraEventRouter router) - { - // Only subscribed to via UseOnPreRender property setter - UpdateRenderers(); - } - - protected void OnDestroy() - { - ClearRenderers(); - } - - #endregion MonoBehaviour Implementation - - #region IMaterialInstanceOwner Implementation - - /// - public void OnMaterialChanged(MaterialInstance materialInstance) - { - if (materialInstance != null) - { - ToggleClippingFeature(materialInstance.AcquireMaterials(this), gameObject.activeInHierarchy); - } - - UpdateRenderers(); - } - - #endregion IMaterialInstanceOwner Implementation - - protected virtual void Initialize() - { - materialPropertyBlock = new MaterialPropertyBlock(); - clippingSideID = Shader.PropertyToID(ClippingSideProperty); - } - - protected virtual void UpdateRenderers() - { - if (renderers == null) - { - return; - } - - CheckTransformChange(); - - for (var i = renderers.Count - 1; i >= 0; --i) - { - var _renderer = renderers[i]; - - if (_renderer == null) - { - renderers.RemoveAt(i); - continue; - } - - if (IsDirty) - { - _renderer.GetPropertyBlock(materialPropertyBlock); - materialPropertyBlock.SetFloat(clippingSideID, (float)clippingSide); - UpdateShaderProperties(materialPropertyBlock); - _renderer.SetPropertyBlock(materialPropertyBlock); - } - } - - IsDirty = false; - } - - protected abstract void UpdateShaderProperties(MaterialPropertyBlock materialPropertyBlock); - - protected void ToggleClippingFeature(bool keywordOn) - { - if (renderers != null) - { - for (var i = 0; i < renderers.Count; ++i) - { - var _renderer = renderers[i]; - - if (_renderer != null) - { - ToggleClippingFeature(_renderer.EnsureComponent().AcquireMaterials(this), keywordOn); - } - } - } - } - - protected void ToggleClippingFeature(Material[] materials, bool keywordOn) - { - if (materials != null) - { - foreach (var material in materials) - { - ToggleClippingFeature(material, keywordOn); - } - } - } - - protected void ToggleClippingFeature(Material material, bool keywordOn) - { - if (material != null) - { - if (keywordOn) - { - material.EnableKeyword(Keyword); - } - else - { - material.DisableKeyword(Keyword); - } - } - } - - private void CheckTransformChange() - { - if (transform.hasChanged) - { - IsDirty = true; - transform.hasChanged = false; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs.meta deleted file mode 100644 index 387cc0242..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingPrimitive.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a2e3374fab4a9a943b2420d105c98da9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs deleted file mode 100644 index d689c628a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Component to animate and visualize a sphere that can be used with - /// per pixel based clipping. - /// - [ExecuteInEditMode] - [AddComponentMenu("Scripts/MRTK/Core/ClippingSphere")] - public class ClippingSphere : ClippingPrimitive - { - /// - /// The radius of the clipping sphere, which is determined by the largest axis of the transform's scale. - /// - public float Radius - { - get - { - Vector3 lossyScale = transform.lossyScale * 0.5f; - return Mathf.Max(Mathf.Max(lossyScale.x, lossyScale.y), lossyScale.z); - } - } - - /// - /// The property name of the clip sphere data within the shader. - /// - protected int clipSphereID; - - /// - protected override string Keyword - { - get { return "_CLIPPING_SPHERE"; } - } - - /// - protected override string ClippingSideProperty - { - get { return "_ClipSphereSide"; } - } - - /// - /// Renders a visual representation of the clipping primitive when selected. - /// - protected void OnDrawGizmosSelected() - { - if (enabled) - { - Gizmos.DrawWireSphere(transform.position, Radius); - } - } - - /// - protected override void Initialize() - { - base.Initialize(); - - clipSphereID = Shader.PropertyToID("_ClipSphere"); - } - - /// - protected override void UpdateShaderProperties(MaterialPropertyBlock materialPropertyBlock) - { - Vector3 position = transform.position; - Vector4 sphere = new Vector4(position.x, position.y, position.z, Radius); - materialPropertyBlock.SetVector(clipSphereID, sphere); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs.meta deleted file mode 100644 index 98c9d7c74..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ClippingSphere.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 43ca1ebfda2405e4ea7a8e5b645e274b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs deleted file mode 100644 index 37efd5b22..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Utility component to animate and visualize a light that can be used with - /// the "MixedRealityToolkit/Standard" shader "_HoverLight" feature. - /// - [ExecuteInEditMode] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Rendering/HoverLight.html")] - [AddComponentMenu("Scripts/MRTK/Core/HoverLight")] - public class HoverLight : MonoBehaviour - { - // The MRTK Standard shader supports two (2) hover lights by default, but will scale to support four (4) then ten (10) as - // more lights are added to the scene. Having many HoverLights illuminate a material will increase pixel shader instructions - // and will impact performance. Please profile light changes within your project. - private const int hoverLightCountLow = 2; - private const int hoverLightCountMedium = 4; - private const string hoverLightCountMediumName = "_HOVER_LIGHT_MEDIUM"; - private const int hoverLightCountHigh = 10; - private const string hoverLightCountHighName = "_HOVER_LIGHT_HIGH"; - private const int hoverLightDataSize = 2; - - private static List activeHoverLights = new List(hoverLightCountHigh); - private static Vector4[] hoverLightData = new Vector4[hoverLightDataSize * hoverLightCountHigh]; - private static int _HoverLightDataID; - private static int lastHoverLightUpdate = -1; - - [Tooltip("Specifies the radius of the HoverLight effect")] - [SerializeField] - [Range(0.0f, 1.0f)] - private float radius = 0.15f; - - /// - /// Specifies the Radius of the HoverLight effect - /// - public float Radius - { - get => radius; - set => radius = value; - } - - [Tooltip("Specifies the highlight color")] - [SerializeField] - private Color color = new Color(0.3f, 0.3f, 0.3f, 1.0f); - - /// - /// Specifies the highlight color - /// - public Color Color - { - get => color; - set => color = value; - } - - private void OnEnable() - { - AddHoverLight(this); - } - - private void OnDisable() - { - RemoveHoverLight(this); - UpdateHoverLights(true); - } - -#if UNITY_EDITOR - private void Update() - { - if (Application.isPlaying) - { - return; - } - - Initialize(); - UpdateHoverLights(); - } -#endif // UNITY_EDITOR - - private void LateUpdate() - { - UpdateHoverLights(); - } - - private void OnDrawGizmosSelected() - { - if (!enabled) - { - return; - } - - Gizmos.color = Color; - Gizmos.DrawWireSphere(transform.position, Radius); - Gizmos.DrawIcon(transform.position + Vector3.right * Radius, string.Empty, false); - Gizmos.DrawIcon(transform.position + Vector3.left * Radius, string.Empty, false); - Gizmos.DrawIcon(transform.position + Vector3.up * Radius, string.Empty, false); - Gizmos.DrawIcon(transform.position + Vector3.down * Radius, string.Empty, false); - Gizmos.DrawIcon(transform.position + Vector3.forward * Radius, string.Empty, false); - Gizmos.DrawIcon(transform.position + Vector3.back * Radius, string.Empty, false); - } - - private void AddHoverLight(HoverLight light) - { - if (activeHoverLights.Count == hoverLightCountLow) - { - Shader.EnableKeyword(hoverLightCountMediumName); - } - else if (activeHoverLights.Count == hoverLightCountMedium) - { - Shader.DisableKeyword(hoverLightCountMediumName); - Shader.EnableKeyword(hoverLightCountHighName); - } - else if (activeHoverLights.Count >= hoverLightCountHigh) - { - Debug.LogWarningFormat("Max hover light count {0} exceeded. {1} will not be considered by the MRTK Standard shader.", hoverLightCountHigh, light.gameObject.name); - } - - activeHoverLights.Add(light); - } - - private void RemoveHoverLight(HoverLight light) - { - activeHoverLights.Remove(light); - - if (activeHoverLights.Count == hoverLightCountLow) - { - Shader.DisableKeyword(hoverLightCountMediumName); - } - else if (activeHoverLights.Count == hoverLightCountMedium) - { - Shader.EnableKeyword(hoverLightCountMediumName); - Shader.DisableKeyword(hoverLightCountHighName); - } - } - - private void Initialize() - { - _HoverLightDataID = Shader.PropertyToID("_HoverLightData"); - } - - private void UpdateHoverLights(bool forceUpdate = false) - { - if (lastHoverLightUpdate == -1) - { - Initialize(); - } - - if (!forceUpdate && (Time.frameCount == lastHoverLightUpdate)) - { - return; - } - - for (int i = 0; i < hoverLightCountHigh; ++i) - { - HoverLight light = (i >= activeHoverLights.Count) ? null : activeHoverLights[i]; - int dataIndex = i * hoverLightDataSize; - - if (light) - { - hoverLightData[dataIndex] = new Vector4(light.transform.position.x, - light.transform.position.y, - light.transform.position.z, - 1.0f); - hoverLightData[dataIndex + 1] = new Vector4(light.Color.r, - light.Color.g, - light.Color.b, - 1.0f / Mathf.Clamp(light.Radius, 0.001f, 1.0f)); - } - else - { - hoverLightData[dataIndex] = Vector4.zero; - } - } - - Shader.SetGlobalVectorArray(_HoverLightDataID, hoverLightData); - - lastHoverLightUpdate = Time.frameCount; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs.meta deleted file mode 100644 index f1010f89c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/HoverLight.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9296b71443954db1b4571935a43e5266 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs deleted file mode 100644 index e6194aca1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Rendering; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Component which can be used to render an outline around a mesh renderer. Enabling this component introduces an additional render pass - /// of the object being outlined, but is designed to run performantly on mobile Mixed Reality devices and does not utilize any post processes. - /// This behavior is designed to be used in conjunction with the MRTK/Standard shader. Limitations of this effect include it not working well - /// on objects which are not watertight (or required to be two sided) and depth sorting issues can occur on overlapping objects. - /// - [RequireComponent(typeof(MeshRenderer))] - [AddComponentMenu("Scripts/MRTK/Core/MeshOutline")] - public class MeshOutline : BaseMeshOutline - { - private const string vertexExtrusionKeyword = "_VERTEX_EXTRUSION"; - private const string vertexExtrusionSmoothNormalsKeyword = "_VERTEX_EXTRUSION_SMOOTH_NORMALS"; - private const string vertexExtrusionValueName = "_VertexExtrusionValue"; - - private MeshRenderer meshRenderer = null; - private MaterialPropertyBlock propertyBlock = null; - private int vertexExtrusionValueID = 0; - private Material[] defaultMaterials = null; - private MeshSmoother createdMeshSmoother = null; - - #region MonoBehaviour Implementation - - /// - /// Gathers initial render state. - /// - private void Awake() - { - meshRenderer = GetComponent(); - propertyBlock = new MaterialPropertyBlock(); - vertexExtrusionValueID = Shader.PropertyToID(vertexExtrusionValueName); - defaultMaterials = meshRenderer.sharedMaterials; - } - - /// - /// Enables the outline. - /// - private void OnEnable() - { - ApplyOutlineMaterial(); - } - - /// - /// Resets the renderer materials to the default settings. - /// - private void OnDisable() - { - meshRenderer.materials = defaultMaterials; - } - - /// - /// Removes any components this component has created. - /// - private void OnDestroy() - { - Destroy(createdMeshSmoother); - } - - #endregion MonoBehaviour Implementation - - #region BaseMeshOutline Implementation - - /// - /// Prepares and applies the current outline material to the renderer. - /// - protected override void ApplyOutlineMaterial() - { - if (outlineMaterial != null && meshRenderer != null) - { - Debug.AssertFormat(outlineMaterial.IsKeywordEnabled(vertexExtrusionKeyword), - "The material \"{0}\" does not have vertex extrusion enabled, no outline will be rendered.", outlineMaterial.name); - - // Ensure that the outline material always renders before the default materials. - outlineMaterial.renderQueue = GetMinRenderQueue(defaultMaterials) - 1; - - // If smooth normals are requested, make sure the mesh has smooth normals. - if (outlineMaterial.IsKeywordEnabled(vertexExtrusionSmoothNormalsKeyword)) - { - var meshSmoother = (createdMeshSmoother == null) ? gameObject.GetComponent() : createdMeshSmoother; - - if (meshSmoother == null) - { - createdMeshSmoother = gameObject.AddComponent(); - meshSmoother = createdMeshSmoother; - } - - meshSmoother.SmoothNormals(); - } - - ApplyOutlineWidth(); - - // Add the outline material as another material pass. - var materials = new List(defaultMaterials); - materials.Add(outlineMaterial); - meshRenderer.materials = materials.ToArray(); - } - } - - /// - /// Updates the current vertex extrusion value used by the shader. - /// - protected override void ApplyOutlineWidth() - { - if (meshRenderer != null && propertyBlock != null) - { - meshRenderer.GetPropertyBlock(propertyBlock); - propertyBlock.SetFloat(vertexExtrusionValueName, outlineWidth); - meshRenderer.SetPropertyBlock(propertyBlock); - } - } - - #endregion BaseMeshOutline Implementation - - /// - /// Searches for the minimum render queue value in a list of materials. - /// - /// The list of materials to search. - /// The minimum render queue value. - private static int GetMinRenderQueue(Material[] materials) - { - var min = int.MaxValue; - - foreach (var material in materials) - { - if (material != null) - { - min = Mathf.Min(min, material.renderQueue); - } - } - - if (min == int.MaxValue) - { - min = (int)RenderQueue.Background; - } - - return min; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs.meta deleted file mode 100644 index 5a9d05e79..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutline.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fa162a1be707e7f4bb2c94f4fd6df84f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs deleted file mode 100644 index 73b3c3fe4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Component which can be used to render an outline around a hierarchy of mesh renderers using - /// the component. - /// - [AddComponentMenu("Scripts/MRTK/Core/MeshOutlineHierarchy")] - public class MeshOutlineHierarchy : BaseMeshOutline - { - private MeshOutline[] meshOutlines = null; - - #region MonoBehaviour Implementation - - /// - /// Creates a component on each child MeshRenderer. - /// - private void Awake() - { - MeshRenderer[] meshRenderers = GetComponentsInChildren(); - meshOutlines = new MeshOutline[meshRenderers.Length]; - - for (int i = 0; i < meshRenderers.Length; ++i) - { - var meshOutline = meshRenderers[i].gameObject.AddComponent(); - meshOutline.OutlineMaterial = outlineMaterial; - meshOutline.OutlineWidth = outlineWidth; - meshOutlines[i] = meshOutline; - } - } - - /// - /// Removes any components this component has created. - /// - private void OnDestroy() - { - foreach (var meshOutline in meshOutlines) - { - Destroy(meshOutline); - } - } - - #endregion MonoBehaviour Implementation - - #region BaseMeshOutline Implementation - - /// - /// Forwards the outlineMaterial to all children s. - /// - protected override void ApplyOutlineMaterial() - { - if (meshOutlines != null) - { - foreach (var meshOutline in meshOutlines) - { - if (meshOutline != null) - { - meshOutline.OutlineMaterial = outlineMaterial; - } - } - } - } - - /// - /// Forwards the outlineWidth to all children s. - /// - protected override void ApplyOutlineWidth() - { - if (meshOutlines != null) - { - foreach (var meshOutline in meshOutlines) - { - if (meshOutline != null) - { - meshOutline.OutlineWidth = outlineWidth; - } - } - } - } - - #endregion BaseMeshOutline Implementation - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs.meta deleted file mode 100644 index 291ebb249..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshOutlineHierarchy.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 94f5a225c7404f14199c10f7d78bea49 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs deleted file mode 100644 index 6fb9b0781..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs +++ /dev/null @@ -1,242 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Threading.Tasks; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Component which can be used to automatically generate smoothed normals on a mesh and pack - /// those normals into a UV set. Smoothed normals can be used for a variety of effects including - /// extruding disjoint meshes along a vertex normal. This behavior is designed to be used in conjunction - /// with the MRTK/Standard shader which assumes smoothed normals are packed into the 3rd UV set. - /// - [RequireComponent(typeof(MeshFilter))] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_MRTKStandardShader.html#mesh-outlines")] - [AddComponentMenu("Scripts/MRTK/Core/MeshSmoother")] - public class MeshSmoother : MonoBehaviour - { - private const int smoothNormalUVChannel = 2; - - [Tooltip("Should this component automatically smooth normals on awake?")] - [SerializeField] - private bool smoothNormalsOnAwake = false; - - private MeshFilter meshFilter = null; - - /// - /// Helper class to track mesh references. - /// - private class MeshReference - { - public Mesh Mesh; - private int referenceCount; - - public MeshReference(Mesh mesh) - { - Mesh = mesh; - referenceCount = 1; - } - - public void Increment() - { - ++referenceCount; - } - - public void Decrement() - { - --referenceCount; - } - - public bool IsReferenced() - { - return referenceCount > 0; - } - } - - private static Dictionary processedMeshes = new Dictionary(); - - /// - /// Performs normal smoothing on the current mesh filter associated with this component synchronously. - /// This method will not try and re-smooth meshes which have already been smoothed. - /// - public void SmoothNormals() - { - Mesh mesh; - - // No need to do any smoothing if this mesh has already been processed. - if (AcquirePreprocessedMesh(out mesh)) - { - return; - } - - var result = CalculateSmoothNormals(mesh.vertices, mesh.normals); - mesh.SetUVs(smoothNormalUVChannel, result); - } - - /// - /// Performs normal smoothing on the current mesh filter associated with this component asynchronously. - /// This method will not try and re-smooth meshes which have already been smoothed. - /// - /// A task which will complete once normal smoothing is finished. - public Task SmoothNormalsAsync() - { - Mesh mesh; - - // No need to do any smoothing if this mesh has already been processed. - if (AcquirePreprocessedMesh(out mesh)) - { - return Task.CompletedTask; - } - - // Create a copy of the vertices and normals and apply the smoothing in an async task. - var vertices = mesh.vertices; - var normals = mesh.normals; - var asyncTask = Task.Run(() => CalculateSmoothNormals(vertices, normals)); - - // Once the async task is complete, apply the smoothed normals to the mesh on the main thread. - return asyncTask.ContinueWith((i) => - { - mesh.SetUVs(smoothNormalUVChannel, i.Result); - }, TaskScheduler.FromCurrentSynchronizationContext()); - } - - #region MonoBehaviour Implementation - - /// - /// Applies smoothing asynchronously if specified by the inspector property. - /// - private void Awake() - { - meshFilter = GetComponent(); - - if (smoothNormalsOnAwake) - { - SmoothNormalsAsync(); - } - } - - /// - /// Clean up any meshes which were created if no longer referenced. - /// - private void OnDestroy() - { - MeshReference meshReference; - var sharedMesh = meshFilter.sharedMesh; - - if (sharedMesh != null && - processedMeshes.TryGetValue(sharedMesh, out meshReference)) - { - meshReference.Decrement(); - - if (!meshReference.IsReferenced()) - { - Destroy(meshReference.Mesh); - processedMeshes.Remove(sharedMesh); - } - } - } - - #endregion MonoBehaviour Implementation - - /// - /// Safely acquires a mesh for processing. Checks for meshes which have already been processed and increments reference counts. - /// - /// A reference to the mesh which was already processed or is ready to be processed. - /// True if the mesh was already processed, false otherwise. - private bool AcquirePreprocessedMesh(out Mesh mesh) - { - var sharedMesh = meshFilter.sharedMesh; - - MeshReference meshReference; - - // If this mesh has already been processed, apply the preprocessed mesh and increment the reference count. - if (sharedMesh != null && processedMeshes.TryGetValue(sharedMesh, out meshReference)) - { - meshReference.Increment(); - mesh = meshReference.Mesh; - meshFilter.mesh = mesh; - - return true; - } - - // Clone the mesh, and create a mesh reference which can be keyed off either the original mesh or cloned mesh. - mesh = meshFilter.mesh; - meshReference = new MeshReference(mesh); - processedMeshes[mesh] = meshReference; - - if (sharedMesh != null) - { - processedMeshes[sharedMesh] = meshReference; - } - - return false; - } - - /// - /// This method groups vertices in a mesh that share the same location in space then averages the normals of those vertices. - /// For example, if you imagine the 3 vertices that make up one corner of a cube. Normally there will be 3 normals facing in the direction - /// of each face that touches that corner. This method will take those 3 normals and average them into a normal that points in the - /// direction from the center of the cube to the corner of the cube. - /// - /// A list of vertices that represent a mesh. - /// A list of normals that correspond to each vertex passed in via the vertices param. - /// A list of normals which are smoothed, or averaged, based on share vertex position. - private static List CalculateSmoothNormals(Vector3[] vertices, Vector3[] normals) - { - var watch = System.Diagnostics.Stopwatch.StartNew(); - - // Group all vertices that share the same location in space. - var groupedVerticies = new Dictionary>>(); - - for (int i = 0; i < vertices.Length; ++i) - { - var vertex = vertices[i]; - List> group; - - if (!groupedVerticies.TryGetValue(vertex, out group)) - { - group = new List>(); - groupedVerticies[vertex] = group; - } - - group.Add(new KeyValuePair(i, vertex)); - } - - var smoothNormals = new List(normals); - - // If we don't hit the degenerate case of each vertex is its own group (no vertices shared a location), average the normals of each group. - if (groupedVerticies.Count != vertices.Length) - { - foreach (var group in groupedVerticies) - { - var smoothingGroup = group.Value; - - // No need to smooth a group of one. - if (smoothingGroup.Count != 1) - { - var smoothedNormal = Vector3.zero; - - foreach (var vertex in smoothingGroup) - { - smoothedNormal += normals[vertex.Key]; - } - - smoothedNormal.Normalize(); - - foreach (var vertex in smoothingGroup) - { - smoothNormals[vertex.Key] = smoothedNormal; - } - } - } - } - - Debug.LogFormat("CalculateSmoothNormals took {0} ms on {1} vertices.", watch.ElapsedMilliseconds, vertices.Length); - - return smoothNormals; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs.meta deleted file mode 100644 index a3cfaedf4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/MeshSmoother.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ddd70ddb68d07e9488e40945640e5ca3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs deleted file mode 100644 index 5b41dc905..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs +++ /dev/null @@ -1,316 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Utility component to animate and visualize a light that can be used with - /// the "MixedRealityToolkit/Standard" shader "_ProximityLight" feature. - /// - [ExecuteInEditMode] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Rendering/ProximityLight.html")] - [AddComponentMenu("Scripts/MRTK/Core/ProximityLight")] - public class ProximityLight : MonoBehaviour - { - // Two proximity lights are supported at this time. - private const int proximityLightCount = 2; - private const int proximityLightDataSize = 6; - private static List activeProximityLights = new List(proximityLightCount); - private static Vector4[] proximityLightData = new Vector4[proximityLightCount * proximityLightDataSize]; - private static int proximityLightDataID; - private static int lastProximityLightUpdate = -1; - - [Serializable] - public class LightSettings - { - /// - /// Specifies the radius of the ProximityLight effect when near to a surface. - /// - public float NearRadius - { - get { return nearRadius; } - set { nearRadius = value; } - } - - [Header("Proximity Settings")] - [Tooltip("Specifies the radius of the ProximityLight effect when near to a surface.")] - [SerializeField] - [Range(0.0f, 1.0f)] - private float nearRadius = 0.05f; - - /// - /// Specifies the radius of the ProximityLight effect when far from a surface. - /// - public float FarRadius - { - get { return farRadius; } - set { farRadius = value; } - } - - [Tooltip("Specifies the radius of the ProximityLight effect when far from a surface.")] - [SerializeField] - [Range(0.0f, 1.0f)] - private float farRadius = 0.2f; - - /// - /// Specifies the distance a ProximityLight must be from a surface to be considered near. - /// - public float NearDistance - { - get { return nearDistance; } - set { nearDistance = value; } - } - - [Tooltip("Specifies the distance a ProximityLight must be from a surface to be considered near.")] - [SerializeField] - [Range(0.0f, 1.0f)] - private float nearDistance = 0.02f; - - /// - /// When a ProximityLight is near, the smallest size percentage from the far size it can shrink to. - /// - public float MinNearSizePercentage - { - get { return minNearSizePercentage; } - set { minNearSizePercentage = value; } - } - - [Tooltip("When a ProximityLight is near, the smallest size percentage from the far size it can shrink to.")] - [SerializeField] - [Range(0.0f, 1.0f)] - private float minNearSizePercentage = 0.35f; - - /// - /// The color of the ProximityLight gradient at the center (RGB) and (A) is gradient extent. - /// - public Color CenterColor - { - get { return centerColor; } - set { centerColor = value; } - } - - [Header("Color Settings")] - [Tooltip("The color of the ProximityLight gradient at the center (RGB) and (A) is gradient extent.")] - [ColorUsageAttribute(true, true)] - [SerializeField] - private Color centerColor = new Color(54.0f / 255.0f, 142.0f / 255.0f, 250.0f / 255.0f, 0.0f / 255.0f); - - /// - /// The color of the ProximityLight gradient at the center (RGB) and (A) is gradient extent. - /// - public Color MiddleColor - { - get { return middleColor; } - set { middleColor = value; } - } - - [Tooltip("The color of the ProximityLight gradient at the middle (RGB) and (A) is gradient extent.")] - [SerializeField] - [ColorUsageAttribute(true, true)] - private Color middleColor = new Color(47.0f / 255.0f, 132.0f / 255.0f, 255.0f / 255.0f, 51.0f / 255.0f); - - /// - /// The color of the ProximityLight gradient at the center (RGB) and (A) is gradient extent. - /// - public Color OuterColor - { - get { return outerColor; } - set { outerColor = value; } - } - - [Tooltip("The color of the ProximityLight gradient at the outer (RGB) and (A) is gradient extent.")] - [SerializeField] - [ColorUsageAttribute(true, true)] - private Color outerColor = new Color((82.0f * 3.0f) / 255.0f, (31.0f * 3.0f) / 255.0f, (191.0f * 3.0f) / 255.0f, 255.0f / 255.0f); - } - - public LightSettings Settings - { - get { return settings; } - set { settings = value; } - } - - [SerializeField] - private LightSettings settings = new LightSettings(); - - private float pulseTime; - private float pulseFade; - - /// - /// Initiates a pulse, if one is not already occurring, which simulates a user touching a surface. - /// - /// How long in seconds should the pulse animate over. - /// At what point during the pulseDuration should the pulse begin to fade out as a percentage. Range should be [0, 1]. - /// The speed to fade in and out. - public void Pulse(float pulseDuration = 0.2f, float fadeBegin = 0.8f, float fadeSpeed = 10.0f) - { - if (pulseTime <= 0.0f) - { - StartCoroutine(PulseRoutine(pulseDuration, fadeBegin, fadeSpeed)); - } - } - - private void OnEnable() - { - AddProximityLight(this); - } - - private void OnDisable() - { - RemoveProximityLight(this); - UpdateProximityLights(true); - } - -#if UNITY_EDITOR - private void Update() - { - if (Application.isPlaying) - { - return; - } - - Initialize(); - UpdateProximityLights(); - } -#endif // UNITY_EDITOR - - private void LateUpdate() - { - UpdateProximityLights(); - } - - private void OnDrawGizmosSelected() - { - if (!enabled) - { - return; - } - - Vector3[] directions = new Vector3[] { Vector3.right, Vector3.left, Vector3.up, Vector3.down, Vector3.forward, Vector3.back }; - - Gizmos.color = new Color(Settings.CenterColor.r, Settings.CenterColor.g, Settings.CenterColor.b); - Gizmos.DrawWireSphere(transform.position, Settings.NearRadius); - - foreach (Vector3 direction in directions) - { - Gizmos.DrawIcon(transform.position + direction * Settings.NearRadius, string.Empty, false); - } - - Gizmos.color = new Color(Settings.OuterColor.r, Settings.OuterColor.g, Settings.OuterColor.b); - Gizmos.DrawWireSphere(transform.position, Settings.FarRadius); - - foreach (Vector3 direction in directions) - { - Gizmos.DrawIcon(transform.position + direction * Settings.FarRadius, string.Empty, false); - } - } - - private static void AddProximityLight(ProximityLight light) - { - if (activeProximityLights.Count >= proximityLightCount) - { - Debug.LogWarningFormat("Max proximity light count ({0}) exceeded.", proximityLightCount); - } - - activeProximityLights.Add(light); - } - - private static void RemoveProximityLight(ProximityLight light) - { - activeProximityLights.Remove(light); - } - - private static void Initialize() - { - proximityLightDataID = Shader.PropertyToID("_ProximityLightData"); - } - - private static void UpdateProximityLights(bool forceUpdate = false) - { - if (lastProximityLightUpdate == -1) - { - Initialize(); - } - - if (!forceUpdate && (Time.frameCount == lastProximityLightUpdate)) - { - return; - } - - for (int i = 0; i < proximityLightCount; ++i) - { - ProximityLight light = (i >= activeProximityLights.Count) ? null : activeProximityLights[i]; - int dataIndex = i * proximityLightDataSize; - - if (light) - { - proximityLightData[dataIndex] = new Vector4(light.transform.position.x, - light.transform.position.y, - light.transform.position.z, - 1.0f); - float pulseScaler = 1.0f + light.pulseTime; - proximityLightData[dataIndex + 1] = new Vector4(light.Settings.NearRadius * pulseScaler, - 1.0f / Mathf.Clamp(light.Settings.FarRadius * pulseScaler, 0.001f, 1.0f), - 1.0f / Mathf.Clamp(light.Settings.NearDistance * pulseScaler, 0.001f, 1.0f), - Mathf.Clamp01(light.Settings.MinNearSizePercentage)); - proximityLightData[dataIndex + 2] = new Vector4(light.Settings.NearDistance * light.pulseTime, - Mathf.Clamp01(1.0f - light.pulseFade), - 0.0f, - 0.0f); - proximityLightData[dataIndex + 3] = light.Settings.CenterColor; - proximityLightData[dataIndex + 4] = light.Settings.MiddleColor; - proximityLightData[dataIndex + 5] = light.Settings.OuterColor; - } - else - { - proximityLightData[dataIndex] = Vector4.zero; - } - } - - Shader.SetGlobalVectorArray(proximityLightDataID, proximityLightData); - - lastProximityLightUpdate = Time.frameCount; - } - - private IEnumerator PulseRoutine(float pulseDuration, float fadeBegin, float fadeSpeed) - { - float pulseTimer = 0.0f; - - while (pulseTimer < pulseDuration) - { - pulseTimer += Time.deltaTime; - pulseTime = pulseTimer / pulseDuration; - - if (pulseTime > fadeBegin) - { - pulseFade += Time.deltaTime; - } - - yield return null; - } - - while (pulseFade < 1.0f) - { - pulseFade += Time.deltaTime * fadeSpeed; - - yield return null; - } - - pulseTime = 0.0f; - - while (pulseFade > 0.0f) - { - pulseFade -= Time.deltaTime * fadeSpeed; - - yield return null; - } - - pulseFade = 0.0f; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs.meta deleted file mode 100644 index cba82e731..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/ProximityLight.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 61e55d5030302974a867024ab486d306 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs deleted file mode 100644 index 64c485e4c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Mixed Reality standard shader utility class with commonly used constants, types and convenience methods. - /// - public static class StandardShaderUtility - { - /// - /// The string name of the Mixed Reality Toolkit/Standard shader which can be used to identify a shader or for shader lookups. - /// - public static readonly string MrtkStandardShaderName = "Mixed Reality Toolkit/Standard"; - - /// - /// Returns an instance of the Mixed Reality Toolkit/Standard shader. - /// - public static Shader MrtkStandardShader - { - get - { - if (mrtkStandardShader == null) - { - mrtkStandardShader = Shader.Find(MrtkStandardShaderName); - } - - return mrtkStandardShader; - } - - private set - { - mrtkStandardShader = value; - } - } - - private static Shader mrtkStandardShader = null; - - /// - /// Checks if a material is using the Mixed Reality Toolkit/Standard shader. - /// - /// The material to check. - /// True if the material is using the Mixed Reality Toolkit/Standard shader - public static bool IsUsingMrtkStandardShader(Material material) - { - return IsMrtkStandardShader((material != null) ? material.shader : null); - } - - /// - /// Checks if a shader is the Mixed Reality Toolkit/Standard shader. - /// - /// The shader to check. - /// True if the shader is the Mixed Reality Toolkit/Standard shader. - public static bool IsMrtkStandardShader(Shader shader) - { - return shader == MrtkStandardShader; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs.meta deleted file mode 100644 index f9a54133a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/StandardShader/StandardShaderUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aeb5932b3cd77524683067396d374933 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs b/AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs deleted file mode 100644 index 88ba60684..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Utility class to store subclasses of particular base class keys - /// Reloads between play mode/edit mode and after re-compile of scripts - /// - public static class TypeCacheUtility - { - private static Dictionary> cache = new Dictionary>(); - - /// - /// Get all subclass types of base class type T - /// Does not work with .NET scripting backend - /// - /// base class of type T - /// list of subclass types for base class T - public static List GetSubClasses() - { - return GetSubClasses(typeof(T)); - } - - /// - /// Get all subclass types of base class type parameter - /// Does not work with .NET scripting backend - /// - /// base class type - /// list of subclass types for base class type parameter - public static List GetSubClasses(Type baseClassType) - { -#if !NETFX_CORE - if (baseClassType == null) { return null; } - - if (!cache.ContainsKey(baseClassType)) - { - cache[baseClassType] = baseClassType.GetAllSubClassesOf(); - } - - return cache[baseClassType]; -#else - return null; -#endif - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs.meta deleted file mode 100644 index 77e1b4ef3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/TypeCacheUtility.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1a0ed59855c05fd429b3378fa07128c9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest.meta deleted file mode 100644 index 9404a4d8c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: c901ebe1fde4468ea7ad35a2769d597d -folderAsset: yes -timeCreated: 1522521931 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs deleted file mode 100644 index 7baff3cb2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Response to a REST Call. - /// - public struct Response - { - /// - /// Was the REST call successful? - /// - public bool Successful { get; } - - /// - /// Response body from the resource. - /// - public string ResponseBody => responseBody ?? (responseBody = responseBodyAction?.Invoke()); - private string responseBody; - private System.Func responseBodyAction; - - /// - /// Response data from the resource. - /// - public byte[] ResponseData => responseData ?? (responseData = responseDataAction?.Invoke()); - private byte[] responseData; - private System.Func responseDataAction; - - /// - /// Response code from the resource. - /// - public long ResponseCode { get; } - - /// - /// Constructor. - /// - public Response(bool successful, string responseBody, byte[] responseData, long responseCode) - { - Successful = successful; - responseBodyAction = null; - this.responseBody = responseBody; - responseDataAction = null; - this.responseData = responseData; - ResponseCode = responseCode; - } - - public Response(bool successful, System.Func responseBodyAction, System.Func responseDataAction, long responseCode) - { - Successful = successful; - this.responseBodyAction = responseBodyAction; - responseBody = null; - this.responseDataAction = responseDataAction; - responseData = null; - ResponseCode = responseCode; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs.meta deleted file mode 100644 index 9d01b3114..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 468588176f7742ed9855e100f98169a2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs deleted file mode 100644 index 4f6398736..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using UnityEngine; -using UnityEngine.Networking; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - - /// - /// REST Class for CRUD Transactions. - /// - public static class Rest - { - #region Authentication - - /// - /// Gets the Basic auth header. - /// - /// The Username. - /// The password. - /// The Basic authorization header encoded to base 64. - public static string GetBasicAuthentication(string username, string password) - { - return $"Basic {Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes($"{username}:{password}"))}"; - } - - /// - /// Gets the Bearer auth header. - /// - /// OAuth Token to be used. - /// The Bearer authorization header. - public static string GetBearerOAuthToken(string authToken) - { - return $"Bearer {authToken}"; - } - - #endregion Authentication - - #region GET - - /// - /// Rest GET. - /// - /// Finalized Endpoint Query with parameters. - /// Optional header information for the request. - /// Optional time in seconds before request expires. - /// Optional DownloadHandler for the request. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task GetAsync(string query, Dictionary headers = null, int timeout = -1, DownloadHandler downloadHandler = null, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Get(query)) - { - if (downloadHandler != null) - { - webRequest.downloadHandler = downloadHandler; - } - - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - #endregion GET - - #region POST - - /// - /// Rest POST. - /// - /// Finalized Endpoint Query with parameters. - /// Optional header information for the request. - /// Optional time in seconds before request expires. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task PostAsync(string query, Dictionary headers = null, int timeout = -1, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Post(query, null as string)) - { - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - /// - /// Rest POST. - /// - /// Finalized Endpoint Query with parameters. - /// Form Data. - /// Optional header information for the request. - /// Optional time in seconds before request expires. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task PostAsync(string query, WWWForm formData, Dictionary headers = null, int timeout = -1, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Post(query, formData)) - { - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - /// - /// Rest POST. - /// - /// Finalized Endpoint Query with parameters. - /// JSON data for the request. - /// Optional header information for the request. - /// Optional time in seconds before request expires. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task PostAsync(string query, string jsonData, Dictionary headers = null, int timeout = -1, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Post(query, "POST")) - { - var data = new UTF8Encoding().GetBytes(jsonData); - webRequest.uploadHandler = new UploadHandlerRaw(data); - webRequest.downloadHandler = new DownloadHandlerBuffer(); - webRequest.SetRequestHeader("Content-Type", "application/json"); - webRequest.SetRequestHeader("Accept", "application/json"); - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - /// - /// Rest POST. - /// - /// Finalized Endpoint Query with parameters. - /// Optional header information for the request. - /// The raw data to post. - /// Optional time in seconds before request expires. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task PostAsync(string query, byte[] bodyData, Dictionary headers = null, int timeout = -1, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Post(query, "POST")) - { - webRequest.uploadHandler = new UploadHandlerRaw(bodyData); - webRequest.downloadHandler = new DownloadHandlerBuffer(); - webRequest.SetRequestHeader("Content-Type", "application/octet-stream"); - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - #endregion POST - - #region PUT - - /// - /// Rest PUT. - /// - /// Finalized Endpoint Query with parameters. - /// Data to be submitted. - /// Optional header information for the request. - /// Optional time in seconds before request expires. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task PutAsync(string query, string jsonData, Dictionary headers = null, int timeout = -1, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Put(query, jsonData)) - { - webRequest.SetRequestHeader("Content-Type", "application/json"); - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - /// - /// Rest PUT. - /// - /// Finalized Endpoint Query with parameters. - /// Data to be submitted. - /// Optional header information for the request. - /// Optional time in seconds before request expires. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task PutAsync(string query, byte[] bodyData, Dictionary headers = null, int timeout = -1, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Put(query, bodyData)) - { - webRequest.SetRequestHeader("Content-Type", "application/octet-stream"); - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - #endregion PUT - - #region DELETE - - /// - /// Rest DELETE. - /// - /// Finalized Endpoint Query with parameters. - /// Optional header information for the request. - /// Optional time in seconds before request expires. - /// Optional bool. If its true, response data will be read from web request download handler. - /// Optional certificate handler for custom certificate verification - /// Optional bool. If true and is not null, will be disposed, when the underlying UnityWebRequest is disposed. - /// The response data. - public static async Task DeleteAsync(string query, Dictionary headers = null, int timeout = -1, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - using (var webRequest = UnityWebRequest.Delete(query)) - { - return await ProcessRequestAsync(webRequest, timeout, headers, readResponseData, certificateHandler, disposeCertificateHandlerOnDispose); - } - } - - #endregion DELETE - - private static async Task ProcessRequestAsync(UnityWebRequest webRequest, int timeout, Dictionary headers = null, bool readResponseData = false, CertificateHandler certificateHandler = null, bool disposeCertificateHandlerOnDispose = true) - { - if (timeout > 0) - { - webRequest.timeout = timeout; - } - - if (headers != null) - { - foreach (var header in headers) - { - webRequest.SetRequestHeader(header.Key, header.Value); - } - } - - // HACK: Workaround for extra quotes around boundary. - if (webRequest.method == UnityWebRequest.kHttpVerbPOST || - webRequest.method == UnityWebRequest.kHttpVerbPUT) - { - string contentType = webRequest.GetRequestHeader("Content-Type"); - if (contentType != null) - { - contentType = contentType.Replace("\"", ""); - webRequest.SetRequestHeader("Content-Type", contentType); - } - } - - webRequest.certificateHandler = certificateHandler; - webRequest.disposeCertificateHandlerOnDispose = disposeCertificateHandlerOnDispose; - await webRequest.SendWebRequest(); - -#if UNITY_2020_1_OR_NEWER - if (webRequest.result == UnityWebRequest.Result.ConnectionError || webRequest.result == UnityWebRequest.Result.ProtocolError) -#else - if (webRequest.isNetworkError || webRequest.isHttpError) -#endif // UNITY_2020_1_OR_NEWER - { - if (webRequest.responseCode == 401) { return new Response(false, "Invalid Credentials", null, webRequest.responseCode); } - - if (webRequest.GetResponseHeaders() == null) - { - return new Response(false, "Device Unavailable", null, webRequest.responseCode); - } - - string responseHeaders = webRequest.GetResponseHeaders().Aggregate(string.Empty, (current, header) => $"\n{header.Key}: {header.Value}"); - string downloadHandlerText = webRequest.downloadHandler?.text; - Debug.LogError($"REST Error: {webRequest.responseCode}\n{downloadHandlerText}{responseHeaders}"); - return new Response(false, $"{responseHeaders}\n{downloadHandlerText}", webRequest.downloadHandler?.data, webRequest.responseCode); - } - if (readResponseData) - { - return new Response(true, webRequest.downloadHandler?.text, webRequest.downloadHandler?.data, webRequest.responseCode); - } - else // This option can be used only if action will be triggered in the same scope as the webrequest - { - return new Response(true, () => webRequest.downloadHandler?.text, () => webRequest.downloadHandler?.data, webRequest.responseCode); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs.meta deleted file mode 100644 index 0dda9ffe9..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 895d171ec2d04856bca6dea7e7e45a01 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs deleted file mode 100644 index a0f0a105b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using UnityEngine; - -#if WINDOWS_UWP -using Windows.Foundation.Metadata; -#elif (UNITY_WSA && DOTNETWINRT_PRESENT) -using Microsoft.Windows.Foundation.Metadata; -#endif // WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.Windows.Utilities -{ - /// - /// Helper class for determining if a Windows API contract is available. - /// - /// See https://docs.microsoft.com/uwp/extension-sdks/windows-universal-sdk - /// for a full list of contracts. - public static class WindowsApiChecker - { - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] - public static void CheckApiContracts() - { - // Disable the obsolete warning to enable setting the properties for legacy code. -#pragma warning disable 0618 -#if WINDOWS_UWP - UniversalApiContractV8_IsAvailable = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 8); - UniversalApiContractV7_IsAvailable = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 7); - UniversalApiContractV6_IsAvailable = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 6); - UniversalApiContractV5_IsAvailable = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5); - UniversalApiContractV4_IsAvailable = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4); - UniversalApiContractV3_IsAvailable = ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 3); -#else - UniversalApiContractV8_IsAvailable = false; - UniversalApiContractV7_IsAvailable = false; - UniversalApiContractV6_IsAvailable = false; - UniversalApiContractV5_IsAvailable = false; - UniversalApiContractV4_IsAvailable = false; - UniversalApiContractV3_IsAvailable = false; -#endif // WINDOWS_UWP -#pragma warning restore 0618 - } - - /// - /// Checks to see if the requested method is present on the current platform. - /// - /// The namespace (ex: "Windows.UI.Input.Spatial") containing the class. - /// The name of the class containing the method (ex: "SpatialInteractionMananger"). - /// The name of the method (ex: "IsSourceKindSupported"). - /// True if the method is available and can be called. Otherwise, false. - public static bool IsMethodAvailable( - string namespaceName, - string className, - string methodName) - { -#if WINDOWS_UWP || (UNITY_WSA && DOTNETWINRT_PRESENT) - return ApiInformation.IsMethodPresent($"{namespaceName}.{className}", methodName); -#else - return false; -#endif // WINDOWS_UWP || (UNITY_WSA && DOTNETWINRT_PRESENT) - } - - /// - /// Checks to see if the requested property is present on the current platform. - /// - /// The namespace (ex: "Windows.UI.Input.Spatial") containing the class. - /// The name of the class containing the method (ex: "SpatialPointerPose"). - /// The name of the method (ex: "Eyes"). - /// True if the property is available and can be called. Otherwise, false. - public static bool IsPropertyAvailable( - string namespaceName, - string className, - string propertyName) - { -#if WINDOWS_UWP || (UNITY_WSA && DOTNETWINRT_PRESENT) - return ApiInformation.IsPropertyPresent($"{namespaceName}.{className}", propertyName); -#else - return false; -#endif // WINDOWS_UWP || (UNITY_WSA && DOTNETWINRT_PRESENT) - } - - /// - /// Checks to see if the requested type is present on the current platform. - /// - /// The namespace (ex: "Windows.UI.Input.Spatial") containing the class. - /// The name of the class containing the method (ex: "SpatialPointerPose"). - /// True if the type is available and can be called. Otherwise, false. - public static bool IsTypeAvailable( - string namespaceName, - string typeName) - { -#if WINDOWS_UWP || (UNITY_WSA && DOTNETWINRT_PRESENT) - return ApiInformation.IsTypePresent($"{namespaceName}.{typeName}"); -#else - return false; -#endif // UNITY_WSA && WINDOWS_UWP || (UNITY_WSA && DOTNETWINRT_PRESENT) - } - - /// - /// Is the Universal API Contract v8.0 Available? - /// - [Obsolete("The UniversalApiContractV8_IsAvailable property is obsolete and will be removed from a future version of MRTK. Please use IsMethodAvailable(), IsPropertyAvailable() or IsTypeAvailable().")] - public static bool UniversalApiContractV8_IsAvailable { get; private set; } - - /// - /// Is the Universal API Contract v7.0 Available? - /// - [Obsolete("The UniversalApiContractV7_IsAvailable property is obsolete and will be removed from a future version of MRTK. Please use IsMethodAvailable(), IsPropertyAvailable() or IsTypeAvailable().")] - public static bool UniversalApiContractV7_IsAvailable { get; private set; } - - /// - /// Is the Universal API Contract v6.0 Available? - /// - [Obsolete("The UniversalApiContractV6_IsAvailable property is obsolete and will be removed from a future version of MRTK. Please use IsMethodAvailable(), IsPropertyAvailable() or IsTypeAvailable().")] - public static bool UniversalApiContractV6_IsAvailable { get; private set; } - - /// - /// Is the Universal API Contract v5.0 Available? - /// - [Obsolete("The UniversalApiContractV5_IsAvailable property is obsolete and will be removed from a future version of MRTK. Please use IsMethodAvailable(), IsPropertyAvailable() or IsTypeAvailable().")] - public static bool UniversalApiContractV5_IsAvailable { get; private set; } - - /// - /// Is the Universal API Contract v4.0 Available? - /// - [Obsolete("The UniversalApiContractV4_IsAvailable property is obsolete and will be removed from a future version of MRTK. Please use IsMethodAvailable(), IsPropertyAvailable() or IsTypeAvailable().")] - public static bool UniversalApiContractV4_IsAvailable { get; private set; } - - /// - /// Is the Universal API Contract v3.0 Available? - /// - [Obsolete("The UniversalApiContractV3_IsAvailable property is obsolete and will be removed from a future version of MRTK. Please use IsMethodAvailable(), IsPropertyAvailable() or IsTypeAvailable().")] - public static bool UniversalApiContractV3_IsAvailable { get; private set; } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs.meta deleted file mode 100644 index 5a92997fb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsApiChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 780724c394be4e3bbffda739b96fe89e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal.meta deleted file mode 100644 index 1457682f0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 4142e25125164e2b8e98afab727dd635 -folderAsset: yes -timeCreated: 1522682697 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures.meta deleted file mode 100644 index 485ab6906..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: e31d8e29c7d243139a6737e3b7924098 -folderAsset: yes -timeCreated: 1511727687 -licenseType: Pro -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs deleted file mode 100644 index cf7d1a153..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class ActivePowerSchemeInfo - { - public string ActivePowerScheme; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs.meta deleted file mode 100644 index 0931e13ba..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ActivePowerSchemeInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 02f242d8f13f467784a22a5967a0c8cd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs deleted file mode 100644 index 6d8082fda..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class AdapterInfo - { - public string Description; - public string HardwareAddress; - public int Index; - public string Name; - public string Type; - public DHCPInfo DHCP; - public IpAddressInfo[] Gateways; - public IpAddressInfo[] IpAddresses; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs.meta deleted file mode 100644 index 1e9f98309..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AdapterInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 423daaaf9d424693a60de4857c2ecdf3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs deleted file mode 100644 index 0fcfab1da..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class ApplicationInfo - { - public string Name; - public string PackageFamilyName; - public string PackageFullName; - public int PackageOrigin; - public string PackageRelativeId; - public string Publisher; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs.meta deleted file mode 100644 index 60c0760cc..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ApplicationInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6dde359d303248a2b2b7f78357a58373 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs deleted file mode 100644 index 58b950d43..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class AvailableWiFiNetworks - { - public WirelessNetworkInfo[] AvailableNetworks; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs.meta deleted file mode 100644 index f2d83d896..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/AvailableWiFiNetworks.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ee4be70cc50240428cbace2092b5abff -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs deleted file mode 100644 index 31a1d81f3..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class BatteryInfo - { - /// - /// (0 | 1) - /// - public int AcOnline; - /// - /// (0 | 1) - /// - public int BatteryPresent; - /// - /// (0 | 1) - /// - public int Charging; - public int DefaultAlert1; - public int DefaultAlert2; - public int EstimatedTime; - public int MaximumCapacity; - public int RemainingCapacity; - - public bool IsCharging => AcOnline != 0; - - [NonSerialized] - private float percentRemaining = 0f; - public float PercentRemaining - { - get - { - if (percentRemaining > 0f) - { - return percentRemaining; - } - - return percentRemaining = RemainingCapacity / (float)MaximumCapacity; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs.meta deleted file mode 100644 index 36261e02d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/BatteryInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 540ab0c9ae2047d791e2e50bc546a801 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs deleted file mode 100644 index 4858d4b7c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class DHCPInfo - { - public int LeaseExpires; - public int LeaseObtained; - public IpAddressInfo Address; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs.meta deleted file mode 100644 index 35b0d5a8c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DHCPInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f8d36bc9c8c64789957ed7d50ec5e3cb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs deleted file mode 100644 index 7cbf9d536..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class DeviceInfo - { - /// - /// Constant string for local machine target - /// - public const string LocalMachine = "Local Machine"; - - /// - /// Constant string for local machine IP Address - /// - public const string LocalIPAddress = "127.0.0.1"; - - // These fields are public to be serialized by the Unity Json Serializer Utility. - #region Json Serialized Fields - - /// - /// The IP Address of the device. - /// - public string IP; - - /// - /// The user name of the device. - /// - public string User; - - /// - /// The password for the device. - /// - public string Password; - - /// - /// The machine name of the device. - /// - public string MachineName; - - #endregion Json Serialized Fields - - // These fields are public but NonSerialized because we don't want them serialized by the - // Json Utility, but we also don't want their values overwritten when deserialization happens. - #region Json Overwritten Fields - - /// - /// The current CSRF Token for the device. - /// - [NonSerialized] - public string CsrfToken; - - private Dictionary authorization; - - #endregion Json Overwritten Fields - - // Properties are not serialized by the Unity JSON serializer, but become null whenever deserialized. - #region Properties - - /// - /// The current authorization for the device. - /// - public Dictionary Authorization => authorization ?? (authorization = new Dictionary { { "Authorization", Microsoft.MixedReality.Toolkit.Utilities.Rest.GetBasicAuthentication(User, Password) } }); - - /// - /// The last known battery state of the device. - /// - public BatteryInfo BatteryInfo { get; set; } - - /// - /// The last known power state of the device. - /// - public PowerStateInfo PowerState { get; set; } - - #endregion Properties - - /// - /// Constructor. - /// - public DeviceInfo(string ip, string user, string password, string machineName = "") - { - IP = ip; - User = user; - Password = password; - MachineName = machineName; - CsrfToken = string.Empty; - } - - /// - public override string ToString() - { - return IP + (string.IsNullOrEmpty(MachineName) ? string.Empty : $" [{MachineName}]"); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs.meta deleted file mode 100644 index e0a870de2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 17a8133aac184d7e94acd854509f3392 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs deleted file mode 100644 index 0f5230a0d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class DeviceOsInfo - { - public string ComputerName; - public string OsEdition; - public int OsEditionId; - public string OsVersion; - public string Platform; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs.meta deleted file mode 100644 index a5eb0ff2e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DeviceOsInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 59053f20aed44fdba7ff262a834928f0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs deleted file mode 100644 index c2695157f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - /// - /// Utility class to store a list of device connection info and track current one in use or selected - /// - [Serializable] - public class DevicePortalConnections - { - /// - /// List of device endpoints being tracked including ip address, authorization info, etc. - /// - public List Connections = new List(0); - - /// - /// Current or last targeted connection index in connection list - /// - public int CurrentConnectionIndex = 0; - - /// - /// Empty constructor - /// - public DevicePortalConnections() { } - - /// - /// Initialize - /// - public DevicePortalConnections(DeviceInfo deviceInfo) - { - Connections.Add(deviceInfo); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs.meta deleted file mode 100644 index 22e6523d1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/DevicePortalConnections.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 375390dbf3c14d12844aa39bf3d3aa5c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs deleted file mode 100644 index 4d72f3264..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public struct FileInfo - { - /// - /// Folder under the requested known folder. - /// - public string CurrentDir; - public int DateCreated; - /// - /// In bytes. - /// - public int FileSize; - public string Id; - public string Name; - /// - /// Present if this item is a folder, this is the name of the folder. - /// - public string SubPath; - /// - /// Folder==16 - /// File==32 - /// - public int Type; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs.meta deleted file mode 100644 index c6fd2a491..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 85dc6a7d68c2446f9eeaf72f811e9be0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs deleted file mode 100644 index 8906d410a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class FileList - { - public FileInfo[] Items; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs.meta deleted file mode 100644 index 957c9334d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/FileList.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 27a0906bd2a646cea8396b54189a6001 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs deleted file mode 100644 index 29c2bc793..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class InstallStatus - { - public int Code; - public string CodeText; - public string Reason; - public bool Success; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs.meta deleted file mode 100644 index f22fdb0f0..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstallStatus.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 058814ae72574fe7b22d14da21b64cdb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs deleted file mode 100644 index bd6c2866e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class InstalledApps - { - public ApplicationInfo[] InstalledPackages; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs.meta deleted file mode 100644 index b930986d6..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InstalledApps.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 366754a2c7974231801a8125821fb1d2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs deleted file mode 100644 index ac731312e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class InterfaceInfo - { - public string Description; - public string GUID; - public int Index; - public NetworkProfileInfo[] ProfilesList; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs.meta deleted file mode 100644 index cc62f0628..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/InterfaceInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2cd643689ac44398ba780e568a8fd274 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs deleted file mode 100644 index cb889cef4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class IpAddressInfo - { - public string IpAddress; - public string Mask; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs.meta deleted file mode 100644 index b5f60c4ae..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpAddressInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1252a6778c3046e3ad1012594d0e3031 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs deleted file mode 100644 index a319f79e1..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class IpConfigInfo - { - public AdapterInfo[] Adapters; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs.meta deleted file mode 100644 index 55ac34d0a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/IpConfigInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2b1c86a00fff4b2f86b5fe36ab228e2a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs deleted file mode 100644 index 426a36ec5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class MachineName - { - public string ComputerName; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs.meta deleted file mode 100644 index b3b840e2b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/MachineName.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3618098a8eb74910940984d2a4d84597 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs deleted file mode 100644 index 6e5541cff..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class NetworkInterfaces - { - public InterfaceInfo[] Interfaces; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs.meta deleted file mode 100644 index 0abae5da8..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkInterfaces.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bb2cade011594105949a779c4da36b74 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs deleted file mode 100644 index adc323111..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class NetworkProfileInfo - { - public bool GroupPolicyProfile; - public string Name; - public bool PerUserProfile; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs.meta deleted file mode 100644 index f88a4d83c..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/NetworkProfileInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6cc091813ed3492fb1f5b748199a481e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs deleted file mode 100644 index 44857da2d..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class PowerStateInfo - { - public bool LowPowerState; - public bool LowPowerStateAvailable; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs.meta deleted file mode 100644 index 7711977d2..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/PowerStateInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6a780543edd64215affd60e8960f4723 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs deleted file mode 100644 index 418b07cec..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class ProcessInfo - { - public float CPUUsage; - public string ImageName; - public float PageFileUsage; - public int PrivateWorkingSet; - public int ProcessId; - public int SessionId; - public string UserName; - public int VirtualSize; - public int WorkingSetSize; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs.meta deleted file mode 100644 index e3f54e74b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c05ec462559a4260b338e1777fb65a99 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs deleted file mode 100644 index 26025929e..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class ProcessList - { - public ProcessInfo[] Processes; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs.meta deleted file mode 100644 index a53a2cbbb..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/ProcessList.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 23a048e7623f425cac081bd5a4300bea -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs deleted file mode 100644 index 8309788b4..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - [Serializable] - public class WirelessNetworkInfo - { - public bool AlreadyConnected; - public string AuthenticationAlgorithm; - public int Channel; - public string CipherAlgorithm; - /// - /// (0 | 1) - /// - public int Connectable; - public string InfrastructureType; - public bool ProfileAvailable; - public string ProfileName; - public string SSID; - /// - /// (0 | 1) - /// - public int SecurityEnabled; - public int SignalQuality; - public int[] BSSID; - public string[] PhysicalTypes; - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs.meta deleted file mode 100644 index 14cfb9614..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DataStructures/WirelessNetworkInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 31c3dedbc2be4bf7a0f5f95e41780730 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs deleted file mode 100644 index 5b9e14924..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs +++ /dev/null @@ -1,908 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using UnityEngine; -using UnityEngine.Networking; -using Debug = UnityEngine.Debug; -using IOFileInfo = System.IO.FileInfo; -// This using exists to work around naming conflicts described in: -// https://github.com/microsoft/MixedRealityToolkit-Unity/issues/8104 -// If the internal rest class gets renamed this workaround can be removed. -using RestHelpers = Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.WindowsDevicePortal -{ - /// - /// Function used to communicate with Windows 10 devices through the device portal REST APIs. - /// - public static class DevicePortal - { - /// - /// Use SSL Connections when making rest calls. - /// - public static bool UseSSL { get; set; } = true; - - /// - /// Use SSL Certificate Verification when making SSL rest calls. - /// - public static bool VerifySSLCertificates { get; set; } = true; - - private enum AppInstallStatus - { - Invalid, - Installing, - InstallSuccess, - InstallFail - } - - /// - /// Custom certificate handler for device portal request. - /// The device portal on HoloLens uses a self-signed certificate, therefore SSL Unity WebRequest will fail. - /// As a fix we simply accept all certificates, including self-signed, without further checking, - /// as they do not chain up to any Microsoft Root Certificate. - /// - private class BlankCertificateHandler : CertificateHandler - { - protected override bool ValidateCertificate(byte[] certificateData) - { - // Accept all the certificates! - return true; - } - } - - private static readonly BlankCertificateHandler BlankCertificateHandlerInstance = new BlankCertificateHandler(); - - private static CertificateHandler DevicePortalCertificateHandler - { - get { return !VerifySSLCertificates ? BlankCertificateHandlerInstance : null; } - } - - // Device Portal API Resources - // https://docs.microsoft.com/windows/uwp/debug-test-perf/device-portal-api-hololens#holographic-os - // https://docs.microsoft.com/windows/uwp/debug-test-perf/device-portal-api-core - private const string GetDeviceOsInfoQuery = @"{0}/api/os/info"; - private const string GetMachineNameQuery = @"{0}/api/os/machinename"; - private const string GetBatteryQuery = @"{0}/api/power/battery"; - private const string GetPowerStateQuery = @"{0}/api/power/state"; - private const string RestartDeviceQuery = @"{0}/api/control/restart"; - private const string ShutdownDeviceQuery = @"{0}/api/control/shutdown"; - private const string ProcessQuery = @"{0}/api/resourcemanager/processes"; - private const string AppQuery = @"{0}/api/taskmanager/app"; - private const string PackagesQuery = @"{0}/api/appx/packagemanager/packages"; - private const string InstallQuery = @"{0}/api/app/packagemanager/package"; - private const string InstallStatusQuery = @"{0}/api/app/packagemanager/state"; - private const string FileQuery = @"{0}/api/filesystem/apps/file?knownfolderid=LocalAppData&filename=UnityPlayer.log&packagefullname={1}&path=%5C%5CTempState"; - private const string IpConfigQuery = @"{0}/api/networking/ipconfig"; - private const string WiFiNetworkQuery = @"{0}/api/wifi/network{1}"; - private const string WiFiInterfacesQuery = @"{0}/api/wifi/interfaces"; - -#if !UNITY_WSA || UNITY_EDITOR - /// - /// Opens the Device Portal for the target device. - /// - public static void OpenWebPortal(DeviceInfo targetDevice) - { - System.Diagnostics.Process.Start(FinalizeUrl(targetDevice.IP)); - } -#endif - - /// - /// Gets the of the target device. - /// - /// - public static async Task GetDeviceOsInfoAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - string query = string.Format(GetDeviceOsInfoQuery, FinalizeUrl(targetDevice.IP)); - var response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await GetDeviceOsInfoAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// Gets the of the target device. - /// - /// - public static async Task GetMachineNameAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - string query = string.Format(GetMachineNameQuery, FinalizeUrl(targetDevice.IP)); - var response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await GetMachineNameAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// Gets the of the target device. - /// - /// - public static async Task GetBatteryStateAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - string query = string.Format(GetBatteryQuery, FinalizeUrl(targetDevice.IP)); - var response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await GetBatteryStateAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// Gets the of the target device. - /// - /// - public static async Task GetPowerStateAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - string query = string.Format(GetPowerStateQuery, FinalizeUrl(targetDevice.IP)); - var response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - await GetPowerStateAsync(targetDevice); - } - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// Restart the target device. - /// - /// True, if the device has successfully restarted. - public static async Task RestartAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return false; } - - var response = await RestHelpers.Rest.PostAsync(string.Format(RestartDeviceQuery, FinalizeUrl(targetDevice.IP)), targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (response.Successful) - { - bool hasRestarted = false; - string query = string.Format(GetPowerStateQuery, FinalizeUrl(targetDevice.IP)); - - while (!hasRestarted) - { - response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - continue; - } - - Debug.LogError(response.ResponseBody); - return false; - } - - hasRestarted = response.Successful; - } - - return true; - } - - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - await RestartAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return false; - } - - /// - /// Shuts down the target device. - /// - /// True, if the device is shutting down. - public static async Task ShutdownAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return false; } - - var response = await RestHelpers.Rest.PostAsync(string.Format(ShutdownDeviceQuery, FinalizeUrl(targetDevice.IP)), targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await ShutdownAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return false; - } - - return true; - } - - /// - /// Determines if the target application is currently running on the target device. - /// - /// True, if application is currently installed on device. - public static async Task IsAppInstalledAsync(string packageName, DeviceInfo targetDevice) - { - Debug.Assert(!string.IsNullOrEmpty(packageName)); - return await GetApplicationInfoAsync(packageName, targetDevice) != null; - } - - /// - /// Determines if the target application is running on the target device. - /// - /// Optional cached . - /// True, if the application is running. - public static async Task IsAppRunningAsync(string packageName, DeviceInfo targetDevice, ApplicationInfo appInfo = null) - { - Debug.Assert(!string.IsNullOrEmpty(packageName)); - - if (appInfo == null) - { - appInfo = await GetApplicationInfoAsync(packageName, targetDevice); - } - - if (appInfo == null) - { - Debug.LogError($"{packageName} not installed."); - return false; - } - - var response = await RestHelpers.Rest.GetAsync(string.Format(ProcessQuery, FinalizeUrl(targetDevice.IP)), targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (response.Successful) - { - var processList = JsonUtility.FromJson(response.ResponseBody); - for (int i = 0; i < processList.Processes.Length; ++i) - { - if (processList.Processes[i].ImageName.Contains(appInfo.Name)) - { - return true; - } - } - - return false; - } - - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await IsAppRunningAsync(packageName, targetDevice, appInfo); - } - - Debug.LogError($"{response.ResponseBody}"); - return false; - } - - /// - /// Gets the of the target application on the target device. - /// - /// Returns the of the target application from the target device. - private static async Task GetApplicationInfoAsync(string packageName, DeviceInfo targetDevice) - { - Debug.Assert(!string.IsNullOrEmpty(packageName)); - var appList = await GetAllInstalledAppsAsync(targetDevice); - - for (int i = 0; i < appList?.InstalledPackages.Length; ++i) - { - if (appList.InstalledPackages[i].PackageFullName.Equals(packageName, StringComparison.OrdinalIgnoreCase)) - { - return appList.InstalledPackages[i]; - } - - if (appList.InstalledPackages[i].PackageFamilyName.Equals(packageName, StringComparison.OrdinalIgnoreCase)) - { - return appList.InstalledPackages[i]; - } - } - - return null; - } - - public static async Task GetAllInstalledAppsAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - var response = await RestHelpers.Rest.GetAsync(string.Format(PackagesQuery, FinalizeUrl(targetDevice.IP)), targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await GetAllInstalledAppsAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// Installs the target application on the target device. - /// - /// Should the thread wait until installation is complete? - /// True, if Installation was a success. - public static async Task InstallAppAsync(string appFullPath, DeviceInfo targetDevice, bool waitForDone = true) - { - Debug.Assert(!string.IsNullOrEmpty(appFullPath)); - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) - { - return false; - } - - Debug.Log($"Starting app install on {targetDevice.ToString()}..."); - - // Calculate the cert and dependency paths - string fileName = Path.GetFileName(appFullPath); - string certFullPath = Path.ChangeExtension(appFullPath, ".cer"); - string certName = Path.GetFileName(certFullPath); - - string arch = "ARM"; - if (appFullPath.Contains("x86")) - { - arch = "x86"; - } - else if (appFullPath.Contains("ARM64")) - { - arch = "ARM64"; - } - - string depPath = $@"{Path.GetDirectoryName(appFullPath)}\Dependencies\{arch}\"; - - var form = new WWWForm(); - - try - { - // APPX file - Debug.Assert(appFullPath != null); - using (var stream = new FileStream(appFullPath, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - using (var reader = new BinaryReader(stream)) - { - form.AddBinaryData(fileName, reader.ReadBytes((int)reader.BaseStream.Length), fileName); - } - } - - // CERT file - Debug.Assert(certFullPath != null); - using (var stream = new FileStream(certFullPath, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - using (var reader = new BinaryReader(stream)) - { - form.AddBinaryData(certName, reader.ReadBytes((int)reader.BaseStream.Length), certName); - } - } - - // Dependencies - IOFileInfo[] depFiles = new DirectoryInfo(depPath).GetFiles(); - foreach (IOFileInfo dep in depFiles) - { - using (var stream = new FileStream(dep.FullName, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - using (var reader = new BinaryReader(stream)) - { - string depFilename = Path.GetFileName(dep.FullName); - form.AddBinaryData(depFilename, reader.ReadBytes((int)reader.BaseStream.Length), depFilename); - } - } - } - } - catch (Exception e) - { - Debug.LogException(e); - return false; - } - - // Query - string query = $"{string.Format(InstallQuery, FinalizeUrl(targetDevice.IP))}?package={UnityWebRequest.EscapeURL(fileName)}"; - - var response = await RestHelpers.Rest.PostAsync(query, form, targetDevice.Authorization, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await InstallAppAsync(appFullPath, targetDevice, waitForDone); - } - - Debug.LogError($"Failed to install {fileName} on {targetDevice.ToString()}."); - return false; - } - - var status = AppInstallStatus.Installing; - - // Wait for done (if requested) - while (waitForDone && status == AppInstallStatus.Installing) - { - status = await GetInstallStatusAsync(targetDevice); - - switch (status) - { - case AppInstallStatus.InstallSuccess: - Debug.Log($"Successfully installed {fileName} on {targetDevice.ToString()}."); - return true; - case AppInstallStatus.InstallFail: - Debug.LogError($"Failed to install {fileName} on {targetDevice.ToString()}."); - return false; - } - } - - return true; - } - - private static async Task GetInstallStatusAsync(DeviceInfo targetDevice) - { - var response = await RestHelpers.Rest.GetAsync(string.Format(InstallStatusQuery, FinalizeUrl(targetDevice.IP)), targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (response.Successful) - { - var status = JsonUtility.FromJson(response.ResponseBody); - - if (status == null) - { - return AppInstallStatus.Installing; - } - - if (status.Success) - { - return AppInstallStatus.InstallSuccess; - } - - Debug.LogError($"{status.Reason}\n{status.CodeText}"); - } - else - { - return AppInstallStatus.Installing; - } - - return AppInstallStatus.InstallFail; - } - - /// - /// Uninstalls the target application on the target device - /// - /// Optional cached . - /// True, if uninstall was a success. - public static async Task UninstallAppAsync(string packageName, DeviceInfo targetDevice, ApplicationInfo appInfo = null) - { - Debug.Assert(!string.IsNullOrEmpty(packageName)); - - if (appInfo == null) - { - appInfo = await GetApplicationInfoAsync(packageName, targetDevice); - } - - if (appInfo == null) - { - Debug.LogWarning($"Application '{packageName}' not found"); - return false; - } - - Debug.Log($"Attempting to uninstall {packageName} on {targetDevice.ToString()}..."); - - string query = $"{string.Format(InstallQuery, FinalizeUrl(targetDevice.IP))}?package={UnityWebRequest.EscapeURL(appInfo.PackageFullName)}"; - var response = await RestHelpers.Rest.DeleteAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (response.Successful) - { - Debug.Log($"Successfully uninstalled {packageName} on {targetDevice.ToString()}."); - } - else - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await UninstallAppAsync(packageName, targetDevice); - } - - Debug.LogError($"Failed to uninstall {packageName} on {targetDevice.ToString()}"); - Debug.LogError(response.ResponseBody); - return false; - } - - return true; - } - - /// - /// Launches the target application on the target device. - /// - /// Optional cached . - /// True, if application was successfully launched and is currently running on the target device. - public static async Task LaunchAppAsync(string packageName, DeviceInfo targetDevice, ApplicationInfo appInfo = null) - { - Debug.Assert(!string.IsNullOrEmpty(packageName)); - - if (appInfo == null) - { - appInfo = await GetApplicationInfoAsync(packageName, targetDevice); - } - - if (appInfo == null) - { - Debug.LogWarning($"Application '{packageName}' not found"); - return false; - } - - string query = $"{string.Format(AppQuery, FinalizeUrl(targetDevice.IP))}?appid={UnityWebRequest.EscapeURL(appInfo.PackageRelativeId.EncodeTo64())}&package={UnityWebRequest.EscapeURL(appInfo.PackageFullName)}"; - var response = await RestHelpers.Rest.PostAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await LaunchAppAsync(packageName, targetDevice); - } - - Debug.LogError($"{response.ResponseCode}|{response.ResponseBody}"); - return false; - } - - while (!await IsAppRunningAsync(packageName, targetDevice, appInfo)) - { - await new WaitForSeconds(1f); - } - - return true; - } - - /// - /// Stops the target application on the target device. - /// - /// Optional cached . - /// true, if application was successfully stopped. - public static async Task StopAppAsync(string packageName, DeviceInfo targetDevice, ApplicationInfo appInfo = null) - { - Debug.Assert(!string.IsNullOrEmpty(packageName)); - - if (appInfo == null) - { - appInfo = await GetApplicationInfoAsync(packageName, targetDevice); - } - - if (appInfo == null) - { - Debug.LogWarning($"Application '{packageName}' not found"); - return false; - } - - string query = $"{string.Format(AppQuery, FinalizeUrl(targetDevice.IP))}?package={UnityWebRequest.EscapeURL(appInfo.PackageFullName.EncodeTo64())}"; - Response response = await RestHelpers.Rest.DeleteAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await StopAppAsync(packageName, targetDevice); - } - - Debug.LogError(response.ResponseBody); - return false; - } - - while (!await IsAppRunningAsync(packageName, targetDevice, appInfo)) - { - await new WaitForSeconds(1f); - } - - return true; - } - - /// - /// Downloads and launches the Log file for the target application on the target device. - /// - /// Optional cached . - /// The path of the downloaded log file. - public static async Task DownloadLogFileAsync(string packageName, DeviceInfo targetDevice, ApplicationInfo appInfo = null) - { - Debug.Assert(!string.IsNullOrEmpty(packageName)); - - if (appInfo == null) - { - appInfo = await GetApplicationInfoAsync(packageName, targetDevice); - } - - if (appInfo == null) - { - Debug.LogWarning($"Application '{packageName}' not found"); - return string.Empty; - } - - string logFile = $"{Application.temporaryCachePath}/{targetDevice.MachineName}_{DateTime.Now.Year}{DateTime.Now.Month}{DateTime.Now.Day}{DateTime.Now.Hour}{DateTime.Now.Minute}{DateTime.Now.Second}_player.txt"; - var response = await RestHelpers.Rest.GetAsync(string.Format(FileQuery, FinalizeUrl(targetDevice.IP), appInfo.PackageFullName), targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await DownloadLogFileAsync(packageName, targetDevice); - } - - Debug.LogError(response.ResponseBody); - return string.Empty; - } - - File.WriteAllText(logFile, response.ResponseBody); - return logFile; - - } - - /// - /// Gets the of the target device. - /// - /// - public static async Task GetIpConfigInfoAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - string query = string.Format(IpConfigQuery, FinalizeUrl(targetDevice.IP)); - var response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await GetIpConfigInfoAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// Gets the of the target device. - /// - /// The GUID for the network interface to use to search for wireless networks, without brackets. - /// - public static async Task GetAvailableWiFiNetworksAsync(DeviceInfo targetDevice, InterfaceInfo interfaceInfo) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - string query = string.Format(WiFiNetworkQuery, FinalizeUrl(targetDevice.IP), $"s?interface={interfaceInfo.GUID}"); - var response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await GetAvailableWiFiNetworksAsync(targetDevice, interfaceInfo); - } - - Debug.LogError(response.ResponseBody); - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// Connects to the specified WiFi Network. - /// - /// The interface to use to connect. - /// The network to connect to. - /// Password for network access. - /// True, if connection successful. - public static async Task ConnectToWiFiNetworkAsync(DeviceInfo targetDevice, InterfaceInfo interfaceInfo, WirelessNetworkInfo wifiNetwork, string password) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return new Response(false, "Unable to authenticate with device", null, 403); } - - string query = string.Format( - WiFiNetworkQuery, - FinalizeUrl(targetDevice.IP), - $"?interface={interfaceInfo.GUID}&ssid={wifiNetwork.SSID.EncodeTo64()}&op=connect&createprofile=yes&key={password}"); - return await RestHelpers.Rest.PostAsync(query, targetDevice.Authorization, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - } - - /// - /// Gets the of the target device. - /// - /// - public static async Task GetWiFiNetworkInterfacesAsync(DeviceInfo targetDevice) - { - var isAuth = await EnsureAuthenticationAsync(targetDevice); - if (!isAuth) { return null; } - - string query = string.Format(WiFiInterfacesQuery, FinalizeUrl(targetDevice.IP)); - var response = await RestHelpers.Rest.GetAsync(query, targetDevice.Authorization, readResponseData: true, certificateHandler: DevicePortalCertificateHandler, disposeCertificateHandlerOnDispose: false); - - if (!response.Successful) - { - if (response.ResponseCode == 403 && await RefreshCsrfTokenAsync(targetDevice)) - { - return await GetWiFiNetworkInterfacesAsync(targetDevice); - } - - Debug.LogError(response.ResponseBody); - return null; - } - - return JsonUtility.FromJson(response.ResponseBody); - } - - /// - /// This Utility method finalizes the URL and formats the HTTPS string if needed. - /// - /// Local Machine will be changed to 127.0.0.1:10080 for HoloLens connections. - /// The target URL i.e. 128.128.128.128 - /// The finalized URL with http/https prefix. - public static string FinalizeUrl(string targetUrl) - { - string ssl = DevicePortal.UseSSL ? "s" : string.Empty; - - if (targetUrl.Contains(DeviceInfo.LocalMachine) || targetUrl.Contains(DeviceInfo.LocalIPAddress)) - { - targetUrl = UseSSL ? $"{DeviceInfo.LocalIPAddress}:10443" : $"{DeviceInfo.LocalIPAddress}:10080"; - } - - return $@"http{ssl}://{targetUrl}"; - } - - /// - /// Refreshes the CSRF Token in case the device or its portal was restarted. - /// - /// True, if refresh was successful. - public static async Task RefreshCsrfTokenAsync(DeviceInfo targetDevice) - { - if (!targetDevice.Authorization.ContainsKey("cookie")) - { - Debug.LogError("Resetting Auth failed!"); - return false; - } - - targetDevice.Authorization.Remove("cookie"); - - return await EnsureAuthenticationAsync(targetDevice); - } - - /// - /// Makes sure the Authentication Headers and CSRF Tokens are set. - /// - /// True if Authentication is successful, otherwise false. - public static async Task EnsureAuthenticationAsync(DeviceInfo targetDevice) - { - targetDevice.Authorization["Authorization"] = RestHelpers.Rest.GetBasicAuthentication(targetDevice.User, targetDevice.Password); - - bool success; - - if (!targetDevice.Authorization.ContainsKey("cookie")) - { - var response = await DevicePortalAuthorizationAsync(targetDevice); - success = response.Successful; - - if (success) - { - // If null, authentication succeeded but we had no cookie token in the response. - // This usually means Unity has a cached token, so it can be ignored. - if (response.ResponseBody != null) - { - targetDevice.CsrfToken = response.ResponseBody; - - // Strip the beginning of the cookie header - targetDevice.CsrfToken = targetDevice.CsrfToken.Replace("CSRF-Token=", string.Empty); - } - } - else - { - Debug.LogError($"Authentication failed! {response.ResponseBody}"); - } - - if (!string.IsNullOrEmpty(targetDevice.CsrfToken)) - { - if (!targetDevice.Authorization.ContainsKey("cookie")) - { - targetDevice.Authorization.Add("cookie", targetDevice.CsrfToken); - } - else - { - targetDevice.Authorization["cookie"] = targetDevice.CsrfToken; - } - - if (targetDevice.Authorization.ContainsKey("x-csrf-token")) - { - targetDevice.Authorization["x-csrf-token"] = targetDevice.CsrfToken; - } - else - { - targetDevice.Authorization.Add("x-csrf-token", targetDevice.CsrfToken); - } - } - } - else - { - success = true; - } - - return success; - } - - private static async Task DevicePortalAuthorizationAsync(DeviceInfo targetDevice) - { - UnityWebRequest webRequest = UnityWebRequest.Get(FinalizeUrl(targetDevice.IP)); - - webRequest.timeout = 5; - webRequest.certificateHandler = DevicePortalCertificateHandler; - webRequest.disposeCertificateHandlerOnDispose = false; - webRequest.SetRequestHeader("Authorization", targetDevice.Authorization["Authorization"]); - - await webRequest.SendWebRequest(); - -#if UNITY_2020_1_OR_NEWER - if (webRequest.result == UnityWebRequest.Result.ConnectionError || webRequest.result == UnityWebRequest.Result.ProtocolError) -#else - if (webRequest.isNetworkError || webRequest.isHttpError) -#endif // UNITY_2020_1_OR_NEWER - { - if (webRequest.responseCode == 401) - { - return new Response(false, "Invalid Credentials", null, webRequest.responseCode); - } - - if (webRequest.GetResponseHeaders() == null) - { - return new Response(false, "Device Not Found | No Response Headers", null, webRequest.responseCode); - } - - string responseHeaders = webRequest.GetResponseHeaders().Aggregate(string.Empty, (current, header) => $"\n{header.Key}: {header.Value}"); - string downloadHandlerText = webRequest.downloadHandler?.text; - Debug.LogError($"REST Auth Error: {webRequest.responseCode}\n{downloadHandlerText}{responseHeaders}"); - return new Response(false, $"{downloadHandlerText}", webRequest.downloadHandler?.data, webRequest.responseCode); - } - - return new Response(true, () => webRequest.GetResponseHeader("Set-Cookie"), () => webRequest.downloadHandler?.data, webRequest.responseCode); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs.meta deleted file mode 100644 index 17a6620e5..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7565b96aa294429aa5c918192632fb82 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs b/AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs deleted file mode 100644 index a4857822a..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if UNITY_2019_3_OR_NEWER -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.XR; -#else -#if UNITY_2019_2_OR_NEWER -using UnityEngine.XR; -#endif -using UnityEngine.Experimental.XR; -#endif - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// A helper class to provide easier access to active Unity XR SDK subsystems. - /// - /// These properties are only valid for the XR SDK pipeline. - public static class XRSubsystemHelpers - { - private static XRInputSubsystem inputSubsystem = null; -#if UNITY_2019_3_OR_NEWER - private static readonly List XRInputSubsystems = new List(); -#endif // UNITY_2019_3_OR_NEWER - - /// - /// The XR SDK input subsystem for the currently loaded XR plug-in. - /// - public static XRInputSubsystem InputSubsystem - { - get - { -#if UNITY_2019_3_OR_NEWER - if (inputSubsystem == null || !inputSubsystem.running) - { - inputSubsystem = null; - SubsystemManager.GetInstances(XRInputSubsystems); - foreach (XRInputSubsystem xrInputSubsystem in XRInputSubsystems) - { - if (xrInputSubsystem.running) - { - inputSubsystem = xrInputSubsystem; - break; - } - } - } -#endif // UNITY_2019_3_OR_NEWER - return inputSubsystem; - } - } - - private static XRMeshSubsystem meshSubsystem = null; -#if UNITY_2019_3_OR_NEWER - private static readonly List XRMeshSubsystems = new List(); -#endif // UNITY_2019_3_OR_NEWER - - /// - /// The XR SDK mesh subsystem for the currently loaded XR plug-in. - /// - public static XRMeshSubsystem MeshSubsystem - { - get - { -#if UNITY_2019_3_OR_NEWER - if (meshSubsystem == null || !meshSubsystem.running) - { - meshSubsystem = null; - SubsystemManager.GetInstances(XRMeshSubsystems); - foreach (XRMeshSubsystem xrMeshSubsystem in XRMeshSubsystems) - { - if (xrMeshSubsystem.running) - { - meshSubsystem = xrMeshSubsystem; - break; - } - } - } -#endif // UNITY_2019_3_OR_NEWER - return meshSubsystem; - } - } - - private static XRDisplaySubsystem displaySubsystem = null; -#if UNITY_2019_3_OR_NEWER - private static readonly List XRDisplaySubsystems = new List(); -#endif // UNITY_2019_3_OR_NEWER - - /// - /// The XR SDK display subsystem for the currently loaded XR plug-in. - /// - public static XRDisplaySubsystem DisplaySubsystem - { - get - { -#if UNITY_2019_3_OR_NEWER - if (displaySubsystem == null || !displaySubsystem.running) - { - displaySubsystem = null; - SubsystemManager.GetInstances(XRDisplaySubsystems); - foreach (XRDisplaySubsystem xrDisplaySubsystem in XRDisplaySubsystems) - { - if (xrDisplaySubsystem.running) - { - displaySubsystem = xrDisplaySubsystem; - break; - } - } - } -#endif // UNITY_2019_3_OR_NEWER - return displaySubsystem; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs.meta b/AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs.meta deleted file mode 100644 index 7936b5e6f..000000000 --- a/AR-ROS/Assets/MRTK/Core/Utilities/XRSubsystemHelpers.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 98b7e5fbc3c5d9d4cb5811501c141f4c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/Version.txt b/AR-ROS/Assets/MRTK/Core/Version.txt deleted file mode 100644 index 50d05c701..000000000 --- a/AR-ROS/Assets/MRTK/Core/Version.txt +++ /dev/null @@ -1 +0,0 @@ -Microsoft Mixed Reality Toolkit 2.5.0 diff --git a/AR-ROS/Assets/MRTK/Core/Version.txt.meta b/AR-ROS/Assets/MRTK/Core/Version.txt.meta deleted file mode 100644 index 34411e69b..000000000 --- a/AR-ROS/Assets/MRTK/Core/Version.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 1cfe54a11e6d145478dd49c230df7ecb -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/WhereToStart.txt b/AR-ROS/Assets/MRTK/Core/WhereToStart.txt deleted file mode 100644 index 2bec8fc4b..000000000 --- a/AR-ROS/Assets/MRTK/Core/WhereToStart.txt +++ /dev/null @@ -1,3 +0,0 @@ -To start, add a MixedRealityToolkit to your scene using the menu: - -Mixed Reality Toolkit -> Add to Scene and Configure \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Core/WhereToStart.txt.meta b/AR-ROS/Assets/MRTK/Core/WhereToStart.txt.meta deleted file mode 100644 index e8ed11d3f..000000000 --- a/AR-ROS/Assets/MRTK/Core/WhereToStart.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 45fb7d0fbb9988d48847c25a7dd338d4 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Core/toc.yml b/AR-ROS/Assets/MRTK/Core/toc.yml deleted file mode 100644 index 41609b6e4..000000000 --- a/AR-ROS/Assets/MRTK/Core/toc.yml +++ /dev/null @@ -1,11 +0,0 @@ -- name: Event Datum - href: EventDatum/README.md -- name: Hands - href: Providers/Hands/README.md -- name: Utilities - href: Utilities/README.md - items: - - name: Async - href: Utilities/Async/ReadMe.md - - name: Async License - href: Utilities/Async/License.md diff --git a/AR-ROS/Assets/MRTK/Core/toc.yml.meta b/AR-ROS/Assets/MRTK/Core/toc.yml.meta deleted file mode 100644 index 1320f85a4..000000000 --- a/AR-ROS/Assets/MRTK/Core/toc.yml.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2c9777bdee547c74abae9c5b4aed12c5 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers.meta b/AR-ROS/Assets/MRTK/Providers.meta deleted file mode 100644 index 49b121cb7..000000000 --- a/AR-ROS/Assets/MRTK/Providers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8e6d8cdb4c358114589841609d126863 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion.meta deleted file mode 100644 index fef6fcfb0..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: db869dc145c3c914a8aa818f5076bcde -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs.meta deleted file mode 100644 index 831e131b5..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3333a7a4b1a66e84c822f33b94a984f3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions.meta deleted file mode 100644 index d22c09767..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 00e492b96ee795640b0a088e8fbc685b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs deleted file mode 100644 index f27e94055..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.LeapMotion.Input -{ - /// - /// The location of the Leap Motion Controller. - /// - public enum LeapControllerOrientation - { - /// - /// The Leap Motion Controller is mounted on a headset and the hand positions are always calculated relative to the HMD camera. - /// - Headset = 0, - - /// - /// The Leap Motion Controller is static and placed flat on a desk. The hand positions are calculated relative to the camera, but can also be configured to - /// appear in a different position by modifying the LeapControllerOffset property. Desk hands are primarily used in editor. - /// - Desk - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs.meta deleted file mode 100644 index a7f1ea8c5..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapControllerOrientation.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b0bc43625d9c3ab4893eee16ca86f18b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs deleted file mode 100644 index ba4862877..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.LeapMotion.Input -{ - /// - /// The offset modes when the LeapControllerOrientation is Headset. These offset modes can only be used if the - /// LeapServiceProvider within the LeapMotionDeviceManager.cs is the LeapXRServiceProvider. These modes are only for the - /// offset of the Leap Controller while in VR and not while the controller is on the desk. - /// - public enum LeapVRDeviceOffsetMode - { - /// - /// No change or offset will be applied to the Leap Controller while in this mode. - /// - Default = 0, - - /// - /// This mode exposes the modification of 3 properties: LeapDeviceOffsetY, LeapDeviceOffsetZ and LeapDeviceOffsetTiltX. These properties - /// have the same set range as the offset properties contained in the LeapXRServiceProvider component. - /// - ManualHeadOffset, - - /// - /// Set a new transform as the origin of the Leap Controller while in VR. Setting the origin of the Leap Controller will move the hands - /// to the new transform. - /// - Transform - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs.meta deleted file mode 100644 index b8f85c1a4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Definitions/LeapVRDeviceOffsetMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f15e60f61c8931744a8d6f0b10ca516a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor.meta deleted file mode 100644 index b45dd8a71..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c1763c2296c779e4999d8fea9602f70f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index 81ec410cb..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0865b4e12fc1a6d4f9e856a6c4f8b847 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs deleted file mode 100644 index ad7218704..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs +++ /dev/null @@ -1,464 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.LeapMotion -{ - /// - /// Class that checks if the Leap Motion Core assets are present and configures the project if they are. - /// - - static class LeapMotionConfigurationChecker - { - // The presence of the LeapXRServiceProvider.cs is used to determine if the Leap Motion Core Assets are in the project. - private const string trackedLeapFileName = "LeapXRServiceProvider.cs"; - private static readonly string[] Definitions = { "LEAPMOTIONCORE_PRESENT" }; - - // True if the Leap Motion Core Assets are in the project. - private static bool isLeapInProject = false; - - // Does MRTK recognize the Leap Motion Unity Modules? - // The assets can be in the project but MRTK might not recognize their presence because - // the user has not selected the integration menu item. - private static bool isLeapRecognizedByMRTK = false; - - // The current supported Leap Core Assets version numbers. - private static string[] leapCoreAssetsVersionsSupported = new string[] { "4.5.0", "4.5.1" }; - - // The current Leap Core Assets version in this project - private static string currentLeapCoreAssetsVersion = ""; - - // The path difference between the root of assets and the root of the Leap Motion Core Assets. - private static string pathDifference = ""; - - // Array of paths to Leap Motion testing directories that will be removed from the project. - // Make sure each test directory ends with '/' - // These paths only need to be deleted if the Leap Core Assets version is 4.4.0 - private static readonly string[] pathsToDelete = new string[] - { - "LeapMotion/Core/Editor/Tests/", - "LeapMotion/Core/Plugins/LeapCSharp/Editor/Tests/", - "LeapMotion/Core/Scripts/Algorithms/Editor/Tests/", - "LeapMotion/Core/Scripts/DataStructures/Editor/Tests/", - "LeapMotion/Core/Scripts/Encoding/Editor/", - "LeapMotion/Core/Scripts/Query/Editor/", - "LeapMotion/Core/Scripts/Utils/Editor/BitConverterNonAllocTests.cs", - "LeapMotion/Core/Scripts/Utils/Editor/ListAndArrayExtensionTests.cs", - "LeapMotion/Core/Scripts/Utils/Editor/TransformUtilTests.cs", - "LeapMotion/Core/Scripts/Utils/Editor/UtilsTests.cs", - }; - - // Dictionary of names and references of new asmdefs that will be added to the Leap Motion Core Assets. - private static readonly Dictionary leapEditorDirectories = new Dictionary - { - { "LeapMotion.Core.Editor", new string[] { "LeapMotion" } }, - { "LeapMotion.Core.Scripts.Animation.Editor", new string[] { "LeapMotion", "LeapMotion.Core.Editor", "LeapMotion.Core.Scripts.Utils.Editor" } }, - { "LeapMotion.Core.Scripts.Attachments.Editor", new string[] { "LeapMotion", "LeapMotion.Core.Editor" } }, - { "LeapMotion.Core.Scripts.Attributes.Editor", new string[] { "LeapMotion" } }, - { "LeapMotion.Core.Scripts.DataStructures.Editor", new string[] { "LeapMotion" } }, - { "LeapMotion.Core.Scripts.EditorTools.Editor", new string[] { "LeapMotion", "LeapMotion.Core.Scripts.Utils.Editor" } }, - { "LeapMotion.Core.Scripts.Utils.Editor", new string[] { "LeapMotion", "LeapMotion.Core.Editor" } }, - { "LeapMotion.Core.Scripts.XR.Editor", new string[] { "LeapMotion", "LeapMotion.Core.Editor" } }, - { "LeapMotion.Core.Tests.Editor", new string[] { "LeapMotion" } } - }; - - /// - /// Ensures that the appropriate symbolic constant is defined based on the presence of the Leap Motion Core Assets. - /// - /// If the define was added or the define has already been added, return true - private static bool ReconcileLeapMotionDefine() - { - FileInfo[] files = FileUtilities.FindFilesInAssets(trackedLeapFileName); - - if (files.Length > 0) - { - ScriptUtilities.AppendScriptingDefinitions(BuildTargetGroup.Standalone, Definitions); - ScriptUtilities.AppendScriptingDefinitions(BuildTargetGroup.WSA, Definitions); - - isLeapInProject = true; - isLeapRecognizedByMRTK = true; - - return true; - } - else - { - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.Standalone, Definitions); - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.WSA, Definitions); - isLeapRecognizedByMRTK = false; - - return false; - } - } - - /// - /// Configure the Leap Motion Core assets if they are in the project. First remove testing folders, add LeapMotion.asmdef at the - /// root of the core assets, and add the leap editor asmdefs. If the core assets are not in the project, make sure the reference - /// in the Microsoft.MixedReality.Toolkit.Providers.LeapMotion.asmdef does not contain a ref to LeapMotion. - /// - /// Bool that determines if the Leap Motion Core assets are in the project - private static void ConfigureLeapMotion(bool isLeapInProject) - { - FileInfo[] leapDataProviderAsmDefFile = FileUtilities.FindFilesInAssets("MRTK.LeapMotion.asmdef"); - - // When MRTK is used through NuGet compiled assemblies, there will not be an asmdef file in the assets directory to configure. - if (leapDataProviderAsmDefFile.Length == 0) - { - return; - } - - if (isLeapInProject) - { - // Get the location of the Leap Core Assets relative to the root directory - pathDifference = GetPathDifference(); - - // Make sure the Leap Core Assets version is supported - bool isLeapCoreAssetsVersionSupported = LeapCoreAssetsVersionSupport(); - - if (isLeapCoreAssetsVersionSupported) - { - RemoveTestingFolders(); - AddAndUpdateAsmDefs(); - AddLeapEditorAsmDefs(); - - // Refresh the database because tests were removed and 10 asmdefs were added - AssetDatabase.Refresh(); - } - else - { - Debug.LogError("The Leap Motion Unity Modules version imported is not currently supported by MRTK, compatible versions are listed in the Leap Motion MRTK documentation: " + - "https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/CrossPlatform/LeapMotionMRTK.html"); - } - } - } - - /// - /// Checks if the Leap Motion Core Assets version is supported. - /// - /// True, if the Leap Motion Core Assets version imported is supported - private static bool LeapCoreAssetsVersionSupport() - { - string versionLeapPath = Path.Combine(Application.dataPath, pathDifference, "LeapMotion", "Core", "Version.txt"); - - using (StreamReader streamReader = new StreamReader(versionLeapPath)) - { - while (streamReader.Peek() > -1) - { - string line = streamReader.ReadLine(); - - foreach (string versionNumberSupported in leapCoreAssetsVersionsSupported) - { - // If the leap core assets version number is supported - if (line.Contains(versionNumberSupported)) - { - currentLeapCoreAssetsVersion = versionNumberSupported; - return true; - } - } - } - - return false; - } - } - - /// - /// The Leap Core Assets currently contain multiple folders with tests in them. An issue has been filed in the Unity - /// Modules repo: https://github.com/leapmotion/UnityModules/issues/1097. The issue with the multiple test folders is when an - /// asmdef is placed at the root of the core assets, each folder containing tests needs another separate asmdef. This method - /// is used to avoid adding an additional 8 asmdefs to the project, by removing the folders and files that are tests in the - /// Leap Core Assets. - /// - private static void RemoveTestingFolders() - { - // If one of the leap test directories exists, then we assume the rest have not been deleted - if (Directory.Exists(Path.Combine(Application.dataPath, pathDifference, pathsToDelete[0]))) - { - foreach (string path in pathsToDelete) - { - // Get the full path including the path difference in case the core assets are not imported to the root of the project - string fullPath = Path.Combine(Application.dataPath, pathDifference, path); - - // If we are deleting a specific file, then we also need to remove the meta associated with the file - if (File.Exists(fullPath) && fullPath.Contains(".cs")) - { - // Delete the test files - FileUtil.DeleteFileOrDirectory(fullPath); - - // Also delete the meta files - FileUtil.DeleteFileOrDirectory(fullPath + ".meta"); - } - - if (Directory.Exists(fullPath)) - { - // Delete the test directories - FileUtil.DeleteFileOrDirectory(fullPath); - - // Delete the test directories meta files - FileUtil.DeleteFileOrDirectory(fullPath.TrimEnd('/') + ".meta"); - } - } - } - } - - /// - /// Adds an asmdef at the root of the LeapMotion Core Assets once they are imported into the project and adds the newly created LeapMotion.asmdef - /// as a reference for the existing leap data provider asmdef. - /// - private static void AddAndUpdateAsmDefs() - { - string leapCoreAsmDefPath = Path.Combine(Application.dataPath, pathDifference, "LeapMotion", "LeapMotion.asmdef"); - - // If the asmdef has already been created then do not create another one - if (!File.Exists(leapCoreAsmDefPath)) - { - // Create the asmdef that will be placed in the Leap Core Assets when they are imported - // A new asmdef needs to be created in order to reference it in the MRTK/Providers/LeapMotion/Microsoft.MixedReality.Toolkit.Providers.LeapMotion.asmdef file - AssemblyDefinition leapAsmDef = new AssemblyDefinition - { - Name = "LeapMotion", - AllowUnsafeCode = true, - References = new string[] { }, - IncludePlatforms = new string[] { "Editor", "WindowsStandalone32", "WindowsStandalone64" } - }; - - // An assembly definition was added to the Leap Core Assets in version 4.5.1 - // The LeapMotion.LeapCSharp assembly definition is added as a reference at the root of the Core Assets - if (currentLeapCoreAssetsVersion == "4.5.1") - { - leapAsmDef.AddReference("LeapMotion.LeapCSharp"); - } - - leapAsmDef.Save(leapCoreAsmDefPath); - } - } - - /// - /// Add asmdefs to the editor directories in the leap core assets. - /// - private static void AddLeapEditorAsmDefs() - { - if (FileUtilities.FindFilesInAssets("LeapMotion.Core.Editor.asmdef").Length == 0) - { - foreach (KeyValuePair leapAsmDef in leapEditorDirectories) - { - // Convert asmdef name to a path - string leapAsmDefPath = leapAsmDef.Key.Replace('.', '/'); - - string leapAsmDefFilename = string.Concat(leapAsmDef.Key, ".asmdef"); - - // Path for the asmdef including the filename - string fullLeapAsmDefFilePath = Path.Combine(Application.dataPath, pathDifference, leapAsmDefPath, leapAsmDefFilename); - - // Path for the asmdef NOT including the filename - string fullLeapAsmDefDirectoryPath = Path.Combine(Application.dataPath, pathDifference, leapAsmDefPath); - - // Make sure the directory exists within the leap core assets before we add the asmdef - // The leap core assets version 4.5.0 contains the LeapMotion/Core/Tests/Editor directory while 4.4.0 does not. - if (!File.Exists(fullLeapAsmDefFilePath) && Directory.Exists(fullLeapAsmDefDirectoryPath)) - { - // Create and save the new asmdef - AssemblyDefinition leapEditorAsmDef = new AssemblyDefinition - { - Name = leapAsmDef.Key, - References = leapAsmDef.Value, - IncludePlatforms = new string[] { "Editor" } - }; - - // Add the LeapMotion.LeapCSharp assembly definition to the leap motion tests assembly definition - if (currentLeapCoreAssetsVersion == "4.5.1" && leapAsmDef.Key == "LeapMotion.Core.Tests.Editor") - { - leapEditorAsmDef.AddReference("LeapMotion.LeapCSharp"); - } - -#if !UNITY_2019_3_OR_NEWER - // In Unity 2018.4, directories that contain tests need to have a test assembly. - // An asmdef is added to a leap directory that contains tests for the leap core assets 4.5.0. - if (leapEditorAsmDef.Name.Contains("Tests")) - { - leapEditorAsmDef.OptionalUnityReferences = new string[] { "TestAssemblies" }; - } -#endif - - leapEditorAsmDef.Save(fullLeapAsmDefFilePath); - } - } - } - } - - /// - /// Get the difference between the root of assets and the location of the leap core assets. If the leap core assets - /// are at the root of assets, there is no path difference. - /// - /// Returns an empty string if the leap core assets are at the root of assets, otherwise return the path difference - private static string GetPathDifference() - { - // The file LeapXRServiceProvider.cs is used as a location anchor instead of the LeapMotion directory - // to avoid a potential incorrect location return if there is a folder named LeapMotion prior to the leap - // core assets import - FileInfo[] leapPathLocationAnchor = FileUtilities.FindFilesInAssets(trackedLeapFileName); - string leapFilePath = leapPathLocationAnchor[0].FullName; - - List leapPath = leapFilePath.Split(Path.DirectorySeparatorChar).ToList(); - - // Remove the last 3 elements of leap path (/Core/Scripts/LeapXRService.cs) from the list to get the root of the leap core assets - leapPath.RemoveRange(leapPath.Count - 3, 3); - - List unityDataPath = Application.dataPath.Split('/').ToList(); - unityDataPath.Add("LeapMotion"); - - // Get the difference between the root of assets and the root of leap core assets - IEnumerable difference = leapPath.Except(unityDataPath); - - return string.Join("/", difference); - } - - /// - /// Adds warnings to the nowarn line in the csc.rsp file located at the root of assets. Warning 618 and 649 are added to the nowarn line because if - /// the MRTK source is from the repo, warnings are converted to errors. Warnings are not converted to errors if the MRTK source is from the unity packages. - /// Warning 618 and 649 are logged when the Leap Motion Core Assets are imported into the project, 618 is the obsolete warning and 649 is a null on start warning. - /// - /// Updating the CSC file was only required for the 4.4.0 Leap Assets and only version 4.5.0 and up is supported moving forward - [Obsolete ("Updating the CSC file was only required for the 4.4.0 Leap Assets and only version 4.5.0 and up is supported moving forward")] - static void UpdateCSC() - { - // The csc file will always be in the root of assets - string cscFilePath = Path.Combine(Application.dataPath, "csc.rsp"); - - // Each line of the csc file - List cscFileLines = new List(); - - // List of the warning numbers after "-nowarn: " in the csc file - List warningNumbers = new List(); - - // List of new warning numbers to add to the csc file - List warningNumbersToAdd = new List() - { - "618", - "649" - }; - - using (StreamReader streamReader = new StreamReader(cscFilePath)) - { - while (streamReader.Peek() > -1) - { - string cscFileLine = streamReader.ReadLine(); - - if (cscFileLine.Contains("-nowarn")) - { - string[] currentWarningNumbers = cscFileLine.Split(',', ':'); - warningNumbers = currentWarningNumbers.ToList(); - - // Remove "nowarn" from the warningNumbers list - warningNumbers.Remove("-nowarn"); - - foreach (string warningNumberToAdd in warningNumbersToAdd) - { - // Add the new warning numbers if they are not already in the file - if (!warningNumbers.Contains(warningNumberToAdd)) - { - warningNumbers.Add(warningNumberToAdd); - } - } - - cscFileLines.Add(string.Join(",", warningNumbers)); - } - else - { - cscFileLines.Add(cscFileLine); - } - } - } - - using (StreamWriter streamWriter = new StreamWriter(cscFilePath)) - { - foreach (string cscLine in cscFileLines) - { - if (cscLine.StartsWith("1701")) - { - string warningNumbersJoined = string.Join(",", warningNumbers); - streamWriter.WriteLine(string.Concat("-nowarn:", warningNumbersJoined)); - } - else - { - streamWriter.WriteLine(cscLine); - } - } - } - - Debug.Log($"Saving {cscFilePath}"); - } - - - /// - /// Integrate MRTK and the Leap Motion Unity Modules if the Leap Motion Unity Modules are in the project. If they are not in the project, display a pop up window. - /// - [MenuItem("Mixed Reality Toolkit/Utilities/Leap Motion/Integrate Leap Motion Unity Modules")] - public static void IntegrateLeapMotionWithMRTK() - { - // Check if leap unity modules are in the project - isLeapInProject = ReconcileLeapMotionDefine(); - - if (!isLeapInProject) - { - EditorUtility.DisplayDialog( - "Leap Motion Unity Modules Not Found", - "The Leap Motion Unity Modules could not be found in this project, please import the assets into this project. The assets can be found here: " + - "https://developer.leapmotion.com/unity", - "OK"); - } - - ConfigureLeapMotion(isLeapInProject); - } - - /// - /// Separate MRTK and the Leap Motion Unity Modules and display a prompt for the user to close unity and delete the assets. - /// - [MenuItem("Mixed Reality Toolkit/Utilities/Leap Motion/Separate Leap Motion Unity Modules")] - public static void SeparateLeapMotion() - { - - // Force removal of the Scripting Definitions while the Leap Assets are still in the project - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.Standalone, Definitions); - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.WSA, Definitions); - - isLeapRecognizedByMRTK = false; - - // Prompt the user to close unity and delete the assets to completely remove. Closing unity and deleting the assets is optional. - EditorUtility.DisplayDialog( - "MRTK Leap Motion Removal", - "The Leap Motion Modules are now safe to delete from the project. " + - "Close Unity, delete the Leap assets in the file explorer, and reopen Unity", - "OK"); - - } - - /// - /// Check the integration status of the Leap Motion Assets and display a message to the user. - /// - [MenuItem("Mixed Reality Toolkit/Utilities/Leap Motion/Check Integration Status")] - public static void CheckIntegrationStatus() - { - if (isLeapRecognizedByMRTK) - { - EditorUtility.DisplayDialog( - "Leap Integration Status", - "The Leap Motion Unity Modules are recognized by MRTK", - "OK"); - } - else - { - EditorUtility.DisplayDialog( - "Leap Integration Status", - "The Leap Motion Unity Modules are currently not recognized by MRTK. " + - "Make sure the assets have been imported into the project and select the Integrate Leap Motion Unity Modules to MRTK menu item.", - "OK"); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs.meta deleted file mode 100644 index 959f19186..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionConfigurationChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bb8a3814b4092f6428b59aa5a074d811 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs deleted file mode 100644 index 51a995850..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.LeapMotion.Input; -using Microsoft.MixedReality.Toolkit.LeapMotion.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.LeapMotion.Inspectors -{ - [CustomEditor(typeof(LeapMotionDeviceManagerProfile))] - /// - /// Custom inspector for the Leap Motion input data provider - /// - public class LeapMotionDeviceManagerProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - protected const string ProfileTitle = "Leap Motion Controller Settings"; - protected const string ProfileDescription = ""; - - protected LeapMotionDeviceManagerProfile instance; - protected SerializedProperty leapControllerOrientation; - protected SerializedProperty leapControllerOffset; - - protected SerializedProperty leapVRDeviceOffsetMode; - protected SerializedProperty leapVRDeviceOffsetY; - protected SerializedProperty leapVRDeviceOffsetZ; - protected SerializedProperty leapVRDeviceOffsetTiltX; - protected SerializedProperty leapVRDeviceOrigin; - - protected SerializedProperty enterPinchDistance; - protected SerializedProperty exitPinchDistance; - - private const string leapDocURL = "https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/CrossPlatform/LeapMotionMRTK.html"; - - // Used for setting the leapVRDeviceOrigin object reference value - Transform leapVRDeviceOriginTransform; - - protected override void OnEnable() - { - base.OnEnable(); - - instance = target as LeapMotionDeviceManagerProfile; - leapControllerOrientation = serializedObject.FindProperty("leapControllerOrientation"); - leapControllerOffset = serializedObject.FindProperty("leapControllerOffset"); - - leapVRDeviceOffsetMode = serializedObject.FindProperty("leapVRDeviceOffsetMode"); - leapVRDeviceOffsetY = serializedObject.FindProperty("leapVRDeviceOffsetY"); - leapVRDeviceOffsetZ = serializedObject.FindProperty("leapVRDeviceOffsetZ"); - leapVRDeviceOffsetTiltX = serializedObject.FindProperty("leapVRDeviceOffsetTiltX"); - leapVRDeviceOrigin = serializedObject.FindProperty("leapVRDeviceOrigin"); - - enterPinchDistance = serializedObject.FindProperty("enterPinchDistance"); - exitPinchDistance = serializedObject.FindProperty("exitPinchDistance"); - } - - /// - /// Display the MRTK header for the profile and render custom properties - /// - public override void OnInspectorGUI() - { - RenderProfileHeader(ProfileTitle, ProfileDescription, target); - - RenderCustomInspector(); - } - - /// - /// Render the custom properties for the Leap Motion profile - /// - public virtual void RenderCustomInspector() - { - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - // Add the documentation help button - using (new EditorGUILayout.HorizontalScope()) - { - // Draw an empty title to align the documentation button to the right - InspectorUIUtility.DrawLabel("", InspectorUIUtility.DefaultFontSize, InspectorUIUtility.ColorTint10); - - InspectorUIUtility.RenderDocumentationButton(leapDocURL); - } - - // Show warning if the leap core assets are not in the project - if (!LeapMotionUtilities.IsLeapInProject) - { - EditorGUILayout.HelpBox("The Leap Motion Core Assets could not be found in your project. For more information, visit the Leap Motion MRTK documentation.", MessageType.Error); - } - else - { - serializedObject.Update(); - - EditorGUILayout.PropertyField(leapControllerOrientation); - - if (instance.LeapControllerOrientation == LeapControllerOrientation.Desk) - { - EditorGUILayout.PropertyField(leapControllerOffset); - } - else if (instance.LeapControllerOrientation == LeapControllerOrientation.Headset) - { - // Allow selection of the LeapVRDeviceOffsetMode if the LeapControllerOrientation is Headset - EditorGUILayout.PropertyField(leapVRDeviceOffsetMode); - - if (leapVRDeviceOffsetMode.enumValueIndex == (int)LeapVRDeviceOffsetMode.ManualHeadOffset) - { - // Display the properties for editing the head offset - EditorGUILayout.PropertyField(leapVRDeviceOffsetY); - EditorGUILayout.PropertyField(leapVRDeviceOffsetZ); - EditorGUILayout.PropertyField(leapVRDeviceOffsetTiltX); - } - else if (leapVRDeviceOffsetMode.enumValueIndex == (int)LeapVRDeviceOffsetMode.Transform) - { - // Display the transform property - // EditorGUILayout.PropertyField() did not allow the setting the transform property in editor - leapVRDeviceOriginTransform = EditorGUILayout.ObjectField("Leap VR Device Origin", leapVRDeviceOrigin.objectReferenceValue, typeof(Transform), true) as Transform; - - instance.LeapVRDeviceOrigin = leapVRDeviceOriginTransform; - } - } - - // Display pinch thresholds - EditorGUILayout.PropertyField(enterPinchDistance); - EditorGUILayout.PropertyField(exitPinchDistance); - - serializedObject.ApplyModifiedProperties(); - } - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.DataProviderConfigurations != null && - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.DataProviderConfigurations.Any(s => profile == s.DeviceManagerProfile); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs.meta deleted file mode 100644 index 01866aa77..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionDeviceManagerProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4e3641da9faaaca4199465a46dad413a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs deleted file mode 100644 index 45b2b53ea..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.IO; - -namespace Microsoft.MixedReality.Toolkit.LeapMotion.Utilities -{ - /// - /// Leap Motion Utilities for determining if the Leap Motion Core Assets are in the project. - /// - static class LeapMotionUtilities - { - // The presence of the LeapXRServiceProvider.cs is used to determine if the Leap Motion Core Assets are in the project. - private const string trackedLeapFileName = "LeapXRServiceProvider.cs"; - - /// - /// If true, the LeapXRServiceProvider.cs file is in the project. The presence of this file is used to determine if the - /// Leap Motion Core Assets are in the project. - /// - public static bool IsLeapInProject => LeapMotionFileDetected(); - - // Check if the LeapXRServiceProvider.cs file is in the project. - private static bool LeapMotionFileDetected() - { - FileInfo[] files = FileUtilities.FindFilesInAssets(trackedLeapFileName); - - if (files.Length > 0) - { - return true; - } - - return false; - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs.meta deleted file mode 100644 index f7c74be8f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/LeapMotionUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15a4fbd7717a19f41908c3282e6e9e3c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef deleted file mode 100644 index 2db16dbf6..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.LeapMotion.Editor", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.Editor.Utilities", - "Microsoft.MixedReality.Toolkit.Providers.LeapMotion" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef.meta deleted file mode 100644 index 80c6c3728..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Editor/MRTK.LeapMotion.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 671ab5dc48d920e4f86b4184416710cb -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs deleted file mode 100644 index c064157e4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs +++ /dev/null @@ -1,298 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Collections.Generic; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using Unity.Profiling; - -#if LEAPMOTIONCORE_PRESENT -using Leap.Unity.Attachments; -using Leap.Unity; -using Leap; -#endif - -namespace Microsoft.MixedReality.Toolkit.LeapMotion.Input -{ - [MixedRealityController( - SupportedControllerType.ArticulatedHand, - new[] { Handedness.Left, Handedness.Right })] - /// - /// Class that represents one Leap Motion Articulated Hand. - /// - public class LeapMotionArticulatedHand : BaseHand - { - /// - /// Constructor for a Leap Motion Articulated Hand - /// - /// Tracking state for the controller - /// Handedness of this controller (Left or Right) - /// The origin of user input for this controller - /// The controller interaction map between physical inputs and the logical representation in MRTK - public LeapMotionArticulatedHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - handDefinition = new ArticulatedHandDefinition(inputSource, controllerHandedness); - } - - internal ArticulatedHandDefinition handDefinition; - - // Set the interactions for each hand to the Default interactions of the hand definition - public override MixedRealityInteractionMapping[] DefaultInteractions => handDefinition?.DefaultInteractions; - - private static readonly ProfilerMarker UpdateStatePerfMarker = new ProfilerMarker("[MRTK] LeapMotionArticulatedHand.UpdateState"); - - // Joint poses of the MRTK hand based on the leap hand data - private readonly Dictionary jointPoses = new Dictionary(); - - #region IMixedRealityHand Implementation - - /// - public override bool TryGetJoint(TrackedHandJoint joint, out MixedRealityPose pose) => jointPoses.TryGetValue(joint, out pose); - - #endregion IMixedRealityHand Implementation - -#if LEAPMOTIONCORE_PRESENT - - /// - /// If true, the current joint pose supports far interaction via the default controller ray. - /// - public override bool IsInPointingPose => handDefinition.IsInPointingPose; - - /// - /// If true, the hand is in air tap gesture, also called the pinch gesture. - /// - public bool IsPinching => handDefinition.IsPinching; - - // Array of TrackedHandJoint names - private static readonly TrackedHandJoint[] TrackedHandJointEnum = (TrackedHandJoint[])Enum.GetValues(typeof(TrackedHandJoint)); - - // The leap AttachmentHand contains the joint poses for the current leap hand in frame. There is one AttachmentHand, either - // left or right, associated with a LeapMotionArticulatedHand. - private AttachmentHand attachmentHand = null; - - // The leap service provider contains the joint data for a hand. The provider's CurrentFrame.Hands is used to retrieve - // metacarpal joint poses each frame. - private LeapServiceProvider leapServiceProvider = null; - - private List metacarpals = new List - { - TrackedHandJoint.ThumbMetacarpalJoint, - TrackedHandJoint.IndexMetacarpal, - TrackedHandJoint.MiddleMetacarpal, - TrackedHandJoint.RingMetacarpal, - TrackedHandJoint.PinkyMetacarpal - }; - - /// - /// Set the Leap hands required for retrieving joint pose data. A Leap AttachmentHand contains AttachmentPointFlags which are equivalent to - /// MRTK's TrackedHandJoint. The Leap AttachmentHand contains all joint poses for a hand except the metacarpals. The Leap Hand is - /// used to retrieve the metacarpal joint poses. - /// - internal void SetAttachmentHands(AttachmentHand attachmentHandLeap, LeapServiceProvider leapMotionServiceProvider) - { - // Set the leap attachment hand with the corresponding handedness - attachmentHand = attachmentHandLeap; - - // Cache a reference to the leap service provider which is used to gather the metacarpal joint data each frame - leapServiceProvider = leapMotionServiceProvider; - } - - /// - /// Adds the joint poses calculated from the Leap Motion Controller to the jointPoses Dictionary. - /// - private void SetJointPoses() - { - foreach (TrackedHandJoint joint in TrackedHandJointEnum) - { - if (attachmentHand != null && attachmentHand.isTracked) - { - // Is the current joint a metacarpal - bool isMetacarpal = metacarpals.Contains(joint); - - // AttachmentPointFlags does not include metacarpals. - if (isMetacarpal) - { - MixedRealityPose metacarpalPose = GetMetacarpalPose(joint); - - jointPoses[joint] = metacarpalPose; - } - else - { - AttachmentPointFlags leapAttachmentFlag = ConvertMRTKJointToLeapJoint(joint); - - // Get the pose of the leap joint - AttachmentPointBehaviour leapJoint = attachmentHand.GetBehaviourForPoint(leapAttachmentFlag); - - // Set the pose calculated by the leap motion to a mixed reality pose - MixedRealityPose pose = new MixedRealityPose(leapJoint.transform.position, leapJoint.transform.rotation); - - jointPoses[joint] = pose; - } - } - else - { - jointPoses[joint] = MixedRealityPose.ZeroIdentity; - } - } - } - - /// - /// Get the pose of the metacarpal joints from the current frame of the LeapServiceProvider because the metacarpal joints - /// are not included in AttachmentPointFlags. The metacarpal joints are those located directly above the wrist. - /// - /// A metacarpal TrackedHandJoint - /// The MixedRealityPose for the leap metacarpal joint - private MixedRealityPose GetMetacarpalPose(TrackedHandJoint metacarpalJoint) - { - int metacarpalIndex = metacarpals.IndexOf(metacarpalJoint); - - // Get the joint poses of the hand each frame - // A reference to the leap Hand cannot be cached and needs to be retrieved each frame - List leapHandsInCurrentFrame = leapServiceProvider.CurrentFrame.Hands; - - foreach (Hand hand in leapHandsInCurrentFrame) - { - if ((hand.IsLeft && ControllerHandedness == Handedness.Left) || - (hand.IsRight && ControllerHandedness == Handedness.Right)) - { - // Leapmotion thumb metacarpal is stored at index 1 - int boneIndex = (metacarpalJoint == TrackedHandJoint.ThumbMetacarpalJoint) ? 1 : 0; - Vector3 position = hand.Fingers[metacarpalIndex].bones[boneIndex].PrevJoint.ToVector3(); - Quaternion rotation = hand.Fingers[metacarpalIndex].bones[boneIndex].Rotation.ToQuaternion(); - - return new MixedRealityPose(position, rotation); - } - } - - return MixedRealityPose.ZeroIdentity; - } - - /// - /// Converts a TrackedHandJoint to a Leap AttachmentPointFlag. An AttachmentPointFlag is Leap's version of MRTK's TrackedHandJoint. - /// - /// TrackedHandJoint to be mapped to a Leap AttachmentPointFlag - /// Leap Motion AttachmentPointFlag pose - static internal AttachmentPointFlags ConvertMRTKJointToLeapJoint(TrackedHandJoint joint) - { - switch (joint) - { - case TrackedHandJoint.Palm: return AttachmentPointFlags.Palm; - case TrackedHandJoint.Wrist: return AttachmentPointFlags.Wrist; - - case TrackedHandJoint.ThumbProximalJoint: return AttachmentPointFlags.ThumbProximalJoint; - case TrackedHandJoint.ThumbDistalJoint: return AttachmentPointFlags.ThumbDistalJoint; - case TrackedHandJoint.ThumbTip: return AttachmentPointFlags.ThumbTip; - - case TrackedHandJoint.IndexKnuckle: return AttachmentPointFlags.IndexKnuckle; - case TrackedHandJoint.IndexMiddleJoint: return AttachmentPointFlags.IndexMiddleJoint; - case TrackedHandJoint.IndexDistalJoint: return AttachmentPointFlags.IndexDistalJoint; - case TrackedHandJoint.IndexTip: return AttachmentPointFlags.IndexTip; - - case TrackedHandJoint.MiddleKnuckle: return AttachmentPointFlags.MiddleKnuckle; - case TrackedHandJoint.MiddleMiddleJoint: return AttachmentPointFlags.MiddleMiddleJoint; - case TrackedHandJoint.MiddleDistalJoint: return AttachmentPointFlags.MiddleDistalJoint; - case TrackedHandJoint.MiddleTip: return AttachmentPointFlags.MiddleTip; - - case TrackedHandJoint.RingKnuckle: return AttachmentPointFlags.RingKnuckle; - case TrackedHandJoint.RingMiddleJoint: return AttachmentPointFlags.RingMiddleJoint; - case TrackedHandJoint.RingDistalJoint: return AttachmentPointFlags.RingDistalJoint; - case TrackedHandJoint.RingTip: return AttachmentPointFlags.RingTip; - - case TrackedHandJoint.PinkyKnuckle: return AttachmentPointFlags.PinkyKnuckle; - case TrackedHandJoint.PinkyMiddleJoint: return AttachmentPointFlags.PinkyMiddleJoint; - case TrackedHandJoint.PinkyDistalJoint: return AttachmentPointFlags.PinkyDistalJoint; - case TrackedHandJoint.PinkyTip: return AttachmentPointFlags.PinkyTip; - - // Metacarpals are not included in AttachmentPointFlags - default: return AttachmentPointFlags.Wrist; - } - } - - /// - /// Updates the joint poses and interactions for the articulated hand. - /// - public void UpdateState() - { - using (UpdateStatePerfMarker.Auto()) - { - // Get and set the joint poses provided by the Leap Motion Controller - SetJointPoses(); - - // Update hand joints and raise event via handDefinition - handDefinition?.UpdateHandJoints(jointPoses); - - UpdateInteractions(); - - UpdateVelocity(); - } - } - - /// - /// Updates the visibility of the hand ray and raises input system events based on joint pose data. - /// - protected void UpdateInteractions() - { - MixedRealityPose pointerPose = jointPoses[TrackedHandJoint.Palm]; - MixedRealityPose gripPose = jointPoses[TrackedHandJoint.Palm]; - MixedRealityPose indexPose = jointPoses[TrackedHandJoint.IndexTip]; - - // Only update the hand ray if the hand is in pointing pose - if (IsInPointingPose) - { - HandRay.Update(pointerPose.Position, GetPalmNormal(), CameraCache.Main.transform, ControllerHandedness); - Ray ray = HandRay.Ray; - - pointerPose.Position = ray.origin; - pointerPose.Rotation = Quaternion.LookRotation(ray.direction); - } - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.SpatialPointer: - Interactions[i].PoseData = pointerPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, pointerPose); - } - break; - case DeviceInputType.SpatialGrip: - Interactions[i].PoseData = gripPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, gripPose); - } - break; - case DeviceInputType.Select: - case DeviceInputType.TriggerPress: - Interactions[i].BoolData = IsPinching; - if (Interactions[i].Changed) - { - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - } - break; - case DeviceInputType.IndexFinger: - Interactions[i].PoseData = indexPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, indexPose); - } - break; - } - } - } -#endif - } - -} diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs.meta deleted file mode 100644 index a655e7298..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionArticulatedHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b2a1be5eb5007cb4d9b7afbf1705ed4e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs deleted file mode 100644 index 18e5ad4ce..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs +++ /dev/null @@ -1,335 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using System.Collections.Generic; -using Unity.Profiling; -using System; - -#if LEAPMOTIONCORE_PRESENT -using Leap; -using Leap.Unity; -using Leap.Unity.Attachments; -#endif - -namespace Microsoft.MixedReality.Toolkit.LeapMotion.Input -{ - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsStandalone | SupportedPlatforms.WindowsEditor, - "Leap Motion Device Manager", - "LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset", - "MixedRealityToolkit.Providers", - true)] - /// - /// Class that detects the tracking state of leap motion hands. This class will only run if the Leap Motion Core Assets are in the project and the Leap Motion Device - /// Manager data provider has been added in the input system configuration profile. - /// - public class LeapMotionDeviceManager : BaseInputDeviceManager, IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public LeapMotionDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - - #region IMixedRealityCapabilityCheck Implementation - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - // Leap Motion only supports Articulated Hands - return (capability == MixedRealityCapability.ArticulatedHand); - } - - - #endregion IMixedRealityCapabilityCheck Implementation -#if LEAPMOTIONCORE_PRESENT - - /// - /// The profile that contains settings for the Leap Motion Device Manager input data provider. This profile is nested under - /// Input > Input Data Providers > Leap Motion Device Manager in the MixedRealityToolkit object in the hierarchy. - /// - public LeapMotionDeviceManagerProfile SettingsProfile => ConfigurationProfile as LeapMotionDeviceManagerProfile; - - /// - /// The LeapServiceProvider is added to the scene at runtime in OnEnable. - /// - public LeapServiceProvider LeapMotionServiceProvider { get; protected set; } - - /// - /// The distance between the index finger tip and the thumb tip required to enter the pinch/air tap selection gesture. - /// The pinch gesture enter will be registered for all values less than the EnterPinchDistance. The default EnterPinchDistance value is 0.02 and must be between 0.015 and 0.1. - /// - private float enterPinchDistance => SettingsProfile.EnterPinchDistance; - - /// - /// The distance between the index finger tip and the thumb tip required to exit the pinch/air tap gesture. - /// The pinch gesture exit will be registered for all values greater than the ExitPinchDistance. The default ExitPinchDistance value is 0.05 and must be between 0.015 and 0.1. - /// - private float exitPinchDistance => SettingsProfile.ExitPinchDistance; - - /// - /// If true, the leap motion controller is connected and detected. - /// - private bool IsLeapConnected => LeapMotionServiceProvider.IsConnected(); - - /// - /// The Leap attachment hands, used to determine which hand is currently tracked by leap. - /// - private AttachmentHands leapAttachmentHands = null; - - /// - /// List of hands that are currently in frame and detected by the leap motion controller. If there are no hands in the current frame, this list will be empty. - /// - private List currentHandsDetectedByLeap => LeapMotionServiceProvider.CurrentFrame.Hands; - - // This value can only be set in the profile, the default is LeapControllerOrientation.Headset. - private LeapControllerOrientation leapControllerOrientation => SettingsProfile.LeapControllerOrientation; - - /// - /// Adds an offset to the game object with LeapServiceProvider attached. This offset is only applied if the leapControllerOrientation - /// is LeapControllerOrientation.Desk and is necessary for the hand to appear in front of the main camera. If the leap controller is on the - /// desk, the LeapServiceProvider is added to the scene instead of the LeapXRServiceProvider. The anchor point for the position of the leap hands is - /// the position of the game object with the LeapServiceProvider attached. - /// - private Vector3 leapHandsOffset => SettingsProfile.LeapControllerOffset; - - // If the Leap Controller Orientation is the Headset, controller offset settings will be exposed in the inspector while using the LeapXRServiceProvider - private LeapVRDeviceOffsetMode leapVRDeviceOffsetMode => SettingsProfile.LeapVRDeviceOffsetMode; - - /// - /// Dictionary to capture all active leap motion hands detected. - /// - private readonly Dictionary trackedHands = new Dictionary(); - - private AttachmentHand leftAttachmentHand = null; - private AttachmentHand rightAttachmentHand = null; - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] LeapMotionDeviceManager.Update"); - - /// - public override void Enable() - { - base.Enable(); - - if (leapControllerOrientation == LeapControllerOrientation.Headset) - { - // If the leap controller is mounted on a headset then add the LeapXRServiceProvider to the scene - // The LeapXRServiceProvider can only be attached to a camera - LeapMotionServiceProvider = CameraCache.Main.gameObject.AddComponent(); - - LeapXRServiceProvider leapXRServiceProvider = LeapMotionServiceProvider as LeapXRServiceProvider; - - // Allow modification of VR specific offset modes if the leapControllerOrientation is Headset - // These settings mirror the modification of the properties exposed in the inspector within the LeapXRServiceProvider attached - // to the main camera - if (leapVRDeviceOffsetMode == LeapVRDeviceOffsetMode.ManualHeadOffset) - { - // Change the offset mode before setting the properties - leapXRServiceProvider.deviceOffsetMode = LeapXRServiceProvider.DeviceOffsetMode.ManualHeadOffset; - - leapXRServiceProvider.deviceOffsetYAxis = SettingsProfile.LeapVRDeviceOffsetY; - leapXRServiceProvider.deviceOffsetZAxis = SettingsProfile.LeapVRDeviceOffsetZ; - leapXRServiceProvider.deviceTiltXAxis = SettingsProfile.LeapVRDeviceOffsetTiltX; - } - else if (leapVRDeviceOffsetMode == LeapVRDeviceOffsetMode.Transform) - { - if (SettingsProfile.LeapVRDeviceOrigin != null) - { - leapXRServiceProvider.deviceOffsetMode = LeapXRServiceProvider.DeviceOffsetMode.Transform; - - leapXRServiceProvider.deviceOrigin = SettingsProfile.LeapVRDeviceOrigin; - } - else - { - Debug.LogError("The Leap VR Device Origin Transform was not set in the LeapMotionDeviceManagerProfile and is null."); - } - } - } - - if (leapControllerOrientation == LeapControllerOrientation.Desk) - { - // Create a separate gameobject if the leap controller is on the desk - GameObject leapProvider = new GameObject("LeapProvider"); - - // The LeapServiceProvider does not need to be attached to a camera, but the location of this gameobject is the anchor for the desk hands - LeapMotionServiceProvider = leapProvider.AddComponent(); - - // Follow the transform of the main camera by adding the service provider as a child of the main camera - leapProvider.transform.parent = CameraCache.Main.transform; - - // Apply hand position offset, an offset is required to render the hands in view and in front of the camera - LeapMotionServiceProvider.transform.position += leapHandsOffset; - } - - // Add the attachment hands to the scene for the purpose of getting the tracking state of each hand and joint positions - GameObject leapAttachmentHandsGameObject = new GameObject("LeapAttachmentHands"); - leapAttachmentHands = leapAttachmentHandsGameObject.AddComponent(); - - // The first hand in attachmentHands.attachmentHands is always left - leftAttachmentHand = leapAttachmentHands.attachmentHands[0]; - - // The second hand in attachmentHands.attachmentHands is always right - rightAttachmentHand = leapAttachmentHands.attachmentHands[1]; - - // Enable all attachment point flags in the leap hand. By default, only the wrist and the palm are enabled. - foreach (TrackedHandJoint joint in Enum.GetValues(typeof(TrackedHandJoint))) - { - leapAttachmentHands.attachmentPoints |= LeapMotionArticulatedHand.ConvertMRTKJointToLeapJoint(joint); - } - } - - /// - public override void Disable() - { - base.Disable(); - - // Only destroy the objects if the application is playing because the objects are added to the scene at runtime - if (Application.isPlaying) - { - // Destroy AttachmentHands GameObject - if (leapAttachmentHands != null) - { - GameObject.Destroy(leapAttachmentHands.gameObject); - } - - if (LeapMotionServiceProvider != null) - { - // Destroy the LeapProvider GameObject if the controller orientation is the desk - if (leapControllerOrientation == LeapControllerOrientation.Desk) - { - GameObject.Destroy(LeapMotionServiceProvider.gameObject); - } - // Destroy the LeapXRServiceProvider attached to the main camera if the controller orientation is headset - else if (leapControllerOrientation == LeapControllerOrientation.Headset) - { - GameObject.Destroy(LeapMotionServiceProvider); - } - } - } - } - - /// - /// Adds a new LeapMotionArticulatedHand to the scene. - /// - /// The handedness (Handedness.Left or Handedness.Right) of the hand to be added - private void OnHandDetected(Handedness handedness) - { - // Only create a new hand if the hand does not exist - if (!trackedHands.ContainsKey(handedness)) - { - var pointers = RequestPointers(SupportedControllerType.ArticulatedHand, handedness); - var inputSource = CoreServices.InputSystem?.RequestNewGenericInputSource($"Leap {handedness} Controller", pointers, InputSourceType.Hand); - var leapHand = new LeapMotionArticulatedHand(TrackingState.Tracked, handedness, inputSource); - - // Set pinch thresholds - leapHand.handDefinition.EnterPinchDistance = enterPinchDistance; - leapHand.handDefinition.ExitPinchDistance = exitPinchDistance; - - // Set the leap attachment hand to the corresponding handedness - if (handedness == Handedness.Left) - { - leapHand.SetAttachmentHands(leftAttachmentHand, LeapMotionServiceProvider); - } - else // handedness == Handedness.Right - { - leapHand.SetAttachmentHands(rightAttachmentHand, LeapMotionServiceProvider); - } - - // Set the pointers for an articulated hand to the leap hand - foreach (var pointer in pointers) - { - pointer.Controller = leapHand; - } - - trackedHands.Add(handedness, leapHand); - - CoreServices.InputSystem.RaiseSourceDetected(inputSource, leapHand); - } - } - - /// - /// Removes the LeapMotionArticulated hand from the scene when the tracking is lost. - /// - /// The handedness (Handedness.Left or Handedness.Right) of the hand to be removed - private void OnHandDetectionLost(Handedness handedness) - { - if (CoreServices.InputSystem != null) - { - CoreServices.InputSystem.RaiseSourceLost(trackedHands[handedness].InputSource, trackedHands[handedness]); - } - - // Disable the pointers if the hand is not tracking - RecyclePointers(trackedHands[handedness].InputSource); - - // Remove hand from tracked hands - trackedHands.Remove(trackedHands[handedness].ControllerHandedness); - } - - /// - /// Update the number of tracked leap hands. - /// - /// The tracking state of the left leap hand - /// The tracking state of the right leap hand - private void UpdateLeapTrackedHands(bool isLeftTracked, bool isRightTracked) - { - // Left Hand Update - if (isLeftTracked && !trackedHands.ContainsKey(Handedness.Left)) - { - OnHandDetected(Handedness.Left); - } - else if (!isLeftTracked && trackedHands.ContainsKey(Handedness.Left)) - { - OnHandDetectionLost(Handedness.Left); - } - - // Right Hand Update - if (isRightTracked && !trackedHands.ContainsKey(Handedness.Right)) - { - OnHandDetected(Handedness.Right); - } - else if (!isRightTracked && trackedHands.ContainsKey(Handedness.Right)) - { - OnHandDetectionLost(Handedness.Right); - } - } - - /// - public override void Update() - { - base.Update(); - - using (UpdatePerfMarker.Auto()) - { - if (IsLeapConnected) - { - // if the number of tracked hands in frame has changed - if (currentHandsDetectedByLeap.Count != trackedHands.Count) - { - UpdateLeapTrackedHands(leftAttachmentHand.isTracked, rightAttachmentHand.isTracked); - } - - // Update the hand/hands that are in trackedhands - foreach (KeyValuePair hand in trackedHands) - { - hand.Value.UpdateState(); - } - } - } - } -#endif - } - -} - diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs.meta deleted file mode 100644 index aeadaebb7..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a36752c03c2961e43b33d4789e51ce50 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs b/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs deleted file mode 100644 index 7a89cc201..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.LeapMotion.Input -{ - /// - /// The profile for the Leap Motion Device Manager. The settings for this profile can be viewed if the Leap Motion Device Manager input data provider is - /// added to the MRTK input configuration profile. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Leap Motion Profile", fileName = "LeapMotionDeviceManagerProfile", order = 4)] - [MixedRealityServiceProfile(typeof(LeapMotionDeviceManager))] - public class LeapMotionDeviceManagerProfile : BaseMixedRealityProfile - { - [Space(10)] - [SerializeField] - [Tooltip("The location of the leap motion controller. LeapControllerOrientation.Headset indicates the controller is mounted on a headset. " + - "LeapControllerOrientation.Desk indicates the controller is placed flat on desk. The default value is set to LeapControllerOrientation.Headset")] - private LeapControllerOrientation leapControllerOrientation = LeapControllerOrientation.Headset; - - /// - /// The location of the leap motion controller. LeapControllerOrientation.Headset indicates the controller is mounted on a headset. - /// LeapControllerOrientation.Desk indicates the controller is placed flat on desk. The default value is set to LeapControllerOrientation.Headset. - /// - public LeapControllerOrientation LeapControllerOrientation => leapControllerOrientation; - - [SerializeField] - [Tooltip("Adds an offset to the game object with LeapServiceProvider attached. This offset is only applied if the leapControllerOrientation " + - "is LeapControllerOrientation.Desk and is necessary for the hand to appear in front of the main camera. If the leap controller is on the " + - "desk, the LeapServiceProvider is added to the scene instead of the LeapXRServiceProvider. The anchor point for the hands is the position of the " + - "game object with the LeapServiceProvider attached.")] - private Vector3 leapControllerOffset = new Vector3(0, -0.2f, 0.35f); - - /// - /// Adds an offset to the game object with LeapServiceProvider attached. This offset is only applied if the leapControllerOrientation - /// is LeapControllerOrientation.Desk and is necessary for the hand to appear in front of the main camera. If the leap controller is on the - /// desk, the LeapServiceProvider is added to the scene instead of the LeapXRServiceProvider. The anchor point for the hands is the position of the - /// game object with the LeapServiceProvider attached. - /// - public Vector3 LeapControllerOffset - { - get => leapControllerOffset; - set => leapControllerOffset = value; - } - - [SerializeField] - [Tooltip("The VR offset mode determines the calculation method for Leap Motion Controller placement while in VR. " + - " LeapVRDeviceOffsetModes: " + - " Default - No offset is applied to the controller." + - " Manual Head Offset - Three new properties with a range constraint control the offset, LeapVRDeviceOffsetY, LeapVRDeviceOffsetZ and LeapVRDeviceOffsetTiltX." + - " Transform - The new Leap Controller origin is set to a different transform." + - " The LeapVRDeviceOffsetMode property is only taken into account if the LeapControllerOrientation is Headset.")] - private LeapVRDeviceOffsetMode leapVRDeviceOffsetMode = LeapVRDeviceOffsetMode.Default; - - /// - /// The VR offset mode determines the calculation method for Leap Motion Controller placement while in VR. - /// LeapVRDeviceOffsetModes: - /// Default - No offset is applied to the controller. - /// Manual Head Offset - Three new properties with a range constraint control the offset, LeapVRDeviceOffsetY, LeapVRDeviceOffsetZ and LeapVRDeviceOffsetTiltX. - /// Transform - The new Leap Controller origin is set to a different transform. - /// The LeapVRDeviceOffsetMode property is only taken into account if the LeapControllerOrientation is Headset. - /// - public LeapVRDeviceOffsetMode LeapVRDeviceOffsetMode - { - get => leapVRDeviceOffsetMode; - set => leapVRDeviceOffsetMode = value; - } - - [Range(-0.5f, 0.5f)] - [SerializeField] - [Tooltip("The Y-axis offset of the Leap Motion controller if the LeapVRDeviceOffsetMode is Manual Head Offset and the LeapControllerOrientation is Headset. This property and the range " + - "constraints mirror the range specified in the LeapXRServiceProvider. ")] - private float leapVRDeviceOffsetY = 0.0f; - - /// - /// The Y-axis offset of the Leap Motion controller if the LeapVRDeviceOffsetMode is Manual Head Offset and the LeapControllerOrientation is Headset. This property and the range - /// constraints mirror the range specified in the LeapXRServiceProvider. - /// - public float LeapVRDeviceOffsetY - { - get => leapVRDeviceOffsetY; - set => leapVRDeviceOffsetY = value; - } - - [Range(-0.5f, 0.5f)] - [SerializeField] - [Tooltip("The Z-axis offset of the Leap Motion controller if the LeapVRDeviceOffsetMode is Manual Head Offset and the LeapControllerOrientation is Headset. This property and the range " + - "constraints mirror the range specified in the LeapXRServiceProvider. ")] - private float leapVRDeviceOffsetZ = 0.0f; - - /// - /// The Z-axis offset of the Leap Motion controller if the LeapVRDeviceOffsetMode is Manual Head Offset and the LeapControllerOrientation is Headset. This property and the range - /// constraints mirror the range specified in the LeapXRServiceProvider. - /// - public float LeapVRDeviceOffsetZ - { - get => leapVRDeviceOffsetZ; - set => leapVRDeviceOffsetZ = value; - } - - [Range(-90, 90)] - [SerializeField] - [Tooltip("The X-axis tilt offset of the Leap Motion Controller if the LeapVRDeviceOffsetMode is Manual Head Offset and the " + - "LeapControllerOrientation is Headset. This property and the range constraints mirror the range specified in the LeapXRServiceProvider. ")] - private float leapVRDeviceOffsetTiltX = 0.0f; - - /// - /// The X-axis tilt offset of the Leap Motion Controller if the LeapVRDeviceOffsetMode is Manual Head Offset and the - /// LeapControllerOrientation is Headset. This property and the range constraints mirror the range specified in the LeapXRServiceProvider. - /// - public float LeapVRDeviceOffsetTiltX - { - get => leapVRDeviceOffsetTiltX; - set => leapVRDeviceOffsetTiltX = value; - } - - [SerializeField] - [Tooltip("The origin the Leap Motion Controller if the LeapVRDeviceOffsetMode is Transform and the LeapControllerOrientation is Headset.")] - private Transform leapVRDeviceOrigin; - - /// - /// The origin the Leap Motion Controller if the LeapVRDeviceOffsetMode is Transform and the LeapControllerOrientation is Headset. - /// - public Transform LeapVRDeviceOrigin - { - get => leapVRDeviceOrigin; - set => leapVRDeviceOrigin = value; - } - - [SerializeField] - [Tooltip("The distance between the index finger tip and the thumb tip required to enter the pinch/air tap selection gesture. " + - "The pinch gesture enter will be registered for all values less than the EnterPinchDistance. The default EnterPinchDistance value is 0.02 and must be between 0.015 and 0.1. ")] - private float enterPinchDistance = 0.02f; - - /// - /// The distance between the index finger tip and the thumb tip required to enter the pinch/air tap selection gesture. - /// The pinch gesture enter will be registered for all values less than the EnterPinchDistance. The default EnterPinchDistance value is 0.02 and must be between 0.015 and 0.1. - /// - public float EnterPinchDistance - { - get => enterPinchDistance; - set => enterPinchDistance = value; - } - - [SerializeField] - [Tooltip("The minimum distance between the index finger tip and the thumb tip required to exit the pinch/air tap gesture to deselect. The distance between the thumb and " + - "the index tip must be greater than the ExitPinchDistance to raise the OnInputUp event")] - private float exitPinchDistance = 0.05f; - - /// - /// The minimum distance between the index finger tip and the thumb tip required to exit the pinch/air tap gesture to deselect. The distance between the thumb and - /// the index tip must be greater than the ExitPinchDistance to raise the OnInputUp event - /// - public float ExitPinchDistance - { - get => exitPinchDistance; - set => exitPinchDistance = value; - } - } - -} - diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs.meta deleted file mode 100644 index 12a908445..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/LeapMotionDeviceManagerProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 79cc5398fde98374abf75c49e7cb4740 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef b/AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef deleted file mode 100644 index 5cda247a8..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.LeapMotion", - "references": [ - "Microsoft.MixedReality.Toolkit", - "LeapMotion", - "LeapMotion.LeapCSharp" - ], - "includePlatforms": [ - "Editor", - "WindowsStandalone32", - "WindowsStandalone64" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef.meta deleted file mode 100644 index 4c94b7c2a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/MRTK.LeapMotion.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3adca5ba4817b4d41b28316874ed7809 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles.meta deleted file mode 100644 index 6d453906c..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8c5f715886eafbf4caa5a71df25c6177 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset deleted file mode 100644 index a7d1db20e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset +++ /dev/null @@ -1,56 +0,0 @@ -%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: 11500000, guid: 7612acbc1a4a4ed0afa5f4ccbe42bee4, type: 3} - m_Name: DefaultLeapMotionConfigurationProfile - m_EditorClassIdentifier: - isCustomProfile: 0 - targetExperienceScale: 3 - enableCameraSystem: 1 - cameraProfile: {fileID: 11400000, guid: 8089ccfdd4494cd38f676f9fc1f46a04, type: 2} - cameraSystemType: - reference: Microsoft.MixedReality.Toolkit.CameraSystem.MixedRealityCameraSystem, - Microsoft.MixedReality.Toolkit.Services.CameraSystem - enableInputSystem: 1 - inputSystemProfile: {fileID: 11400000, guid: 62d59609c03ce674cbd34d0fd9b89bb0, type: 2} - inputSystemType: - reference: Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem, Microsoft.MixedReality.Toolkit.Services.InputSystem - enableBoundarySystem: 1 - boundarySystemType: - reference: Microsoft.MixedReality.Toolkit.Boundary.MixedRealityBoundarySystem, - Microsoft.MixedReality.Toolkit.Services.BoundarySystem - boundaryVisualizationProfile: {fileID: 11400000, guid: 6d28cce596b44bd3897ca86f8b24e076, - type: 2} - enableTeleportSystem: 1 - teleportSystemType: - reference: Microsoft.MixedReality.Toolkit.Teleport.MixedRealityTeleportSystem, - Microsoft.MixedReality.Toolkit.Services.TeleportSystem - enableSpatialAwarenessSystem: 1 - spatialAwarenessSystemType: - reference: Microsoft.MixedReality.Toolkit.SpatialAwareness.MixedRealitySpatialAwarenessSystem, - Microsoft.MixedReality.Toolkit.Services.SpatialAwarenessSystem - spatialAwarenessSystemProfile: {fileID: 11400000, guid: 97da727944a3d7b4caf42d2273271a24, - type: 2} - diagnosticsSystemProfile: {fileID: 11400000, guid: 478436bd1083882479a52d067e98e537, - type: 2} - enableDiagnosticsSystem: 1 - diagnosticsSystemType: - reference: Microsoft.MixedReality.Toolkit.Diagnostics.MixedRealityDiagnosticsSystem, - Microsoft.MixedReality.Toolkit.Services.DiagnosticsSystem - sceneSystemProfile: {fileID: 11400000, guid: 069efa41032a317409790a6a08435311, type: 2} - enableSceneSystem: 0 - sceneSystemType: - reference: Microsoft.MixedReality.Toolkit.SceneSystem.MixedRealitySceneSystem, - Microsoft.MixedReality.Toolkit.Services.SceneSystem - registeredServiceProvidersProfile: {fileID: 11400000, guid: efbaf6ea540c69f4fb75415a5d145a53, - type: 2} - useServiceInspectors: 0 - renderDepthBuffer: 0 diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset.meta deleted file mode 100644 index 6027d8fa0..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionConfigurationProfile.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f294f783b6b196849bd01c5d1c64b951 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset deleted file mode 100644 index 694c94569..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset +++ /dev/null @@ -1,113 +0,0 @@ -%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: 11500000, guid: b71cb900fa9dec5488df2deb180db58f, type: 3} - m_Name: DefaultLeapMotionInputSystemProfile - m_EditorClassIdentifier: - isCustomProfile: 0 - dataProviderConfigurations: - - componentType: - reference: Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input.WindowsMixedRealityDeviceManager, - Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality - componentName: Windows Mixed Reality Device Manager - priority: 0 - runtimePlatform: 8 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.OpenVR.Input.OpenVRDeviceManager, - Microsoft.MixedReality.Toolkit.Providers.OpenVR - componentName: OpenVR Device Manager - priority: 0 - runtimePlatform: 7 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Input.UnityInput.UnityJoystickManager, - Microsoft.MixedReality.Toolkit - componentName: Unity Joystick Manager - priority: 0 - runtimePlatform: -1 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Input.UnityInput.UnityTouchDeviceManager, - Microsoft.MixedReality.Toolkit - componentName: Unity Touch Device Manager - priority: 0 - runtimePlatform: -1 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Windows.Input.WindowsSpeechInputProvider, - Microsoft.MixedReality.Toolkit.Providers.WindowsVoiceInput - componentName: Windows Speech Input - priority: 0 - runtimePlatform: 25 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Windows.Input.WindowsDictationInputProvider, - Microsoft.MixedReality.Toolkit.Providers.WindowsVoiceInput - componentName: Windows Dictation Input - priority: 0 - runtimePlatform: 25 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Input.HandJointService, Microsoft.MixedReality.Toolkit - componentName: Hand Joint Service - priority: 0 - runtimePlatform: -1 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Input.InputSimulationService, Microsoft.MixedReality.Toolkit.Services.InputSimulation - componentName: Input Simulation Service - priority: 0 - runtimePlatform: 208 - deviceManagerProfile: {fileID: 11400000, guid: 41478039094d47641bf4e09c20e61a5a, - type: 2} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Input.InputRecordingService, Microsoft.MixedReality.Toolkit.Services.InputAnimation - componentName: Input Recording Service - priority: 0 - runtimePlatform: -1 - deviceManagerProfile: {fileID: 11400000, guid: d0f5a7f6d1f9f0b4cb6eb35c797a0f04, - type: 2} - - componentType: - reference: Microsoft.MixedReality.Toolkit.Input.InputPlaybackService, Microsoft.MixedReality.Toolkit.Services.InputSimulation - componentName: Input Playback Service - priority: 0 - runtimePlatform: 208 - deviceManagerProfile: {fileID: 0} - - componentType: - reference: Microsoft.MixedReality.Toolkit.LeapMotion.Input.LeapMotionDeviceManager, - Microsoft.MixedReality.Toolkit.Providers.LeapMotion - componentName: Leap Motion Device Manager - priority: 0 - runtimePlatform: 17 - deviceManagerProfile: {fileID: 11400000, guid: c33dde6976554154d8fbcfba33b69638, - type: 2} - focusProviderType: - reference: Microsoft.MixedReality.Toolkit.Input.FocusProvider, Microsoft.MixedReality.Toolkit.Services.InputSystem - raycastProviderType: - reference: Microsoft.MixedReality.Toolkit.Input.DefaultRaycastProvider, Microsoft.MixedReality.Toolkit.Services.InputSystem - focusQueryBufferSize: 128 - focusIndividualCompoundCollider: 0 - inputActionsProfile: {fileID: 11400000, guid: 723eb97b02944311b92861f473eee53e, - type: 2} - inputActionRulesProfile: {fileID: 11400000, guid: 03945385d89102f41855bc8f5116b199, - type: 2} - pointerProfile: {fileID: 11400000, guid: 48aa63a9725047b28d4137fd0834bc31, type: 2} - gesturesProfile: {fileID: 11400000, guid: bd7829a9b29409045a745b5a18299291, type: 2} - speechCommandsProfile: {fileID: 11400000, guid: e8d0393e66374dae9646851a57dc6bc1, - type: 2} - enableControllerMapping: 1 - controllerMappingProfile: {fileID: 11400000, guid: 39ded1fd0711a0c448413d0e1ec4f7f3, - type: 2} - controllerVisualizationProfile: {fileID: 11400000, guid: 345c06fdf3732db46b96299bd3cba653, - type: 2} - handTrackingProfile: {fileID: 11400000, guid: 7f1e3cd673742f94ca860ac7ae733024, - type: 2} diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset.meta deleted file mode 100644 index 9e4957ad4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/DefaultLeapMotionInputSystemProfile.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 62d59609c03ce674cbd34d0fd9b89bb0 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset deleted file mode 100644 index 723aeef74..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset +++ /dev/null @@ -1,24 +0,0 @@ -%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: 11500000, guid: 79cc5398fde98374abf75c49e7cb4740, type: 3} - m_Name: LeapMotionDeviceManagerProfile - m_EditorClassIdentifier: - isCustomProfile: 0 - leapControllerOrientation: 0 - leapControllerOffset: {x: 0, y: -0.2, z: 0.35} - leapVRDeviceOffsetMode: 0 - leapVRDeviceOffsetY: 0 - leapVRDeviceOffsetZ: 0 - leapVRDeviceOffsetTiltX: 0 - leapVRDeviceOrigin: {fileID: 0} - enterPinchDistance: 0.02 - exitPinchDistance: 0.05 diff --git a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset.meta b/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset.meta deleted file mode 100644 index 6b9f533d7..000000000 --- a/AR-ROS/Assets/MRTK/Providers/LeapMotion/Profiles/LeapMotionDeviceManagerProfile.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c33dde6976554154d8fbcfba33b69638 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/License.txt b/AR-ROS/Assets/MRTK/Providers/License.txt deleted file mode 100644 index 63447fd8b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/License.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) Microsoft Corporation. - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/License.txt.meta b/AR-ROS/Assets/MRTK/Providers/License.txt.meta deleted file mode 100644 index 988d8f88f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/License.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a9fa54d72d9366b49b60047eb59fe03f -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/MRTK.Providers.sentinel b/AR-ROS/Assets/MRTK/Providers/MRTK.Providers.sentinel deleted file mode 100644 index e69de29bb..000000000 diff --git a/AR-ROS/Assets/MRTK/Providers/MRTK.Providers.sentinel.meta b/AR-ROS/Assets/MRTK/Providers/MRTK.Providers.sentinel.meta deleted file mode 100644 index a0f437b15..000000000 --- a/AR-ROS/Assets/MRTK/Providers/MRTK.Providers.sentinel.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: efc47659760747d4d80477aa049ee71e -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus.meta b/AR-ROS/Assets/MRTK/Providers/Oculus.meta deleted file mode 100644 index 508632137..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5a510708b8a249845a589d629cdab6df -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK.meta deleted file mode 100644 index da1f4cd76..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 153645908933d094c8beee09749bf513 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs.meta deleted file mode 100644 index 6215aec55..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f861bdcd4771e9f4daa2ad8514f84d8a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers.meta deleted file mode 100644 index 537ed333a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: be29ee87a5ee9c74190921a20bf105a7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs deleted file mode 100644 index 654f35b9c..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License.``` - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.XRSDK.Input; -using UnityEngine; -using Unity.Profiling; -using UnityEngine.XR; - -#if OCULUS_ENABLED -using Unity.XR.Oculus; -#endif - -namespace Microsoft.MixedReality.Toolkit.XRSDK.Oculus.Input -{ - [MixedRealityController( - SupportedControllerType.OculusTouch, - new[] { Handedness.Left, Handedness.Right }, - "StandardAssets/Textures/OculusControllersTouch")] - public class OculusXRSDKTouchController : GenericXRSDKController - { - /// - /// Constructor. - /// - public OculusXRSDKTouchController(TrackingState trackingState, Handedness controllerHandedness, - IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Axis1D.PrimaryIndexTrigger", AxisType.SingleAxis, DeviceInputType.Trigger), - new MixedRealityInteractionMapping(2, "Axis1D.PrimaryIndexTrigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch), - new MixedRealityInteractionMapping(3, "Axis1D.PrimaryIndexTrigger Near Touch", AxisType.Digital, DeviceInputType.TriggerNearTouch), - new MixedRealityInteractionMapping(4, "Axis1D.PrimaryIndexTrigger Press", AxisType.Digital, DeviceInputType.TriggerPress), - new MixedRealityInteractionMapping(5, "Axis1D.PrimaryHandTrigger Press", AxisType.SingleAxis, DeviceInputType.GripPress), - new MixedRealityInteractionMapping(6, "Axis2D.PrimaryThumbstick", AxisType.DualAxis, DeviceInputType.ThumbStick), - new MixedRealityInteractionMapping(7, "Button.PrimaryThumbstick Touch", AxisType.Digital, DeviceInputType.ThumbStickTouch), - new MixedRealityInteractionMapping(8, "Button.PrimaryThumbstick Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch), - new MixedRealityInteractionMapping(9, "Button.PrimaryThumbstick Press", AxisType.Digital, DeviceInputType.ThumbStickPress), - new MixedRealityInteractionMapping(10, "Button.Three Press", AxisType.Digital, DeviceInputType.PrimaryButtonPress), - new MixedRealityInteractionMapping(11, "Button.Four Press", AxisType.Digital, DeviceInputType.SecondaryButtonPress), - new MixedRealityInteractionMapping(12, "Button.Three Touch", AxisType.Digital, DeviceInputType.PrimaryButtonTouch), - new MixedRealityInteractionMapping(13, "Button.Four Touch", AxisType.Digital, DeviceInputType.SecondaryButtonTouch), - new MixedRealityInteractionMapping(14, "Button.Start Press", AxisType.Digital, DeviceInputType.Menu), - new MixedRealityInteractionMapping(15, "Touch.PrimaryThumbRest Touch", AxisType.Digital, DeviceInputType.ThumbTouch), - new MixedRealityInteractionMapping(16, "Touch.PrimaryThumbRest Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch) - }; - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Axis1D.SecondaryIndexTrigger", AxisType.SingleAxis, DeviceInputType.Trigger), - new MixedRealityInteractionMapping(2, "Axis1D.SecondaryIndexTrigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch), - new MixedRealityInteractionMapping(3, "Axis1D.SecondaryIndexTrigger Near Touch", AxisType.Digital, DeviceInputType.TriggerNearTouch), - new MixedRealityInteractionMapping(4, "Axis1D.SecondaryIndexTrigger Press", AxisType.Digital, DeviceInputType.TriggerPress), - new MixedRealityInteractionMapping(5, "Axis1D.SecondaryHandTrigger Press", AxisType.SingleAxis, DeviceInputType.GripPress), - new MixedRealityInteractionMapping(6, "Axis2D.SecondaryThumbstick", AxisType.DualAxis, DeviceInputType.ThumbStick), - new MixedRealityInteractionMapping(7, "Button.SecondaryThumbstick Touch", AxisType.Digital, DeviceInputType.ThumbStickTouch), - new MixedRealityInteractionMapping(8, "Button.SecondaryThumbstick Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch), - new MixedRealityInteractionMapping(9, "Button.SecondaryThumbstick Press", AxisType.Digital, DeviceInputType.ThumbStickPress), - new MixedRealityInteractionMapping(10, "Button.One Press", AxisType.Digital, DeviceInputType.PrimaryButtonPress), - new MixedRealityInteractionMapping(11, "Button.Two Press", AxisType.Digital, DeviceInputType.SecondaryButtonPress), - new MixedRealityInteractionMapping(12, "Button.One Touch", AxisType.Digital, DeviceInputType.PrimaryButtonTouch), - new MixedRealityInteractionMapping(13, "Button.Two Touch", AxisType.Digital, DeviceInputType.SecondaryButtonTouch), - new MixedRealityInteractionMapping(14, "Touch.SecondaryThumbRest Touch", AxisType.Digital, DeviceInputType.ThumbTouch), - new MixedRealityInteractionMapping(15, "Touch.SecondaryThumbRest Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch) - }; - - - private static readonly ProfilerMarker UpdateButtonDataPerfMarker = new ProfilerMarker("[MRTK] OculusXRSDKController.UpdateButtonData"); - protected override void UpdateButtonData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdateButtonDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.Digital); - - InputFeatureUsage buttonUsage; - bool usingOculusButtonData = false; - -#if OCULUS_ENABLED - switch (interactionMapping.InputType) - { - case DeviceInputType.TriggerTouch: - buttonUsage = OculusUsages.indexTouch; - usingOculusButtonData = true; - break; - case DeviceInputType.TriggerNearTouch: - buttonUsage = OculusUsages.indexTouch; - usingOculusButtonData = true; - break; - case DeviceInputType.ThumbTouch: - case DeviceInputType.ThumbNearTouch: - buttonUsage = OculusUsages.thumbrest; - usingOculusButtonData = true; - break; - } -#endif - - if (!usingOculusButtonData) - { - base.UpdateButtonData(interactionMapping, inputDevice); - } - else - { - if (inputDevice.TryGetFeatureValue(buttonUsage, out bool buttonPressed)) - { - interactionMapping.BoolData = buttonPressed; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs.meta deleted file mode 100644 index d09d4a8c1..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Controllers/OculusXRSDKTouchController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 18822c70ffdbc624e9348edac940a605 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest.meta deleted file mode 100644 index 4e20e98bc..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 19a7754743a46294398f72e299419593 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art.meta deleted file mode 100644 index 2e95a7865..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 02b21906332cffc4f9c32ab52e466bac -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding.meta deleted file mode 100644 index c7a2016c6..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6738914a9fe93844b91a37f17e5a2536 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding/MRTK-Quest_Logo.png b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding/MRTK-Quest_Logo.png deleted file mode 100644 index 05a54c56a059c9d1de83257973627a2c05053139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67107 zcmeFYX*iU97(QH2Pa)Zobu39GDf>Q{rxcYfi4sN#$-a$c7%jFKB*{)Clzq#RWilAD zO_ngWF~nGgnK6vP;Jx)c{kL!LalG$wydT~V4l{Gy_iw+h>pZXP{Jp$wtj}>=`1qki zhd6HDxOV5zp(BVxhYtT@JqG+@XRs>>{5$M>NB`=f(ms(z;LG36SB$P4I#iLs&a^uU zd}s5zVd;D55NGSb-{B6=Pmh2fPx@WI?`P)e%48PY*$>+%@9)X+US*XC=f29SP}6XJN%*v;Q&4q|c(*8mImMfA)WQb}al$ z2x@;1uB#JglSKLV;MjX5Qe2ZDdyHI(tPqE7;>YhvvAt%6s`Odl5ez~UDN$d%S7(P*W!HB8zjM|$JrIEQMAwXeMQwsu>o`EF%8v$bz!%;} zO$3%yK5Ti8Nh=y}P0*UjX1D*JJuiX@0ZcZjN8%xrXYk^j3!p`ZH+`{#ocp!y{5T;# zwS+DAtu^~M{on+ij6bLNg@NsH2(s6J8w^c_R&J<{KXM%|mR?n;LG5i9eV$(WJ0yi1 zr#98uyuDOpA1cw41A#Q`#)D%_Gy=Wt?cqBswUb_d7T5%T971X!H~Y4(zrG$TptkB! zCvl7?0-A|9s~Y}M!1zDIqA$7GXwgVjaSg&AVf(uQR02%S7Lxzre1kIDo6fhg592>OW>T z_KfB0$QoMM%B?;R#6lnSHBpN{Fx6|d3vfbIiFN$|2RJE2Y%6)fx1L%j4d=Ki9 z8Cn-)7x%O1p4wH8+KN%rv%m?8uE3^pBLoL^;3~;JDK;>diS`@g0jS*x^<87PlL(hW zR#cQYVl-}9VQ0t;R536thn7an0=U?geJK$D5Wbya?pH!ks1D<=Uww%x^nc zP<6P)up>SEo-QNjp%%C~834K`=7C4-xYN6e%J>Isx=5uBiwY9{U8r)e{$U#!+!IsOP2_kZCG z*=JUPpa&aluPo?`=4v$+jpJ%67~c4)5y=WV@>p$x@hv^)YZCG8(mOQJ< zhEmR^SXDl{IUAO-GM8ctn~ky#`e`2bWB|9>MY{hdLHbv&}rla2N!f2=5nCxV>UdaTlN}eZG+SE2)kNX66lyi1aJ{3inZ|B-t zEXWa-*jM?x*13rv@sH4rG=XLiseS|+C&O8r;n|Giz+Wz8h2#h3cP+6=WvgE*KG?Ok z$4X8S;+Rg|m0Y58?11ssjdz*^kT!$D@#Zga9CnDkFqEekD@0 z4px=B$-ajb<$m7q0_>C_ZhdiZlJ?WF>y7m4ymZCx_Hr4HZL3L9balUG)V?j~K6X}P zThRUzr+AX^*0lw~iKvkYyO}n0kY~qP=0G5t3>cTR>iEl*oUlD_+L5-b!^ItsobO|| zEgAm7akfGZR~XdyFwaNXeoGjl-0wwrVAsP60q^Z@;?)qME>ix}l7s95vTm8~A1^;> ztQ&1?iA}K|_U=%z=Teh%>-2F}b^!v2$NgEHbB=p>u_s`KT7=C-=2p7`7B=OW!b6-M zcdw}Mz6oJR$)T8)Joa@zFCSTv=MTq!xE?DU#!;(;)pTtO`ga4`Q+W|?@4nS6NQ0{| zQXKYPquR4cCssnPK2OXVWn5?!7^W0=EnF#*3wWHzdJK}$*ly5hriSkX?YE0uk5Q0fB9G>T4y$Vp$TqDH z@DPg7QX;7zBJMW;Zg^7OpSqf?as_(7ZtJa;@OxFzGD}mrg8E7cN$(;dCEt*dC$i5F zAzcLtyI$F95)ZdEcPLaDjA^35Vi5v}sS|(a?+jd-%hEsS?87~zC86W-%i5bSaU5z> z>Sv720ndrGpNtPE=3`V}bxY8ur-Jw!6CUTl##}t^bLmM5i7Jn7DIdjajl*+7W4^>p z)nBWp95H!}&DMsGYS@FnP<1+DD6?i~KYxjx{D_ah7n&Cd?}I!9Z2S`8VnCl)qoE2; z5jidK$Ev~7X00Z)`@447Y!nM!X2LSP+nSrzC;eZGXy z&d}CL_#H&b1ZimO^pRiEvl*_?%>J{gs#ps8nKM*fK~tF*@h!fnVx@}QjH`AT6b^G& z%^!Wxh!~r21VXqIxshf(J3^>|t&H&yg*h z?RNss)zK@!O8B-Ct_9CW@a5|A5jv`8Mi1b@FOO{gvYhZ7>J*%;5`RKXRgtYV?igSs zEqwQ&IELfL6*d2*a^K&eb^ZCXlL)WgFC(hx?{|qiaBCs(YJd?YUSWjy&90`Wcto8fW7W_22l}wzrC~ju{(^zIgp1hIIxJ_jS+iYPB~~T<-ex*5RPVXy)){&7n##Q z$b1|w=;2H3^KT7!QE`?z{hVFSO+?5gcbDz>@5A)!86V=?ys)%Yh0ok4#3P)NTxPiK zzNtCmN*dKNN<9R^4$;Gy!2*?iaF;RZlq19BU_Jez!-M(t-oNeoYwtho5cQc($w@9Z zhp^p^do?St@p`Ie9I&};sJ+~H%4|b`G)+?&@JlUO0h2#jRVEhHspx?8iVMs@>}MBL zNbX>)89eXgm!-JJqn=If11z@eiWD7J5vNVFRD^$Gx?3pA&P%pd;8p_k>+mR+|L?#0mf3 zo@?3~w!#6#W5U6laYo>gbi>CuQGN&4dkk$RrS)bb);y4KH5;+LsMkrDkKnMA>KvWw z!aoyGZBv>m6ByoMt@(qlH-s+yhe1jkR^}sJFqr{U(tQLRaEj(IE_!Y&$02f=&nR)d z>;hLG1OaW;1O6Q(p*9|7tkKQ^nz4NHk)8nAdmKIrpuT^XZpe8$TpY9AxHwqQKuD)9 z6_u&>DGrE*&9JE%3sso&AwGLP{R2(iRpqRs|BU4Y_MhXBDkZGeAjddTDkr4UJ2H_z zV<5+ufj+=_MHiVcod1X(5}1<8AC|){cH}a%{D2X0;E@2bZ#Z~|5GDTA`v4e%T>cEo zFXfp4VzgThMZ&mXde!g~>a90+{Pvi)B*Q8;GAOg~NWkal{%KVZjASQ7UAFmJJ$%Y& z_Q0Go?LLO??{0czz8d8Zp{IdlovOpd1Lq^y6aUaElDtQ_IDN!6%rWV_32ZjSdl=`e z)+ayEyh|Vd==E%Lz9(%qGB%O&hYfu&L&^}Ms3i@e=Z*carkH*uXI0>FZfmGWv=Q3# z!kz1^71DViKWqC_b2f(xc^SlKJJtou+_JIXlw}*=@2Lbmy2_Uo8t*&Wa zR*;$pFy*=ut6GoIy91-!ri{4rZqdBs!{ctVk;(r}`GeAlM#`*UL(m?jl`GCxe+)ou zS~DTN|J*)+KXFPY)DU>b6q^{Y3V$<3&|f3$BL;tlDj151peW5B#GTF?R%;t0c@4h7 zhNG}?```j+BydxcCGd z9~ze{8Hd$AJwK!Fc=|y!F|C&WRrvw;J#3~lQfdQk+um4?x)FCi(hgl$WKrT%wuxq! zdo*GVcR#?BZXGw1CY%M0{+ID(QCrwl{6TcKC&|l3h#Nvk<$9kIF`YP5{rzQS$w>ao5AL#l9J(-ZS{U1<6t=fTY-b_O zu7fy$^UPM?6zEC{VL#&Qi z_a2XjFK60$Yh5bVSE6q9@D|ijuTF8Smhgs9==H1qNOOoS8KYD)7HpuFO=zb^&-MnD zjQRFy!pQH{1v25~APlfLFu|CBRu%m^yKiXa)>w9!2tjObk4RSI5FK~UnZgSH21c$2 zj@Rwo>j$|~H1`(g97h4`K)V`W0sW(Kh*OAwsox0j}P1S_F0>2mot|u>S;dpmGHFs0w`2KWLM}u7#BWUrbF0~a;=4z7? z3As&Ndzs}sD4x+y*MXZHN5~0yN{OM!x9{sYHp%w}?tR8xXL=27l<}!G*g5F*UTqXcw6=wN!!qx>Z*R+Bvvf{H^_wFamMU8#5e>8&2felf=G-=F zXUz_IXoQdC00}ER@<;Nt6qVIuj7E%qB%sN&^+W+<`N1XC(yfs#)c)#hjDumTlGIiO zi;2i~SXF)OZnwEMLmutM$2{d}K*2PRl-Ur&lRz&twcvaJUqr zb!*~8xAV6KI=U@n>-)SkYRWr7I;mDP#<%_4U~GupUjhA0gGu$@Kno0PPwgaq+*z(^ z{f^|vVw+h}_X34T)Hav~=%wQ|t-Xvo6kL+5UbQACtzWM4~Z7R;lxUGFkL?VY^20P^KQr(q## ztEFH}=VA-XJ==yMB!V9ykQqQJUra{rQp#9E3Mxu_5w-o_6uCM1r@+}~GCf$O#B8SbTZ@~<-8B8>12bnpxtuib# zMu-Z+7|+cq4c7&=VHn2yDyK$Z%KP%@i*iVo4?{CSxkX~UHIt1(Jyv|G{KqR2(f-|@ zBAOjg_)l@s1Gs!`Utu*I52Pce)W_1P8j(P9&AF^`?G|j-NR6-I?wRVDWh5Vc3{JLp z?uD;5)s9Zm#ywH~5O&iJ*~U*>7w++G8!;5Le`MO_w^K8AIapai6;=3nZKpCjVsx5d zG1)3RR$mU;VXD8Xa0>hQe8|*HRX>lx(qnhlpfxzrw2nWgy5#u-Q}?#|YNfX$Z>7=y*9>60}s8TXW^iD{prKRr@7 zB0$j75y%dU2Az-ePv$2Muotx}cr+6}y|1IJJ7i@P$^fu0dP?yJnha2&?zfk%RFPjX z`u$~fGchx~EdD5}+FQG`iT&RJBm&+60)_Br(@8=1^**a81TVs~$!GYLt{ZCiq??a@ z#^cl1NNRehOT`_Q1)eaH9I9?xircN4oFS*?d4@KsD^+jjK*xu5-OkJ?gIo+7L5l3N z=U#_qa>r(*&j=dZXe$UjgQk8he-@LKw7$F1&^wd#`3p4jm6hkjrN{Y3<1V90RWNL< z!$ja@qOSMIWz=WxjL2O?dtOw%cO2K0hUbOi0Il}!eX#olsJR`MsC&s+G?5LwQayRw zI{)MFqTz4f8K(3DUB+kC91=vIe!;~rX*cDMQHmnk$8(`+R0h;iE&{)8p3xq)i`gV) z2QeYIb1j`+uQ6kv zJ6!7oi>>X>$V7^)T+Edr=zo=Kp0=&naw*SP_%5X?ZdW98N*67iPttpWQhI_>HU%Fm zA!ROB_{&DGWFGt&HFCTa9=J~LGxt>pJuZ$Ija-UW$*3*r;1wT4zBMN~e{$9f!952~t|EpB;Tq z%l4X>PYlfVr;!&!DjZM0)1psy?B`E?yqPh$kuWED{nXXT_>?%!RS~xzGlceM?zQ8= z7kZTVM#feeu=8YL#QN%%N2=n3tk(yOJ9^J~f*k@wt@n+{G{cu?-BzBrse32v)FSnA6r5l&##G{ORLsb8&ZNYQriwa5F|~PO+*s zoj}Z}!Tna%!Rgx_sB3xW+ z^I>6*0G1VHzR*H7_S_YZAC7Q6zwbMM&_zL@mCXuFovbJU7PNmvl}XxCq~#V3l@oXY zjBVZY6cbvf%zP7SdC;$9;@SL+!x}y}KWUQTe(4u=Bqk$r2HtUy>sEjX2@-0TJsKQ$ zjIz?tI!@IGw|@}O=^PHNto}^daluvLT1~7;*|~!h_hu`PUQu!ky&F>Yh<(3a)v9hW zJ+p|tV)Q0`qNrJEoNaX79<_U3Ah3hunn|*kyd8ke?4(R^eH;$=)hVhE?Yeg>XOCs1 zg%e|_GvR^W@0K=Mtn3yvcQ{dyze`1BKoMD)?5Ov?>Ve*Y+3)51{dHmZQ2WK8hYMPq z$g^9xic{V7+j*^V`*juTzNQHzU=D6zi zliWMsy47i0H4@IVK@QA~Q0Spj|7A#30DV(wPi?jyiEPj)ZYFEm*GVck0VXe=8z z`+l95-5igO+b*QLs%-zO(#}$u)t`Y1O5R{-*s)~st|{-WHU#5G$Lkicq>c@&qrqOI zw$<8*`yUpGlsK5ui>_G{twbOvWE&?{=7A~=li3NLw86dh5BO7KRX8TJi6&PM8h6)B z6ppD?VuZ)tQK2xxbpgljlzTgrZLje+C0lTBdhZy#vTVQ3;Lm6kdg=rag02$>87C5x zh7FjFS7A(VFa0b6ncTw<@9u`y`1KwE=6CPU8;2hnvZ7L;!O~#BDQ5Tpbm``j;Gl#! zP`4wcIwbVgq{+85VG(u!!KuU*WT!W!7W4zPkio#`+cnZVQdSL!oAi|>7T^AWFnVwL z&i^1l+?a66a-M=PqeDFG(LrGZ)>lvbx~Y{eA4*$tE&UE87Yf`azxu~DxM2}iYHB+k zKU;CNMPi+AOZUqDF#01H1`oouD6H~b;bjJ?>USMc7I12$y4eIQz*N(XCcO1G>kAbf z3$iL-aA}+c6WVyI3}oxi!spYREAtFeR7*!StoAp_xJnhzNBEM!vpcXk-TDRi?f)@< z#|c)HQQ3Z$doWzLW^p_&&i1S8K|w+9xZTe}b6MAs(#!EmU*1r1?PT`vzuKkjnBg{2 zkhihT`u}79S&(vsO+8uW)cu@Y+Pp0eB3_17EfEyu88sNMUL?Cs+Twxw(Vh>z)zicY zFBf)(=>6x=Vt7KOn4DlH#jWM}Q5&#c|41q1$Y2 z7|_CguSJRjdT+})lurDbQ^ki0%iLuSvg1r3keuE1ZeLsiN^9JVu-RYOJrVG)NremA z09iCRX+Xb-4HaPF1e&r*bWh!Z*C1Bc+;$u1aFJMxNBfudt0by|Ju~)jsUq#$mN~6j+CmLun=j1P&s-srGfq|cQQcXt!4G}0I62I)ICN(?H9umE**1gPitV$9(L$`pnz>) zXSo9%JmF32vFo@Ruj!NU-b)}Wpd55;_3Q4a9nr92f6r`!aX=He?M2v7xTu`5bPAkY zODfw;nPa}*-Dtt$a>SW$b~VTyq_PN<6R6oX&7HZMK+1s(J7=i+c@!?>hwb&LdN7p6 z%RR2siAy73%UUmGE=_IH2vBGWxqSfwC0bF63 z4%XuG)+MX0pG>#8*Cthb20DF+{iW7SuF5%ssqVCl%lq4tq*~9Z?`cW9U)NW*(Vmu3 z5%`>qaJ|4w<0K=1cwKUz;ay|juaApqk8Tdi;zMMKQHvy)Q@eBao1!O9f<}gTjk?3? zU>BG)6Atl2u-90hZpXve%e8{AiRsPT>ozBisv1c%i>-aUVzhFvSe>Re?QHZ+2^6MF z-JBB;*IXYTh`5JjCEF2rasZ~9lCAB3Av?hO_g*o8G~FhuC}*XZvQr*O+35+lHNM5T zTq?oz*$yfsItGXlnqOS8TP~>;IeFUrTIZfw!3lP<5pklUDMiEM`wwMeV3>*0F4QP@zG4>-OpSyG_4nPe9wGTKuo~>N$-8&p?>jTC!TK zGr8_y<-#dK_t0Fy=b4duOiUDI+^L~tVqN@HJQzlnI1J<`dan<@*vyhYwfD6s)U?O% zI=e4P0bXy%ZNcvZ$W6Rk!zG_jdCw*S?C5v^vp94@UaTPJ>;7%6?8!aUTETKl=3{e$K)if@{@dUXDz#mgs;aUVF|-@l zxYcE;OKqGL`0ULjJdjqn&|n7I%!rkvu3Jegt^6x+H`CqKznSqkQ%%5J~H& zx4gfb>k`b)$Yg#-xp{x1d*gR6 z#2nurw=ViiFaR6Z|jJYN2;M=v<-a@QMqv&zpgj#QRrRjc$`P-DSj>>iE2E~vCCm~Z}huL zX62T9d)&i^?Is!RGqPY$a^$~)Af4GejFr0Gcx@4?4DP4zp>TYB{X5D)$Pf9$cg~ky z6@xE)e6Q}=taV4EthYTy6tcz|<{&VAWQBkA7jIM;C3N6puRUj1KD1BAap`tlku11} zW7fN~rQt+7oQfNa!8bD>(T1>UP)&zxnW=2!9%9KM3(d2W@?!i2IHLG(<7>MC)GA&? z$%U4O5=I7yA{a`vZ4y?)I%vey;{lhj66d&sJP2zfzfc`ynp)%Y;#HNVZYZH+y0khZ+t z7)npGW=4Li#-EPo^<9q3&_Cy#)0hLow9dSOPI>IYi^;BCF z4Z?ev@TC>c^NtQSQ*3omAZ$0U$haYokeDvsOU36-{XSp&iXK2#bJXc-7#j+){}ld` zGLGnA^AP4bQ@pIiGb1Vo2(->~j<>a|ufMXHq)0o7H4&qIDK;n@*i;{oTX1w~WaCJPx}U0Prb_E4%_4~MTPRiW@**K_ok5BL%A zRkiO%R{w_OYhm)M5#rW?6ZN6eOelPQiZqnu>?9=?aE(3%;@ZrkfSIYT|c&OzZWHmb=&}a(zpaeju}DxsV;@I5{~nSKg+N`7Ox_=iZG7xBYe)zKW;u zpmymlI?rpySHT-0ZJuSH%_iXgi3iukPa=34497IA=xYO}0tj|ubEbRK#_+0kkYRSE z1AXHIQO}0ayF0(+w)1kHU9g6qb$2mzv2^%Vx6Fk%emC1yS^^1yAcf1yj za4_)Qoo_Y&y%Ls4DQZz2H|$((UY{q8r$FNLm`g?*A;dJP%9mi$G&EQA{Ayh&eRw?J zi^|OA-iM4TR}Zj4M!EaOM&$4F0Z>^zblLUuzs`8AwcW&tra%E;MSp$^P2SoeV{7oG zJ7(ttQtNE!Yei}TxuLz`_ySve)}-GE$&F|e&{LCky5e6IX4~mA|Gysd4;lJ@UY)vb z%@Flo?;&jj5dEX-SE!hG6sU$LER(B4UR;H^OK4O{5246;CLE*bbj>3rrk-()6K!U5 zhttL-r(6>^t)^edDwQ1*AD)&3jscVVpX?_IMzs(8Cq69 z&tuPg`ECopyms$F8Z+5k?|jntN0t4GZ8-(cf?FQ4LprZpf*EJz&I_3A8q0QeQI1;M z_*@z0@G*Uh7Vs(=;PyA~)W$>EQ5CX#!&g@;0#3e!*p8Y@U>|(>UUdU#6&lO*A3hW2 zn4I|ikz$&gvLRaT-7=cX$9tHwc~r@Vpls3EZYk89TBIwB`FdTpM=Rv;$Z?J<_o60f zD_r9s z#$IsK#X#3NjBwlr+&?f(eKoz&gWBRWu@RJY_JP3&`Ef}OD!%Oa)PrWHz-5}|%i8?1 z6P`A<$F0H+e25==3H5&nn4kQ=cSQa_)AGw^`xKji-h6RbYIk1)Y35(yqagc%Ob_>r zMO69u=N&RRQb1Az;O{n^I*f;Ejibo$oCTS9^|ekCAVB;6He`20UT1fGkThypHSxP> z!tL-35bdd2H3oXu_$?0DX>BrT9)Sw4qr`$QSOKYynn&MXlZwikFERjOLe&l#h3Ak{ z1vKK@F+%zxiJ^cf*3u0hw%-(P%K=MOSIE!_-Da)9+p(xI??2n|j1(wKa;x2?8v!ak zw}wgBN?VXH){Esq+nt*9MiiDrW(0TuFYMptxJb+*^++^7*OIXrBxC?3)a8 z;&-VWw~u39NfcK=!oDDL2TcZ~H9#C_0VGQ?rUN;MZI@_3YfzVJJQE?#PO2bg;~Il# zx6){RV4Maqdl^Ii`=EeAZ($LC1mr*LUW3VByW>EL%XPDr2|C-K&P|0Zmypt&b9z@B zX?-)6T%GtY0UTW6t>7TxAfo7%Y+KD1px#HA>h{HI6C;WBjTA>x10I0`N);>FTw;h{ ziEe4w5rpCU1<_c{`ZOHPg43aV51==?7xiRgHGWJiW0v zXbbgCX4ZWTkV4RH>V?^FFunj%@8uhem(5qvWlE<3RTsDLqULafIH!*ieC>0=>s-T? z=T9Fy9gG^J_Uj;9vd5TB&_mLTQ>WJO`%YCC-*APCqy3dv01X<9JlCEAeFA8ZK2`|m z9L?oS_~nwV_%~sXMPwSYax@B?nm8GN55;|Gj|BzX$A98FSe&0P?F9qo9Nm>yfLi^? zC)@vXP)KJ&$Agy#dKThimbLTCZ0Wei?2szY=B@J$)clNF1r3}ZC=CP*sLCiq6;LzQ z$~7}S2-xcWqS_J6n@*Wik8-dSxR0gBGP^G4YusM)%}F&$Ke)GcF=xv>aQ2)nZ}UabrO({ za%&Uu0BSGYeVRLNYEzGu{FjDERH^L86PCmkpaivAWNJi}iw@17g9b0=wHt;5Vw`%{ zDxQDPo_-gmmJ{`z1Z+aQP4P-a4}s(%tTp)m*bZa>VG|Ir@mV>+i7rQj{VYNE+JmK; z@_Hzb`VEWCuP@FrN5Ag82%-sBM1uYje81Wba=-s#t4pR#d9^tGx1JZsm;GcEr8m*X zT(8$}u3kaPx(&Txh403x#c;AJ4L|05P07d@shYjX=+&A}wHH12S2hQ+=dtHmrk(&B zY8cRzgaRne`P<<~MYBIJNfh0?6}le+vMnC|dVG*_tJ-%3(pv6J&$=%%Om6oHc+ZxA z^{e07A%_Hr&dekR(}3ApFO8e^!D?^bomnnJd1QLm5g364?K>GO)sjqDrt)XOxm!ZZ z_|dt+SaA9)=NxQSy%T2MAY8XN8&F~46gtGLyp~)F_y%=zx^j|Nx-x`_qyDv%6L6kf z{aa7{tr(`mjfxA@VJlCS)hBfdd}%75pqYaCLIJd(?YQMqRCD63*0@9yHdO!h|2Ek4 zJku+@QQiJ5FmHvWs-f>n$|t6RmYzGzswlEvz>e`DoHK*+K~mu+zVdlWUurlUT6yI> z%(=NqCzdT`z@8Xj;2zC$Z}k=u59Hx6zv^1iy&e3%>S|Z*fgpyQnE1CGqO&DR7aRRRnM=U^E5L(JB0$`gF ztHSDxGhFNPhQI!70ogowWt)`9ht)G+v>=6)UN>ATeemTXSVCd4>Np^l9KC(`%Cb;y z^X{3z1L4#iZ#tkWzAi?Yv3Rx#g&~^DFgvuFm{m!FTIvnP2EZ~(4kE;HHdLQ{cDOiR z*P-M)ATbk0xv2{Og5~cj*w4qEKVy6c9}j5kS+H6(L&^CY4nyB#%_0B^6G?_pJHFcB zEO&0^)!Td4-VvZO0c*t8TpSqWf?}>2z?>o$8+-p5f}3Sl0J0o#ea#)eoQg}#(Y9M? z?0+-PGUY+^2mpDBJz0{XKon$Q`bBK-sry5S@s(NuW6XhDweg-y#*xfS++DU$vhR9} zXwQ^0VFTZ#oDVb|hesY2xv8F-w$!Q__37pzetsSxE6Ld~G6m;462)IvrhaL&+k$AQ z->_0M94@!rW`Q?2K9J1x+E5ueW&eUG8T!2lP+eJ2L##Z$B!g;C z)Zi1SQ!*Tig92C`Vy1m-f|(PxkDj6Fe@#8y_R{MIdv{Qcg zOL~eUzFq)jc3W1P(6PCEBdXq)sEWY3xpiLMqx9W7n!N?6(OoiEY#q+VRklZhvg2wf zlH>xU`>!T-^941+y&4CJjz;ySr-`aH0Ve+{`CKC^zr@QmQl5i4-tB!XjiI9760(jo zmixcU%E?Mu29UznK;tD5+K~%nIJqhTRK`cSK6)d{cM!_A5xfe&jkgKLIpV(8L#BUL z9rOQKK}PJH8^JbFF(BM}D<_D5in6rhF(5Rx8)Cie!5P<@& zM(;YKU+KHWprH|)U979Bbh(#$FKeV4KBUTPUCnLuM_}^4aKl1Hl@Nz;TA4A%fvVN; z&0Aa|#40K#RX+Of;Le;NI_}_t0+{7*N#lPJ8GBspR z)yQ9pV~anT?8C}&vree3`Uuyhi*;)F;G$7!*(v5T=k0~rgjjUTW(3-``ma76Y<$&D zzrMI5P<-+29~S{_QUSNj@9M?KHow?ZcpMVmd4x;rHtS)}ao;sgN$AAAhK6S|r?UbF zZnkd(V(=%IV>@LgxRy(~qs-e?v?HQfVV3N6Q92jl>>b+Wxsn-RO3%kdPt@+bW)~|Y zTt4^Cu}xcjhG*Nyk!&qjSKrCEZnoB+D-CHw*pz^ zguVs~Q`EEmia8-_S|LZBPJEoO6=(9qEAB^%2cM?+g?&cXo3gv0cG?U(^>a3Cq+hZT zR~-XOuF;y%9uLV3qRsO)bPl9>Qh^BJd^cR2vxwMZhEuTD6%2-s#$7g-XsdC z|1+J58KM2d2pYGm(pjKbKUFw>ovT%#zZToGip_f5cO?+p`DV($yYAO(gNf%6zMxn> zokPfnu^cR|*G?@mfoWLm?eTJkf?e&S4X(F0d~#K;$yS1%XL4VO_SH)r{gGQ}>T(w+ z-GAh8dqdvULWc=C*KdXDLCSaEM2wDpY#Bb>Pn(Zu2_#ZA#-C*y1v3_yKohJbn)bbq z&oeJ{K!v0r5gdBvURn#C(Q*CIU`w+>PJJte#2c+yoBMk%5eOc{kgK|LwnEqVO^Kgu zU3w1}RW@g;k4Q#KOO^$DAByU)`YQQL-7UM{bSc8*iqO20h>S(4Tju+8>fx}ZBH;R9 z9dY9wQeyZ)1*72&>(8%v>vgx=5#m|H)e+JPnTq+>lpNpUjHZIL_k6pgBgE5|xlOT#@e!g-dcIvXZY}mehu-B9iNP}$F33w0|I%gjmw!|Qohj@)brkkX zw=NhH&C}6J=?xcmF^sSodCV+yJ12Jay~A-s<}-@sa115)*_?Ji*lJ{S4YkTDwfNe{ zxJWp+qgU@6Hv(FwZFbyyLP(+Dp1Nb!DFo}}{w_HzPHChT(3hY;Ub`(bxZLQk>32fm zXyoTQ>8JqZ2yw~P1CT8_@1k?Pev5FY?A#g45imK{R$sUd^cb*eWH3z6m*Rc<%#L^0qcPt zsP+y&eDJW!BERtzsr-hC+j*=^E;e=!D2B%eipMtQK;h1Q6T; z7g}<^B?`?h=RZs@Al~&}jm?B+C=&E_vxGxG*{eTL52C7QUl=unJ2IL?U9U4LB(6Rg zDvIgPXzUGVlPq0)7U(iOt|v^H%245C-BOJDm`0J=xvdg;WF@OsHd;s+rI>4|Xp@?K zd+mv}9{e)1Q*uffod34USW?INxL#u8+V^VJc%`)oE;M|?q==Tu#7d|l@bB*=D{{e0)%^hZs+og(oHQs1*FFn_gl`| zv_2HJs@hJ^J3iFJT}E!#BHU9osxIV6r#KuxEvf9NXVcsBwsJ95(ErJVkQh3>YDiDt z>6hr(r72WO!nR!-7oo!^cc`cGBK?3grI+?@bUAJQ`24I)w42t>8z^+Geuu7d>qV9ozrt1@v-1w|+sZN@VBbTvplAcD(Ch zuBRrn5xg~*0s`m@$1$tCB(*e)=bi6opF&lK&4V%Ei`_XukH&{g9#yHf6a&{n{O?LD zTor3EefZ>96HQBveO<_XUVAV|_sA4Gp%%zKyjRqH5KMlyeyc=g{fc^C2SYo~VC0#m!$)IWH%c z{9Zpv8qvsnV=CV@9Q=k2_2V$X^BOOwn%V8|>yOUzBG%VwVc1VSg+2OskDV2E;*Y8! z;a6`ct;L%$m?KwC3IxIo?3bR_UT(6i%D(f@boqTvN996R1%9Cp4i@s8xa*(XZWeq6 zF7^&QBff-JF7iC8Ks?DhA34a4c}d7#cuzydyy`W+lW{z8)$c)IWKweaaqII;be5!$ z&7)xXpx2S?5-*PQsWj1spJ}D}hy|6spQb((R^EECvyxAtt=V2+p8ol1AUY^WHZtT_ z-gTyXHIxl9kiPvg?#LazSyFq6u3Ut;zh~F?GojtEW2@(?&7@oVH)j0)a#9M^6Mg-F z1rMAPOT#ZOhQ73!#I4<)GBX?SMmCum|NW?I)cONXS>@WrjWDgkE0f>fxW1rEY-q5o zazM_V5I>n+JML%3kcijTO_dC%+-wXqTr`|x)0}9^vQEoSEi_m}7EDIZhQCS)EU5S= zcdvC*Ik3zz$M+%Ip}idaKMa4yogKmLQNsfYx1f{z(@lJ6)H^i6olow2U+ zcU~28&qA972XdfAqk=*2PI?TVUd!fYt>}kmjm^oPW6Fah=G4K-K{=4cHrez{$#bd8 z>c!C~^O3G!x1W(NyRDtHK-W_b}M| z>cWlnv1>E%EUC|&R%5$Ee!v~gsz$tSSGa9*UqSynDLkDoU(zi=T1^YVo&^UwKbzo97QzJ90Q z5)0Bjn)u)wnPa)*c2H15%9-Lj$@)N$y7t|@R%O>ov`I}pB3t58SIrSUQvN_zwfct$ z8(!_MaPfFWzI*|>@XN2v%=GF;?g|f{E)dquM_Bl)n2TjVtk zI~KE}3S9}>f)$%cX{32OkNYRJN?nj}lu@3Fq=EM+Oo)SUk3{pLwtF-RE^Xh{zEyDR zme!efcV@nJk>n&*z%ie{c;62Z*CT1==DsUTc#$dxQh7shJqTo+{#ldqJpX*&xTpNj zXR&Mm23&Ei(UU*_v%4)lyb{Wve<6rZ^6HP}UPWMi&P1647bZ`PP=bR5TMRb_ey|R* zlZ9NmB88!i78iIC$~Qi~5Ri-9P|i+_{QNnc)z;)G;kMGuOgr`AwL$njq#JFwRy{6an}C-Y&d)0rj}TujXpFx$Hlyik=Caw?e{Prq zg9q+9RAigRFC!V|c8$j&`3pgyh}+rA47NAko-0DAc7xzMj+_d^i@3wN63os5e?4ny z{2LJVj%0CPAQuXT`)@H+3JTC% zQF%D6M+rkw>E6X=;z^fy5$ZDIR@qy!Q@G%X~0g6`bn~ z1o547*fwuX4lp!-N@4JIhEbU)$HDTo1iEs2ed`Y9w>%;Y%FqfTmyDnjjLs~)lEB04 zpEw)JjWF^u{g6EGhsKhiz9W+XYO6kViR3$GvfyVao(lQb@>Exs@+c1T@y?{-d&J2z zqn~mdawV0rTb}b~DmwjjcQU5=_^dg@v^E%{>8+R6s4jMChq~mcS3$8um-~$soZz`l z{Mx%vLuuXrR3#~Od$XYV=1rT$_M4%uZ#W(`THchtV{nZkG{dR+RzA>7d8_)?q~&#n z%x7)Lzpk~z(>x&Q#Csp=kdAiPXIe5FN>g|InCn!dovR`Y=XWiV(&X|KdEt!;t2Ciw zW2w01L)6gDc@fZxy!~{$-Fn;ja4Iz4*yM^K8$_hwBCU_(T5(EWvA3a-fl*14UGOFQ z#0^*TX`6_KpOKi-RH}b>xcK1vuN6ldqtx2_k$$>?gP;3LR6=?`Nit8*Su5sgaHK?TE4k=id->eTAPax$AbHKGfP*I^75x+N{9ZzlQ&4a^Z>l z6iv<~J6u2OMZ~PH-@PBjb^2qAo;_Frd9_Q?_bUTktdmd~|I$XCn=A*#I7&$hB^>@Fo+rWM`X4O)`YN$qL3iC#LFPWYf3Zl9E`w5r*_RfQY|Dloz>`vb!N* zQ83gO^U9+Kz+n9eDf6BA<)>WaG$p$Ci%#Y#4@N(EtHX(DeNuYGn)I7sP@bcUddpDu zqYl>XNuOSL+3lixp|Fx&k=T6!dW|8w zp3UdIg=dz=qU0blU#_cUHj;L(`h+N?2aIENI%fkK9em?Lrk-N_Ke(s==kl=;wi<(6 zQ6#Q)I|9Ls0CUA2yG-QZ&To2n_o_Q%r*CB7-3UR!Jm$E~60D94jc(A^`XA*D5Ea*b zgy8vp>3hs-*eW>Wt!R>}{5o$4gaKifC08bE#1Z0I_v#KT9%U7gH_!?K5y%ux7o3HJ z?RhCer*Y8=i4IrT8tWTzLB3$4V0m}$AoP5L850=`v zF_sPYtnjhyy>1sK7-d_6xVZ8QV4nc-?^pCY)}hVfl2C#zLD~HBr*7#ZQd9RsWH_U_ zq_RG|-ttH6DTPd94mk(s_8skl;Jrc+bCGWqu>L7fhf~>%_JnVp7d9po>oA{Sk<~iS zJ&H_v^bgUK{xE%{V4>ygV7TOEg-RD(Tg5>W`59Z8Stl7c!lYGyyX8e#9^?=!GbV^P zdJS5gvNM-{F{jN7ooTc{iTw;5Q!sPl@nQgbBg1;!y%K`=;8H(Ccjd)b;sD zhX0QtJ=+JgVNl2tJsoSQ*Mmn8- zzFt3Af}Z$hjJ*DVLRszYSi;vw`Zau5ih# zI;)g?I;8``mjlG6L+;W>5ok2p=_etbqsbi6D=vrPCZ92a6iF|D2GmV+yY ziCPuQzT zzwWw1^JI{xMf?cVbLm+r^`1&)Wq_KN|L7s2Fl2WienJRDQlWTGjb*9QX}@4mdrg3< zh|KNjtBkX#VULExR-vFr8fzZSrSLCE>0CN&f?At(uv%O(&Iu z34Ej>3<}ASI$~c$X3ta~G|%}gxOnNB^ppqkm#x)bOw8+Z6t#SFqcqXRnf(oHG_t@+ zJifGa!OPJ-yT#Ty9+90RBE;~)?1TqnAEoD=-4sD2U7hkm+*7@i#jxo59z*^cgYdD> z>8vchGyBI?4I};|_P$m)B>+_Oz&Y05?2tOJ%Gt%a<;yF4v7f9nD{GsIXpU+fX)vF^ zagh4ILps7`R&GzxS=u;Fh{|AV?du|a7&I}@(#}bIH~l51dI%j>=^?QI7EcmIqL&-M zsM-JCtC7B3LB^CkknBYoNg~P^etcldUtYXgMwaf+{>i5!8>5;D$QJcV@I%X@@9Dmu z&wM-Ocz^k*VL~)$!R;=Me-$mQ;C|A7tc|<#^n?ID5>~cdWM1&`mwKPz_IkO^mJ}6p zVlq>&CRmlH8k}0BCG|}T6*B%6dx;5r2*xp^Y}Ued+))D4G;myr*yfwTj}gGR*SFtHrj>Hy~4aL6A5%=64UKP`%hSY%cflBRGQPhTp)o zW2$_cebA-9EKWe1{X$$e3k~#qP4)1P1qquZWy`%vY)v1ovb-xi4zGKcWciiffde$ms zY6(kw3Vbn_DSfO2@t3NC?%K4P7FSj(fwV*>V(`|&<);S!Q73e-=qB0Md54a4J3A#b z8J3`GdOYmGaRFC0Ht`W?^t*On3LLYR8mSMc+f8Z3^!b_NQPde1S#zXmM$+I+0Nw2k z?v`sBH88~DL2AWUrq9VH?I9P zDOLKh)c?A{^NWaC*w9zOMWMl)SVY29zwF}!RpR3RtQV%Roj5JK#~K1+9wb~pZ*NEF z$RCZmgNXR5tI%WnjfL#^!BobWg*Klc5V;W~TK8LeJvwE3T;U0FDkM^^=2=-37oZr7 zzLEL?I)f~jqg9zm&Lv5WMgWPb%>SwRyq2lAmwfqhA#uO(oT)9O6?R8lHTMqva|idk zb>8E9GF#Pf)yoWUDz^X8*|R@)gf_Kt-q%Wan#ptVKyZ1mU4ZVnuTbgMr#F+0_qX(- zN|^YgkQjG2M{_yxMHMI_!oPoPvO+G)58kWW*EJIOb~m`!*q{U46q z*=%~noO@iM*xy$A^=B`Azxkm6n_P*1Tlb3t}nkw+~h!H^$Q3b?T(hl z*$kT_h$bEw`$TPi?w}QP-S`43dvOnrQJja5UQaI0#~m={@(XAHMe6m z9X}En+X(Cp0qZg}W9yZpp5r2i@TSs}(~A1W-^A!%U)s_@3BLh_-Hz1MNlkJ68m2N1 zAia<--McjnpuC*X)+ zm&h*A?q!)6V$l+tfBu$sr#@4Rr^54vUDXdEpNoO1x$HDj6#=V!P2z`(1~#LK6JuFf zTAi&Hu%tG7L1V}kG|%BBq=|>s-C=Rar}Z9qq{VP83FRDX2ibchCZJ?$5=PZfjTPMT zJt~GHEvJmk83*!)&TB(oOQK`zVj5@LuS`G&zG~b*ap4*lk~zL%Z!rw}dIeLITZk{g zw+o&f7SHKYbWFLe3C{&h*}cn*vhe{5PdnWjUP!%lf($DO$FC^5^cacbeGSCoORtA* zu562pVeRy3pO{|B&+oJH=0%J8wfPipfK6CRpX$D85E&kv0tM~0i76?A_CQ^%V35fo%Z-r7gLTL z@IQU8q1=?hT!j1E{5ifOYf`eP${3FPBmsUdyyCea5Unt|R;x(-d4!XAnhGQCfwjQ6 z7I%q`s>37``vpS6O(S07P2t%9EDG14>P-~pv+LG{cmfjCnH|f=GDXf7BM<)Q`iTFP&b1$BVt;pAP z`T8fz6`oTDDxD*|`N4qvP*e6?wDR1!H|s1Tr)Y;xeo(WWUxe*%k=yF@*#192?V-mA z&r?SnX_as_c$X7aNZHelAZ|Lsq9!IxzLtac8!Uw1c=W1l3cVr)-a)LYo%VH~a1%JZ zay(L&6-DhNFT)_yXg;NK9EmMbbNYgoTziyUiWoNb<~b_Ybs<67U4V1LYc~jUi-T9{ z?u~rWl}D1T_eR8(`W406vKDIYOT3mQidwGub}{$q;9G*!UV^oHj@SXw#I|#-SG_SM zKfG1^XYUt%1z$DXSb1vOJj_*oo*^t%egp*2(#;j_f9uS1`TMzdhjAwrrScQ;pxZg)zQg%vIJO8k_+|0SnYY>pw6 zb&r)uM@2I`bw6?6-D@;Rd02i9G6^!ka8;p@FhoTR^q{d2X|g2hF2H-0E1Ifn6y#|v z?tEV%4iQvz@TOP20#L{xF56CliM4?*>&$p?MN2QaE3k&0-^N%B?fE8u^{_Z<`89(u z>%a5qjhkhIW4CEz6LsEM6wCUdHVli`c)per=bj1j#268ylNyxsSnePpyV3s+*+y8x z%t@B3b#cGjMwGv2hB!{juM>ngjwiLLqWrV#*M@34|9k&x*!M}71m3OskbLIy=EIJf zG%G5}noROhW^&Nx;^AsKIB%tci*Dhsj7_@zF=p6yLK91~dUsBINMJxuzrr|>`@)5g zu8lhUAok5h+9Jv)zuW)4i7#+ty#dkoyFO}31LF1vb)EEcY-b@`$Btr+D$wFZ@hzrO z)DMQ|?aud~F6uFKx)`KIe#oV)a7nJVG(%5+kT{6a+#lvbxxJeFB`?T!6HPqG?!vdV zZ3+HpqEXC;Q0>CqW8|Y}piV*+J6Xo^ft5qXOu;(y!F^e);*TETvQ#WgqSgH0+iSG`Z%u>ok}={h(mEn2HY)| z9^7}LsqRyBsH1^;PsJW{4V*-Mw{ykxu$jbGM14gjCoXFJIzGWaVKdKciw8b6fL~8d zrl$FT8wCm7gb!MSukdY$UGZa&sdLR5MI{%KD%dtzbH=D_AzMw{++dB<90i>c*Z~}n|-A$cW z?iyo* zTGI1-pT>eIeeOuAzKC&XV+p#tT%76s!W$3n&Kgw?qvo1>ZdFcjtazH_S96B)?M(mQ zlw_t7%8%e0oURs?{(0k!XmWFzQYxv=@TQc9>i<<-pgc=!-{cI2zjq3z(kC`7TnnA> zQClUYPuojz+qkr2ySq|htop$;uk447SVW#+7FS7P-&iBMg1lP^ zrXPQK8j_A|3H(5nAV(# zq0zc~@AU<@Rg2Wa_516aoS0Yh{Oi*&>$#E%DowKSW72bvOX*`Lv|Va8r5{h}YyMcg zr=AfEzh7MKIP_E-F`nGNarLy5PdfFp;}>qp_x8t7eHn;Ro~`QL@gUS3Umj)0^sq*? z%f!qPMOj`zoLJWm*_<}4n%U0&@8dKBXWtuhAvHOZzpqqY-HV}m3SZhp+UMq`FMr1j z4ywHwi!rttLt}C$3f5A+NbZlnP1HQl5a|z`Zgg2U+a*jM-&t^|b&Cnko;6UUBP7qs z5ABA1TV;7hyZZZsZuY$kULYnraI~9|ddYINu_MZxN$O^UaD0n^=@n{ zH~r4Tl;CjWfVX3YIN5NFDUx_E$Dy`U*d^*)@{K*;DXE#xIM11iPMAL2dS4WPA+jbc zP$RZClhnF*HQP^GE0*$LE70ITyK~xL2gR)u^B~NX;IKBVS%KY?_0+|2fdbv->#TZV zYxdoXGg$k^4m%AXvMMYnL)+02`+sn~RrB_Q(|X23-IMiYT7s1R0EZAeK_tdeI*nHL z0KsHKV#G1WU8=jPh(=gv#$S_VCxCqrh#WLlr8gQ`&5@fAeLd#v_&IP|I1(1?YBaTZ z?XfzAZ39WE;kXtz|&2Eyu<(A~Nn%wL^ z37BHe)4ZlfGv04oQ}oF$ezI6SkEzqfS<|i(y=V}mS}pp~3{-0OSKG$<*5a>V%GC4p zn>>6kM&$>uT)hz4W6W=I8xkGSfOQ2bynV~GUy^aF8+O+=S8(JW+hPK~Q(j9Wl=WK3 z1|hd(=JW25r^n~tByh2*Dzg0zPQ@lH5raF-BLPo*Q}oj^%r%sH=|JwT>v{NJ6hkNt z|Ik;h@6I>cPS^A-fu~pVzXJmh5*d^eJN7-gR!^R;UHS#`)B#)!r}iJZ0&}Fe!_F@& z50_R5U$(4x+N44(puOxz{^uhlV(i+exs074QS^;1RX-*s4FJ*l+kb60_BmQ9d<<;u z0Lcb?-;YDN|6j~-QcqEyo8u*vpIc^?b5(5qFXw@Tr**KL^qYmvbD48n(C0zo#&!Nj zo}pBws27H~Qi zyxuDVrkX=DK*lgqX#ZtWo@kzT$HdS^b^?Esu{h_}^?_-H-^hj#B-f1hcyZzRQDRFc z6&*iSZb(&&tHhVxW~)1Lm@ z*D#gxI*r_*Wu(&sKq4k^*^36x0r-V-|6ZK$&Hk8vxW>tK^OBM7c6RV{_E>IVg>#QM zQE{vM{f_8^#&YZ?QoQ;ZfO#yqQ27a#+_riB>{Y>-<2fJM|5FNP7GB3Ho^`uPC%7E_@+-Chh}f)#p}a1i`{adW`T|3=(C7oprhnj7A%AYtXFxpS_C803o{r z3`PAOz`TW$pj^8&246DbWkvAd8!x3Q?0&M}V3+%e`Pp*0AMXn|4Q3>_z2*7`RIK&D zY$KnYsnBZ;9aBz?l=t~Xf0m`~U-iljW_LNEVfDf$biaG&-9zM3cKRX6wtCq^+)mmF zsp*d=F6GweJ-||xuV%S_+e=^JH$_t<>9@-oD*#aYQ77_`+(gUaxbe07y!cv>MOn5) zT>=n^%yD+WQUYM5AKzg^z`TlhX_Sr1B`#U~{h_ZJ?)m=DbjZqe&xKFkU3)gae6?{r zFPB0Ohjt>VmHPk;@S&V8zbej~vY{+5taWq4vJa4#9XyfyaESjq`Y-?s6&g>V9i_?P z+1dN{?{*i{1V)4tm9*^DXfHm@ba835dua*kHGP37&!^T#hl9+U?Tu|v-EZQ4|Na7; zEll{!YQON}n*H@9>b=dnUe3x#w}Xe&gL1=p{`}Dr>BcWJT0NPz4skyLL?NbAo#*$6 zN&JAD2>Es>SD|HNR=UXk8m3QS+8G?#J+K>LMFU^Yf2Uv0V(8w84|s^Gk(r|n!%j~Be(%nXqDgEo z2{q$4P=6)n3iUFo2<(MLld1&&t7!M84}yzT^_HYtX8{JhB;Y(^$T0P~I3uV&biWI= zPcXi9BsJW(3!EINvCh2Vd(0+oqPH3R2k$Z2HCR60Y@6OH2R;nhnl93rl_!z1hy(_D3+N zgB&RLea6D=poP$T=R03KlTX-}0X6aUGnDUq$#R%glsW|`XKJps9gsVuW9jT^f#WE$ z)om9zxQ@FsU&*pBUrE7MYE=GbS_z}_G_dQDzZfE)@N5L^?t%r2W&07OMf>*(h^=3@ z`E$Hbz1|%&-5v1RMkEIrKjzmL#Mze|D#CKV0pgfNXzWxCY z!1$0i*liI|{InXE;Ec)#7~NE?eL5^AGJ-Y=s{bfsygOBMcmOVHogt}aEb1qF7*t|jBd&u6(kF8HF zbNp90eAU;bj3-`WAuk$zR1^&sLw{)JNCw9Ek7$GruW?jrSE7=(n?rto@Jf432=U61ys_r>0KfV zL9|A8XIqnT^Lzz$+`M+^IM0dJxf!l$i~7xNK^t2jram3*m!feR-AXcNp+hC<-YYq} zWD)vAcn@1z^-#sSQF8T`T>T78J!GF8Lqoxo6-IA)IkvaRqj8-#fnNle*y7s7fux_#_G4p*962fu-#F9M)UseK{hC^z`)=6OS zX!Fu`W7hsz;-meyy8Wc-Pm(3??A>xYTW`Z1db(fcy5~nNWwL2^R9X1xsA3(p|Yo7NMD?JVN z{Tqri-g1rT6aNB1xp>leyaQ zOK%;r1?%!o7CQ*lvEE0edplbz2T}Rk{Cc=9wY3iYZIA99?uxs*Yqx|9icYy3LaT3b z+MZeJw&b(dcJDbBI9nN~yCjOJ>H}FgMhMvh9neX-T zN-jj%_FaC$IP0)Q9>sWYj-B7r5OjZ$=JVE~BK^BfPKu=VyxL;lxLIE0(%=V2*Gv=E8Kftg_-Xacgm*!yGQ8yP|8U$ZFq|2|GO~l42`B#MTG6fdPoeua3@;9pZMKA9L%{};& z0z3mrf8q0vXNkTICyDHfGWmPdI{8}dCu^5QK8;mm(>ByHRFV6MKhGFF|ecZcc4jHj!w2 z`;+IA=pOkUJ?m2CTU^*0rWb~ndy**p5o9(hYEkN&dsSrzOMxv`D@yz}0|A;P?KQbr zqA*MN*+dtA!!zqHHmkkym1y)pTr?LY+5ChFY3gyakAW`r+I_Dbcc&uIN_KhG(EB%C zK7KS2TZA4)(vUSX_+OLW8O(U^a6#B_t`&*7L3 zEuLk=3~!q6o`Rh&6vAv5Nj`%;^31Ms_dDH18Q|*zHfn6k zw(u$=CLbTS!cDcZ{uuEw2CWr<=oiK>7Vy-=BM-gB&}W)9HE+8m#QCFQ;$w)s4Or0Z z#q!NwXw;LDT4Gd^lMYKlQFMu-(X0ul!~ucdbr+W&s_Z-gb)1pdo23P=1g^6yeS2n6 z`6Z%3RfEYVD{c102JB27cf#x@#QdH|(SSsaplFQZ zg&18Ji3_4f4zJWT9)1*`^eEu(v3mBL_&`S&bIhm2&h(CkWOHUeK1_Wm>M(ZVryh<$ z|DLtV1U7}MV!0D}=Q-;~I%*!#jMqAI_WpVo-B7L(n$lS?tiwc6EU3@5=5^i~@@t3J z-PJYK*`8HtCw0oi`+w?Y8Fh$u!UW>&0+$*}lup$x`^#ATd>4!y_etXShjIS^OFjNu zXT8hdH%%5nB*^y*&0!_xZ2(eX9v{7&p&DekhuzZjhBv+jQ^C$Hjs{OayQIo3&c zx0mjbVZNKCzsuC6xHdJ7|U6Zac)gc~dFu)E3sSupGxnQ${cEf2P*>qNSuW-}g6b zOv}&$AC21UO3@dZ()O|0KQtMpk@F74-*&v8>8*kc=qKs%*k3C3N%cd7>STMKMY@iA zJjOvPa_4AI)?K%5A_5!tb7FCgBYx3bj}xAg7{iI3FGp#llHL{W75_M-l!5KEsiR#S z<*E%Z_)`qu*w`rLs143MyfM9%Tbt6LiyI^84C(GG^To|d%n>XxG(_M^?U|Df?Qy(u z_rULCt<_%e$wZRa#jZ5SzC8cMKFNXejnh1A8)I3LCrbOu6m}H${NOwPJ!-<2uLk2j z71H)XZ59-=ZiGQ;7^$6d_1Ma#D+X`(lS8MUYT%L!H!F(9bboVdMYcB>VfzB5jX{hM zeD$*@BJZmsgD1GAQ97Q?-kb7dA*l}tG^TgiobouC?usk@IqKoglgRl|o1RH4HXfO4 z8{~Qf=Mv%}7msZQ;pXi%d52_=cr2eW9}L}`~RiYjo}yk}ut5$&%F z0Tt7(N!si%u`->QIy}j+QGzt(R;s3sWj$P8-Ho%FKXGOz-d$XZ?0`94^pmL|+toVCA!DzOiGUJ=AYf0x8`8 zR2!GP_g!P%50?0e7>=y+J_UucXsJYWj@P$`Kv?7a_@$%v&Lwni+a9v z7shGanz=&WOGePum-l!0>^E}V;Xv?Z8g7BhCx_z~XnShyS&jg#F5nT_ar%VQ>C9`m5Is_kMYfP=xUV#VDqp zV|NHYVOeURB0rqiDv&);9}z5~{0_DC@Y?O5xEJ5a8@G}6d5f}d-s>mH9j|68Kb;(y z97)Z8?Z9>s?$sd?65d!nW6qdh0RSjT^_M zC<_1PR7+B%BU9OpZqAn+e7-sX1U~(=r!4QB3I?+?iq#Wj=f{a7hC@o%`cXhrfZpel znA`hw_!342WYxu74nIOA@j^?jv7k383f;LAm^r$>t=lXq1SPW2WklI9 zRS4t7QO0k)oKb7iGw-}B*irT%UKL}aBvm5HYwzqRK)rflKufL?Z145Dysx~tZS#)l zmMP!SMG67!OS5P$26+ay6$&3cAs_Z2c8ZwwHJk)^eL3(|BWC;kaWabK6b}-pXX@M2 zn7H>$w;#$yM5#uOeeuR71~evRR+F@&#`ZaiMXqHd6t- zfSg+cd(U-NDptFLY&nK%3RWVvS4VkiE~X@mLQiwLXZEkMn)_q~F{N54IHHnj;yj&S2x*v2$$mJ`Pf?&#|%&-rA4uANS>k6 z_t7gEw!Uw>6O_90yCl%DMl~VJAt>4oueWRZq}OQSPFMV#0|#p*U!zrL_wZcm(4L?h z$?A_hj{}fjQ(SpYSdwRM1@ggS#OK0IJwp_OHQJ)p*)ANh$`aR9H&z}fX=yxSUW%)^ zqd_sEez9L_m|WvN2@9PXy+hu~w(pk}@u}UJ>r)vH>f)$$;hn9Kt(i4pUIMdmIjxeS z>KzHwxMut>h1$!q6PoIoIJWe7zu~Qh%d}uX;m8<8rB4N<{1hoZNvJ61r}MC8_OD?8 zPb$iu=w$?M@{XMb8~3%!kNch2>#NPzxq6hhyZUl00?NeE7F|QjU#9Ok@y0vlF#lje z?$w&yy5_B#t+Pm*Gzu(+N3kc$ibOdRFw<2DZ@ zj7upJAt6z6jC<}KN;7@je$eg6&b9RrUqXkgDcEgZAVP{tvnVuzR&{ifQgM7p1!{mN z^f{5H4o0z-xP3NM;t~_9!5-U75_KVnWYeozAykrDVl63}Rgt=_(~M)^9O#Q_bQcTX zKKYZ-^0kmkcc@7wATC&pBB6KG^cC_3S<={cB+aig7hHvJAEBbf0;w$+ImQ>aF+`Eu zNE5s)&g#0<_SXZI1RsNYsC`n|RwB>!81I;}C>FwHfDHBtP3LFIXblR8@DyGDdDF5w zy7w?J{)DAM-1{!IZ734qh#Kj?()P0Ah?w2j)mI%e8O6nTa@RaMroEIRC_z_>29ioG zlH=h_MN8$F;baV^do_%mnZwoXtE>wx6n0;ol0@6|%lA}p+ZeXQ=qtSMEcJjuJE0O# zXXeCIc`~HVuvJ_{pZqF^;lJ@$(GuhIoMi}GySCvC2-S_L3cp*vk5`|JFGc6_pv&RR zOOdcexIj61n|OPJEm|P&#|yKMCf9v}T_DJ{R5P~c2&db%dDM`9!MP$t@2`;GBSem@p-OufHEXaG-R^ofTWaawTRd07JjL%J4) z^$>leR!Hs_#T7J&&tcXvfWKZVk#mSbCEe$+X3o~TbK&@>iK!=Y*buL`t5B8F(NE;C zs1vYt%e8^UfjTME=H)U2Ia%b$(|!Fq4>Faiv_x&y3^ad=GP+NW1BHl5UT&kZO#+Dt z!xZe6CNbU;h@Q|I3h3(0TYFhtudGRuX3JH6^5t~Us?FPSsNM*BR17TIYwO2kg!*@=uvs!>Gyv4=M=l!6(Kq*5qlBZ`Co)eRy9YdDWpDbN+ zLsQRBlrAieJ)11XM>ATJ^L61Vg7fAQ0hq>-y+&uyL{`_s>r3S#Epj^z0?DsHdK5?H z>q$Kp@{zLh7-n;54n(_e@X=1vgr13n!R>RuRtT@P^o} z-(=B=kX2`kAV)l#On1#wKP)qj97v5dVySy3;iXm~9PDNt$?64YFT1>eep;&nkuwQjiY>bFlf{w8`+HIoX|vc)3xeI9g~K7l9Pz7PDd&7Dk6i z^S>L`*rGpgqZ*{Q&EhCBY*av48kYG`+qFIU4H@YyH@I)5@n>Ig-3E3~(20}JakHc4 zles}kPb1~;#tK_~&-+SG)MAcRPS{>{9;i0Rl9i31VqDv+2*usv_2{MMUXiR`Y*5%f z$d9f|wwrr)UQK3>=~?CNS-PcP`(sacs4L@O&P|F1t|EbdUz<tiE%IOQ}}XKwBo$T;_6iF`y&$$_JCpU;I4kNtsKRHMNQT%=^z^+gG8J}0Yt5&HjWTNB?p&dlYH!x3N(MF4{nCC$mDIg*6xbG;Lx_&0L+hEi5}ggO#%ts}o1yslO5E;geF8T(Qs4_z zbV-^i36#Kf^QE0g?HR932z#rdyv(?(s}*firC@qqnn)}kKCsj)_!)`X&|QEx9+Zbq z%CWuT=G-HvWze6{cxVfKdBR4;a+Vf6b3o;nwa9f$=gx68Nna%1$(<2GiF7@0V}V9a zE>3nppTtS$D9=e8a4?dqY|&)rB^q6n|3m6YW^6fR*VX-#HIx1zFAv{2Z0$x zH;(X-u-x^eud&uJ?JgXgkdSQCvTtu*+) z7hU;lQYL^WLNTrweImwBUY*$-$(yMXaH||V+hW!W{jeC*3Ebv zNvH9PKhoq5dZWuEQRFaMsUMh2ie8FqP)5*OcyNM*J4}7&zJXvH(qa3%F-@$XJ-z;2 zYD)gmfjnMiViSF@56(0*GerDFZuFp&vhS8dXs=D5@InfO2lihnO{N3sAhM#ucsT)Z z$WUdFK1+-RHeQA<=bJ-8+a=gemtGfC*70ca?n#whq%EpO+rW*?ieF2EZ1^h(0xE7b z6Y+Vv2=4@kkQgNMo&I6h;oY z9hK_RbYH*9 ztXv3R)ftXG$xbtK^pGCVkxj@<%&KKaIG|&%^d{M+<{jBTQQASQSStWq16xqf`;>Yu zwlQG86rm3_?7x=V)<|rJVcJ|HRoONyPs#73Re`O$Z&G}BCt~{ftN&;7xjwzPZoe#o%F%;f6@;PudIpl{3cUb zx$ho@5WH=sAw^-e78}X17iDpsRX&P%Yy#Eiu#4as%A~iatL$0D2OM*_M)&w zOX3<4M%|7M-)-#)Sy>Kjq3#GO@@!U(&*W>xD@rq2^^+f?)``hYG;n6#cSUqFu~J^V zZtf;fwQ(UR0aVa3!x}72wjlM;Sl4<*ng(V+D@ARGP1NBkw>^3Trj{ItVB}GyQHGXy z_hvkbL}q=cd>pe?8buft84DELk*ytf?`~+OSY#@{ZZhWY_2SqfL7bCuoH&A2!}sek z{hb(@Yy$fUx%(5$7{M(DL~yQ49f`->JHv-OSeENOXDvrZ{=ObDKR!FS;y-=#JBk8B zt$h&9jrXnVSx6_@&@ngd@8f2rRmOX^eIN6CY#Z*RVj)TQ*^HX+(@VicxTYBZ7GwiF z2RB<^?ck!_b(Sq*u;<@d^f95|7GIwJnFUh)u-Z*-#5`{i8!9QJE@2MIVMTfH^~~ck zXyuB|w^OQv4nyBtXJkmCi4ol5!K%O1K8KKiQR$yB`AKsXuO@{ZVt9N+gvKOc#AN}zZN+cCPul@)o1-|%VbO~-NxGWZjc?Ww!ArR8h|kezSF@g3|;Fc-H~)A4bI_&Gmv zj?F|R?340}Awct#x|~S@Zr>@GAn|MAZF8L=n!|f}G6h;XS-HPkD64Q~OygX0&Vu6y zbsc^fk?R%gO_Dw06$TSW!Ps7e(<=Tap%GVen|QF6IAn+`@h9S7K&MYH0v?mHz5w2B zy6=;yG>x7tq!8#@MfUcWwC1rH9VEh#WJ?9$$~C$VG7rz_S&=B_&^uPdEMzKk(!&EG zb}(mV{(B;LT*6<`D)*ahZT@X+DC&PA3yX3``D$cJ;~UJNUCP_W7-p(}sd-h;_q!UxMWk-uL6i8j>6T+>-|W9SHV2LvTllnI=t@auQ}{HVaXOnT>) zk8aAxw_tns3tHHnL_=+M@ZD09!K`GWUEB#WlyP#8(i^*-MFuxZUN)_*(^X!xoaB%d zCvr{FObMiWec95`?%tB&ET)b*WcI%c!VRjA@*Z8Ua*etF&9oWQu8GXo0b<6%=i{lv zL?kB=Bh&GD+mBwFuB9-^V^6}yZC!@}guJ}2PvkizhyQle z3YIP^cC;h=ks6^`E?ovjW~BYZ_q(Q1amxt`cKZU7h-dbZ%b^MN8J^95Fs1cEFXGO zI{p3dTY7*ous4-Mc0v%7Yk7utf6`xhW)HJ;3cPJ{g<`#P4emQxJcapczSy1Bsd2Q- z)zM%NQw{x=N_WV^?1wna`FU%%V>__WS{jp)I6f2GK3&J6ZkMYcV*76ozz@GQ@#5W1 zeM@_K*%*yHjo}sPwLla+&a!;H2+=#D^Hrnoin#?YqB?~A0Y1GoB@NlVOw3GH;-ZcADR;!$+yTru#+q@6m9z71+ zy)@JzTHM%Fy%s(%5p_$WbD= zy#l-0R5G1%R77F7p#F)79CiyI?qkBAG10EX^WiL^Ufa59vy?e82%lR{vm~m26VAHk zR?94DT2Vd`LVYV7Q_$P35GGW0)Q!XUd$RGf;Kt zPy&Y=-Dnppe}ib;aDGxK%N{IFT{8nzs>SQDkbhoc56Qi4r`I^f**Fv?koLeB))q~a zi0paqF|1{&AhyRroT13l3wpC-bRRRZ_Q9IMpo3dds7@n4qD=Fg0*ijnwVvYpZS-f--SlS8>+|sD~ZE4Tu6gRkEPfWs+ zXk_akol^VOpUpF|>If;=n%-x7b7K9xgsoUOY`kN#YGULX^UoiZHbEnN4?d-*rcg|3 zKq1inI`m46JHhddVf zluAE#HtZvo5HXU@@$xnxxy(p4iEGfZGJti%74Cgb=zd7TA>RmL-b6>E=a_#=;@wO* z%5C~ip+6_TG)7MbIOed~S;%JTTfcuKiGfM4Lez|NX;hW$IMkS3;C~u5+Dpo!9H}d_GIkgb8W( zQ?Bbw?RqN1=>x2e59cX&c)=MM#8Rhx;lC8Bkzbrn*Y*&hax43?$F&&FDxEK2NhiL? z_Se)i?%Wh1)hqmb2DIc2+WFTC`@XeZKQ-j-8pr218D1#YRMpApf0All%QhNjl>>J| zxy=29TrL|w8xF*TUrzb_V&q*lT>cSvdw0$DT~SOG_IYHa2dYW*9Yv-L(gs~! zDMQ5|#urrOWyj2FvaCN&S8~G4!0c93uIb=`T9~!sl*m;HI%2+CIzTylp3tO5!m2+QXT@uNazl z#b)+bH(D$nkj#5Ib66KyUh)z#T#Md_u0Y-EFBZ2VCCT4&wkljtdE zWZAhgpng8#w}khGYQQ*^Wv(HD3I=5`7eA)k`A1L$27wj$gqV4VVubh>v9RgopBiT| z0Tx*io#>C4`O8xl`M$n<@Sn+2OnxA>P*b|snn?`@I!vbx)? zdZ+95gxR{Apm`|$W)~HQ=SbQ0zZAnt#ZUEY1}m-+uZXbpeS1mxlV-(t=lSGgksLfz z;>33ATblpoYeuiK`P`F!!&~S*M=SgGe*-c)FZ4aEx2@$p+mkK0v6#M`%+9UuxpYw!asUJax0?V6zeG%y2 z`n-~lYT5NN2#sSgQg)e;kvX>VJ6f6qzMus^a#~W{h4ejf@%ykpq}`g6KPPkNb7`dX zTeJf60{dhp`Qv!kc-ieiF37ZmiXY(X0gV4RMUhb6uqCv0T+4_`%^;%c+8j z?UbA%8j|x@lX1NnfYpkYz0ZwQPkopR4B=b#s~(2x1oXnGgheB48nvJUXzNM9+|~fD zTkr(H-ZgoCvw;&;(~nx3>YoF^Jal5Kuw!y1H~q=pche44((e(YNx%S)R0Y3sYXWH! z9iM+X?_vLbttMh2mO}~%Aw$7X`lcjbx)^FtM&0sjgc`5tGJN^q;E^{VbJ-7?9s6ID zCm$R94I4esbg)aAb)XaEnh-7sdFtNOuka`f1RM{X@?0i$DqIZxgN;{I6WH%AOmU1G z%rZVq{x_6Bt)r+X{m0xDl1@b`k&6=R(Xjbxu)GBy`+BGGFWoI&7!y4=0S*Qy;G84* zW%c#O&zZJRIe)!I!jIVF^y-ifHq-j9X?)*IRS+pbxEdt3_Nb~kTRrZ%GFcP&_)%^+kU)xoEzT-AF@M%Do zFYrR;cza`5|HAk6T_*{D<=yq;Ako(f>!FcGJYj!d0PYZh`QYw_Vx0ZobdO-Gf3KlV z-C}$l>*2fmJe(PsZK`)6b3yM4Am*|G_`?m6~l8C#|Q*sFKsP7%$Y;fls?&1*AoV6oND?6;omi&pw-pBUy@Gz$M3 zwDiDXY>K1?`@B7&r2BO&W)0Ys#&*YxR_VV5=_lCwXlaYCnn7mAQE|Xb1lc&7<^*4T z8I?%7(DzeH#huBqAW?2$m+C;< zyhy)fn0oFaC=*V8oXh!s(x?uG$)O|k(|Qni_q+f-Akj*S^nUFlh4!rDk5q}-NeT*# zMme3Qv4J}AspYgSEQau^i7y3o0~kF(2?y8NbtJk0ecB|KN24)Sb^V<;0y*hP;f%}u zSH&*V{IjkauRY`N^_j!&j=kbcfPLMqZ>h1jBdmPC-<`DlOz3^24+82Ret)+C%>Vz* zt=5wMC`b}{X_954XOjB$xs;TG^8D=bAjp~kq8-77`QL&eW^iDLKj-w`v_kT5y9=5$ z2Lg5LUTY;1@ZxMPzeaAYB?oQ1hzR9I20^N8}SsjDOmS+ zyi_8Gnd!UC!;AVe1E=t*J65-Lh@=Iat~*f!W-Kyy7Yo~Wa;0tm(cZc4R+TAcSRW8W{Q2x z3&nW}tFo^gWx$iXZ04RE+<%<&h|^}EL)LAkzA9e(tT0r}lHf;dqhw!MoO$KtvDgJV z$qfX!+3kj+(y<@A<3?E=;VK7hU#?XQxO8SahTnNln9zs{w0Q~rM8R2bJAkD!; z7u*w~;%z6z>5UlW=r75SZ%i-5;P0F9Ebx@%Ed9iG&Hkf+OAV&; zBbP5Ju!d4DIfS>A-s;!WUYoi%W{_4;0VG-*o1f++cj7qqn2)vx8h$-i3F-ELmwY#c z8)XSAu^({w)q3$xU7nJgS|*0b#QS5bivN1a2=Nat?Qt9pts&4mnkVtM69{}X^$Z6w z(z;ea@5QdY?V>`=>s2;#S?@V$Bz$vT@#tT_`-_&K3;^2#wU@Gq3NH@a5I?jnL#hd` zzQDyfnx=q1?3wTS7~6_K#k^vrAzK?8?bRv$9i=_h&ZcceqE(G!Kj$U2*p=}o#f2mPCM}A+Q~U4<(BNEm(2r<6LbNh7>hs+eDQ{kWf$}=1`y%m0VqWaQ z$8j5}Ur~rQPA##gptOrS%LUMZLnQH~=YozgYJ{nac8`O(unMQC*?Mj31Z0tk=f|BC zR%r4>PK=yp2c!li-c0JGrR?%U6<*Wc0GK9JfXs78`h=@K?)G7twTa*J z6&Fn5^)CcI{0wL`I_&~nTrxk8Cf44qy*2m=hzUzPX@AStbhG3xz6(KSmE`)^rbzK; zm!8m8793H?h6w-)eLh=Q%Oby+eJJ5a4iR^5<#P|M$rS8Hk-Krk3SK+H4AjBg6EL33 zr#tyd!g)M$zriE*$EslErB!M^oGUPch8yRVzy+M|5io9sfe6UTnN0vbMnK(GXck-F z50=u%r=3Zd^Ezw{sy`pmi*60Chrb$$-ANvL)v6-MqZbw}I=GxUcP-#vnf@Vu)ON9p z=-)28L?Kx4)Uk+d@8S|6+bN&p60hUR5oQNH^h%pMKccZ+Hr2_qc_HAp-}FaNFo@5S z4y^F8z*FTQL60lVFP^#8(|N-q8UWdc>U-3&-w2_ek==0_t}ItZp{UTZ^H|2h{QYPs z!di4E*m`c8Wc8f%01*^7XmBQwd`>X`)F7KN2FhcV!Gf+%!L>ImDlb=hNhsTjGw_k5 z*En?;wesr{I1k>#xJI69#33(yQ2tUV@I z>1B^0WciZwODkbrxjG=RKFGcE*MGN&4R&+u+?8G!9W2lsi&t=Z@0l z__i#CDOUEC$?8pWPPMJpki)c^=-V&FhnoLdlkLDd_gs?drIh={p-)ZiG^c^TYJ-kD6cP#?O{%%)O;@Z8ip^?=MVIL+)$Ip z4bnd0ic;=gOQ}qLGc&}Y!S(eM6CuDZWMq%IMay%EjTJdAGWx(eNarYrhPH5rq2yc^ z@oMgJqX3>8Ho|IXt4z*z89|ZKBG@6Vbb+UfU4{ws%#)G3glRaSR^YESn%srASsSx3 z1a7c~|C$86Nq)Il8-4p$ulMk97hdg^!8{dL@p@r$ z9@SjD$)M+PMjq&k7fH}xrl%BOkNY~1p!eGA6@G<-<9nsIrz%3XZ@chm3FSA8HYf`k zbGl9_`A;DGPIN|x;`!fV^H%GjK#qarrVskQD(|>PIr7OfRv)%2i95hHv=0F@-~iKo z(jtmG!t){3&x8>`b90-Pvlv!rJ=k@F-SnYrZ`c42GF@sxcAY&&ZUDB`8*TsNW1bMn zIjj4*PiwT{KQ7u)b}K0txVPeivCg&FQWJg6R|ImWBnFCJZ^$RKU-aBxsTm0qg^M=~ zK%Wp!<66=_xva|MKCk5Emw;S&ifw)`r|?Pi0@9=nXC`G znhI}X)SGnr2p_I+p)g7`|GvhltD&j*c`baLnUGC-ei0=yOoDqGvQ1lpBXdvwE}AcU zQm3+q7_Iu|e)&nZ*! zOTU5Fo025L!rMlOmAnzUen=#j-c&|3aXshym9WpDP6nb(@FUxy1O|4l()M~pKpE&O z*Zt6eYDqq_?{1i(6dd>Iw9F>|Izo!&zgSwcc|e5oDzGW$uJx$Y&3z~b>r0+VMvmvR z^Ddfs;l_yUYpz}Yv<#Aq`##xNSvVP1+b$>6gD1lmALq?n4y9`IYA@~Bo>dY7yq9zk zRg=pjefgr-FIOae;=Llvp6BHAh-FIWw|xY!`M>WCo#-0Lu(@VlZ_z(_wcUC{^n`*A zDeqznd18Aw8>$FU>xA}9v2SMIa`Z1SD@%vVGSjpWvrt$@9Db+xlC=ESpbf8O!p*7q z<09r*J^B<-Y1Ly#hb-*bE!3OqY6LWa-KThVf00UJhv|HArf7?d+~}exrwyX9QCcP* z6EKyd$tZ#SM;jf}1@cQ&x#NkDZ-KU23DrzcDO@yg6f-ZXNTB6@S7|IKOjjbiVJqD| z^6dF43X@U-y6r>nFD^B=585bkBpJZ4W}m`W|H1JK~fWl0!Zfxsuf^pshgF5==C zQiv3v6hKFao_`zE5~UPfW#5Ifur7 zf9}M|p0a}36_W>-5mMg1j-6}ZCuNyO$kg=gLL)*R@c0~3vlKef$Jnr`OBD|+OZspI z9Gwe`GuJhnp$`9(Fti^e8?+i-$>3d)&qjD|JUMeE_9kN&Wl2{HHS zM7YdrjV+UjL*$XHR$JiL;``FQSl?35H5kbxtG&(Zm1z$xOC<6EhRM)k#+&EP@A<{S z=$cDvpQzPy*$`Yf7)2pwA6_+bNB7Vx+2jQQvM|B-5St&wi13jXtE(JuC?^()x?~M2fiiSVkQF)}N{!3eW+d<%lj7 zJFo2O9*)TtCSwg@WC_(r-uM7LPyWwR1{_rwv}o%68e*J4fGnpjI0tm80&V-UZ7}j5 z`|cVTz1cf>c(OJA?WBhSXNR7fIb)Ttvyb*+Hc}%yQ8y2O<-b_$zdUE}EKDTcQi9tu zJXgH)UH@=0o;mMUsgpJz-}zNDx{`q$V&RjQ&GZD5nEgnMx?@PR9W8Sd-qVzWLmFJI zZ`pP+ZiR0B$(lSuuE)|x12r0fvTArF&Ig*Jz0Ejh!OZAA%%}4_`eUz{KK&FT*$pvk zS+_3)MJccpx)(p9O-cI{3QPzD)bDOnzSEeM!Cy2|R|J+)gdt}fxoTb>O08BoPcBiH zLwi*OYrz~U>TLQmp!KaO?znseG^1)TI~gqxq;JIz_&L(yRbsmk$ip|vY)mEAl%hx9 zl%v0nWm{UBn8K3U96=yiG7CKgo5+Rin+4cbDhAv}*(+-QMH=AWuQ1l?g)4o9r5YE$ zEpsQ{<#+Gchxwuf7%%~c=|Tn!GCT8_^$>Js&%c#jv|H>An#QI9VGP{#ooPNIWd-%F z_r_30hBCmQ(7p!N5bqan%Nlu$nGnhotP!728z^5lmlFl0r0?{uiZjq0%%cS2Z%!5W z#9}Mlyqc9X;3@+Qfgdvy^LYqvK|oYhBqj&5x6 zDYTEYrqu=Si=K90Im2?DcIcP7d$~qZMH|o>Ak&zak&Ep?(Br$tQy8NCLzXRw_68Ai z=X@%&2RC#6`wfo1N!<|3<7@60?eh>JvrOLNU-(H(24*$E|GXc$qxBWcgsWWUA5T)| zm{ZHm)?~8LCZ%WYYu<|cyr~&@@&e!mL9@=R*g0eIW(zZV(97?wSPuWOkVp|C~ z^q@Omdt6g%7{E7<(B9I-X*#k-GB;eqKYt+^N92?3!ZHqFsmL>(CJpt#+ab+6CHZaE zPF6VWU{|eF&_bg$#mXn^F5R7*Q=yD8HZw#B`jAf=z%%HXO6Fwt&Ri?*>S|;1m-sh! z3s2&ZrvT^9Pnzw2*ZHwr?>Vc$5vO0!zX0_ZK3b|DVP*5;>AqbaN=t>+kMKpkc z36EhA+7lP#KsysZ8R*sqCCID8xsa0fE6pH9u`F3G?JjVvc4s`tQb#@dsaAIMw60kK zd8EDXrPbxfohYD{9$SUDmJdT*W}Q67lm|-lb63VEoI`nMcld z4=0sh0p!+&680RH*3U^vQ!IZQRX8n$9prQ!`0l2t5JUlmU zrqKRh=lVXsR@(#i(I$sWE%w{-Hi@1zyj#>@rGgDm!O?R3411DCFOK7VlSXSm|6iiA zy3~{xwCsN+<%cQft?ImP+zIiyY~IlOXb|EH3)}t7+sAV5R1BCsyEpOV}tM4(ljJAqfVR79y?HTQn00tRr;Jwo1Y~=vo#x({~(7N7Dbv|r2 zf&eF$K7+d6ODpXxD1AcF_C^sAhpIDfuU0xRL0A<6@MQf6hbp}zdI_n@We72hXYYJ@ zvAQ=K(H*+Qj_*3P?;DchGPrLea+Prow+?+y?RzIPL?DDJwy)(C)n5k4Wbh~#)37O)uI_VZQz#3Xpnh!fyMK&fm zM%C%UY=?0LDDR@g4l9N#R@MQj-ZO_5;G^^MBh)*XnP2t3*4B$uED3sM;4Ztm(F%`K z1oqzr278Ojv)k7^!z+QdQx&D(KwI*d6E?S)bo=n!CiA^#imJd-CBwD&fqf%8Vm5pE z(xX)!%We<-yGx%pc>;Y6TY#k1gf3!zlU!f*I!C9n1S#O2Yr*QbWyP;Js&B9mjzdWw zCc9F<$i{HrJBO3OF3*;IZrl4t&(%#oQmGYs;qzN3)>jREr0!u??37@M{GKzgUoRXu1nZySK3 z8@q%;|Be+zIA8}6H?fK6*e<`~chjwPVkEi-(_dGCha%Ou{Riq;+4~BaeN^m?!GTdB z`BUdSzyul42Jf(ShAC;9-WSVAcK9!ahD?4!fn7bWbsV>40W>_6rfAOoi{TRHT#F1nybi6#})21L1D5ntBy?67am&=Q7#L%n$?C!J<}HF3>OWWMXX&gOuz}fsLahziD>-R`Do$XA@J9 zd3DWf3&zl5aBj1fNanq$#J-jH*wTT=oDRt>Gi9+ZPRnm&5&Yu@zH3#zvw_wL-wq!( zqczh#G+sgS5?AineeKo#6k{`VCWqL5vFUh&1Lcz{pSvxracq8wXR#30&HPEyiU$5n zX{F3JSi=ut=ljJz0d8+$>Mh3wOeY_j5>`!h@#G(GARDh>^2U~$F)LaP(z1sN)1ABd zCcg4@crXJcJ@pD9-|PfpD76tyl-0a=kC*>0a1gIdBNtmB=E(Bv?-qHXf?VNPGXMZ? zGTl@YU2n?)Ew#!)0dW6dhoUkA84_q8gC|cfQ#hr~Y7fhNlwr=oIp>hwPN<>2!;RUM zc^$h4Y@@}Q4i@e_@|2Y3UL$7hnTc zujtpj(T`jDsw3f0QI<}rE9pZA4(GU}-8ae>5atqZ8gK-deEkFw)kN?Skg-d6(+f8{ z!)=SQ9Li{8rNS7&D*f!>&H|cQVhvf=_p{9<*&q4{99l~&<<)29%%?=BFUVgCwMya* zD0366sPEU?oHwKF74TK}W%E@Pyt!RQw=Qm*k>jT%Z)YJyT7|Stc=mz}a|yiD2=wQJ zoi#xf;W2vPyJOh&Xs)#|zeKgn(l0wPJ}s>AOPaT!NENsZYZmXl??h6eJoXUa25=>| zbow^Yuf7#jf`UvE%6sb7Zh}|(m|GNlC%&$O6?eV$b#wf>9ysAeP`fC3Kp!-9irZp6!p9 zZDS+0ja=NS%Ko1ExY}A@ol!5C7I#+~;SA(^%dFX~^_U##4H@8_R*IVon~UMMCEpf` zqZ9rqWujot;Osxq6x|E-z&V8 zS6`$g=w61z4XtnYW#&J;bKa>m2hR8dE6p_SIOv-#+Bc))Hk ztax*X0qJ){&K7*$lhI5#1_~dB^cT($OQAcL*Y`>(w{!H=*W*F;t-EH7_nVi2E=Nn6 zI#Jen`e%F>0+4>tiBaT~^wiZUXfNw{t5Xeq3JrddiU_6*GE&AdoiFyYKu0a~*LZHyJ1nDTaaqI_2A5kM+827|?gllvkZ{IE zg=|1WCZTX8`NG~J<1ogRutA(zl#dSYCO~BPdfe9T4Rc8B*x#t{UTKUhOWIkvR=nd@DSu&qc^GR8J(zb;Bug zb|PgGyYv*c11MNtW=vO}o#*x+9zgrvXtdlB!(1I{>8}Eh9lr<++UcEsaAVz*hCMQ& zcK!z{<8JwNwZ%~B1p#ZMfXH>l80g-6-`}^#dK9UaJmb``6TZ^LKrFQ=JUrp(-M&x^ zSb}u=6X$CVsX@u!BloIivyKxUZ&IsINsf(Wr&V~yCwK&^`R!z7Vnr@?D&0Vq%T{&j z!6q_{`=-q^lxNGeXX#r!Aa{gFt=x`?MiH*Y9M4l2tIcYE9yKhe4n;(z zV|;HN4q=8RZ5sOR(ep2)EhkysEb za4A$yl64=vZUs^kl-z#X$y{syENaC{&MlM6EQSc0^{O`)M1ogsLpF>A12={>CS|2C zval_w1agjEivHSQtgHr3)4^tDT=jtUfUWBsw>^#e2ofaSC6lAz__z_HB`sWny`}@g z9s*eU^FT21@|=K#*Ox#)ZkmA}J<9O}9u%2y`pM-@+#GZ03}e?Bp@`=jVW9hh08Lz8 zXQC5|HJu`ow_F-N*!PwRWA<<@)A!=HTRkT@mqi=Ir03;3Bj!1pXF6_=J&KHmSPB&3 zMe2oysO$PuBeJ?N2KEL~Ur(j4MMvGT*ghltRMNk0ZxRLPJ>!ie3eqi=VSpyIdwP+Q zQ+ieuS<_Qd#CXtk8jzz9Q%T@O-s#?gIs2&1JEt-fRVcDGaAc?=-aFU+40#n%D5DEW z|Fy_GtZMzI^NV$^GNg_`(?aw4yQS9ZhcfihxH4HpOSf z`t1miN_THXzmgzgWbO1-U6yiPJ1lEtUu!(MY5jU;9=2m0sNiV!&73thPQYfxWx)4q zI{>4v#l7VZ+m>2FE5{zE`E=dD#6WKkbi3+*t_4;yn@oEdrX|v1S{8RwcEsUGa5$qP zi+onQqx=Je)MZ`M}7dt$*X?xVI`woUbz8Tl8<2O^nGNItOE1UT9 zeqc-_WZuS`wfoQ{T;YdwbSFzM_iHg!{iWpHfxsASQ27_t>HhiS+=AX0G?}gec&&~6 zcbR0u11h&N|ABR?^n6si02LnF+Z;?su#2F46HBn4M#}Vgu^&b+^25BbUeO8C9(A!YT6ui){IN6*-XU#zTu zmrbm~y`}n>?2NBMZ;p0%_nZBMGi${&{Rga!znJyQ$<-*kZZ!t{W9WZj%Gc!6ka+pz zveE-A6~9i)f9#~GnA;di-0rj^9&f;V$}`>8mSfno;;X{{W4WxObJ)YA;EU3=mda() zLbLrB))e@wqh3IAh3q6SRs^GfVYE2^|BYeve=iNlR5Hx}fw!~byc=NtCILfpuM*du z@F=UQ7x)%G-K<_OzW|P~brX+o9r*Lxp78i}1KJW9;SZ1L$d+??8f^8KA$@J?bN>*Z z%jKIVqEWxmxI3WT&T#U~(p`QdfNC5UL5qv?3@L$I-4|EW>J6Rtn|6=OQ@QLTfRn3i z`Sjya0}8LwlOMd9DPi3Rv#fPC_Uo(a`hw~dJDBk{`fJ8n<8n_e3dpb@9aUG;HjAtx=o{ zy4tWm&*l7ccn#c;a98eax}} ze<$}^u-`s#8Fm7H6SWUm1IP3deGb3eq5RL@D~?d`8&vTJ!?&ayKFxXk>k5t9p8rJ( zMYNwB67E<7$m5k$t5WS8@-cf`KpivpDj-U3h>%tTUQ6Pd zNjqOrJd{)|08(s(3H>`q;zR9Cq6;R2x0;^wm=}(R0pssWuY24c@y@Y?7K9$Vc#!~T z#oGz|ku%(di3;fTHa0>#Y=A-2tW)i?pJB|+j48OS*7m-RAGY8nBrvTzWGH{P8E&E59_9XH8h|sVwh)G9#?sP zziaxri!%AX-{cjQqs8nhxQKfGTb1qNGO{nJzjk zjahp5rr<_T52VOn`j^>=g078vf!dQG{@+-@#Qr<41_9=I0tUPKFYc_R-vp-MBw#mv zaGf(DUnM4?VI*VpvCKnYn|t3AAA`f36WDy6Bq`QD2+Ra));;P`I$2DJ%La#eBkh5p zz89}FcH(J6#p*$Jk-B9c)GB>hqM-`b(NLEZ5cgZ9mrcC&pH(706!byn=EDBm*MI*Y zkN3Q!)ylI--aVzQ#@#K}p7#|4_dZyBe@cw{%bx}V?^fEljkY*mu^&TKz_+qA6imiP zbtqiy#w${gl{(tVge`PNDrX{~>jemt(bvvACC9MvalGuTEns;MKeT#x~g* zu#G?Hl^S0;JD3XIdIpj-RXytQv365ljgw64f9gFD2}dXDCAoKIuKr~7v6cRzh}I4j zkeJ8EK_!1Btkllgw!rCeu-49NR_mpt`<1h)PTCr8X1CZ(tfZ^3lHKxV&{PL=XxW>gluov64F_+Z&!l{t}3=N9C36ANM3f7|2tLNg#opulA!UoIh7ZSA&`HL)o+lxfUPwb0L@d?boP=2Dk zk(*Ey&Pu5GpB2}NT-E&(ce5Y)=UOC$H4#&Ih=5w@l zbVE_I8t|uzNJLPYqBy)Vbkr~IvV>C08&Q`SA`Onrfl51k*j&Tht{qa?Xa*x!2)szh z^ZL{1jXpSCL>gUDv4%;xqGWcqJp$olZ>MSm6(E5hcY`}womecXeDVuIHmEIjR)E05 zbnzG|X{kEc$0P@Q9%!El7S0$*2p`DZ3jsosqcCx4Ph+9@~gi z_#n_U>oS@E*`gYXGoH)vH5!iiWZfRcuweru`QYfeTJ2f6Ye` zQhF@_5)`C_b-5|a%KD$@aQF-s)3|oF5nF<29J*JcpQp_!|A|5ayoLQ&lz~@0`!B}e z(`3a&=3eQ1(2ReSiyBBKUe1e8TE%)!-RP2*IdWb_uz~up6&%2%d03-6rKbcRCAMairy-N53anV-8e@;kQ z)o@E?=h(K_;e|+G^`uVdH>NXy=r1im873Xgtd;LnOn2=?puJ?XXcB}+u?j*Bx>ih( z{woqjy}Pu6?vNU~cluI{E}(PKj9yM(&R|zAsJF=y)?f%x&<}9|H zaO>Z@C{-v%I^>eMp0ZQ&x#p5lHW@;|(;C9|dOT+i*h-Rj09>Ezd|G69YqsV~{>N@K z7Jr5M>U?lR!`+&u#wOw~yNq@JVROVZ~smYEVeAcU#ZA{g8833TT zTr8oS`zDvB6%^C;VhBJR82dV{fEf*G6kHLj4FB61!0iT&41b13zfgR5EAUg=gZJL_ zETN5z%F=o*MA(FhL$78CT^3ubK3%VGUXb43ci<+c(HJO(uaF!T^7~;I{)n8ckpH){ z>~O0GD80vK(P_e^hr3p(3MFCRQC2DUfCcNVf1)*~Y{ z02}e2qs8g&Fnho$3m@XE0?4Jwbx%Mtg9t)cNf(R*bZf|xvRzNyHNA2oq7&cYx%~ML z@P=5G5wtc_jD~i>yEtXq-ij_8aDf7O_gAz=nmQ7iqP|;JLo@U>-oBm}G*1haKKMyW zE601C5+~hXKnpdzctr~D;^P8j&h?47K!iJ^FCO&0&^-A8{HRKb%pqNsE(sySZw7n@ zL6uNT)>{2xYDwTFaY@jghji$>(|o6MMA~Ll5dFarBeQ`yr(ij{mK{5g{mwAI%gmG$ z`d50U6DGR`QroU|y`^^5*Aix-OcITtqAtcv>KTDcr&FLW^XJw}s!r&CrzK=9pzTU z40RPExgGPrM$Mh>U!66gD-;8c0e4nOIYfK+yCUJeFB`d~-7RFQqhWTeEcl)ip$`(= zuIe&d*}Y)V18k=g+1$RHkR8VxA&+acz;OtS%g_NrV(otzRE@x z*hu-03-YO2z%;05QiRpv86N9z+qa)9kz;kuED5p>@xsqnGbHTYh`$(AF}ca0$=-Qu z=pB*p1#K$;`zhgcZ1=9Kg`*5FOL?&?-S@VBjO$Vqfr{Faz;1L^)=Z@%{>m1PCA92) zgCIK!_7pw8-Pm$=>?-r(VNNJ`J1=AeBN%@Hn9MZJfm2rzgxN9C1)^3wozoEQrR8~8 z1>^vwnL-b5cp#p@A)A^^X)6bVF?Ah^z}{H$tEE2l$|mpNE`8yT3}Ky14($r6U;*Tz zZ8Qbmw*?h{ov{Lk6gWkv^~fRSbuMig?tiDx%6Wnkq>u_p1P_8Bdp!AYsuNbmfnJDflJ8MY@*yw? z8hecb%s5Zlnf~1F*tZxo$nfEH!U>>Va^s^N13>7eI^2V*Fuq9GA?cd7F3nNw$S*^zdM7*cxB0xWKwr#6mpbNU5qndU8 zkF_79#v+B2^l0{@4nDgxQe44$J5P&O9 z&U*@8M_ga^_1Fc8HazJ>X@L&AhLqCl^Y*Iu9=hM>F-x~+fO6?Zuh;Z~rkspelFZE| zr9|}T#ESw$a7~`6Wl>lqFve74w=K8`0f8XmQjZ5ge>MGeHc@cX?Q%ThXfSG()Cxct z^IG3GcqjgM-+*=Bps}CG_^dyl_QYiRKwLrCnUV@HZjTM!asv0AHYLWhV&6POefj`e|0NiO>sWfcSV+S6!mOmDcgxoQ^Q?f_!NET(Q<(CrEPZg$!83b{@=E z643TQ7if#@WeOiDHsJE>6Hz<*cDQV%PSX-F!Vty4;5PL7y1}jvi6aT@c-0Xvad!%I zD}%w?<84Xl-a9qS^-KVL`{WP5LSkYOdd!5I6;`3kxpXwOUcvY^4#Xb^=Jj41opRQs`QqOV;LqR4a6!lO z=TLDYIFlZj6*%EB({o!6v`vYrUH%ml1#X1xySyh%+4ot@RaoK@P|;6k_YOx`;xD#S zb-s`=iVp;TSU*dqU(RZsEZW|l#?P`Hv`r6RDse5^#$V0nhYzR#UpjBklN*QlO8fYG z9%OWCPu)lSyoyy<@|pLdCMur)?ACD=OL=AwxNl}h4;J(K?aicmPkv*s9d{oaSDan?cOU$Q#8Z~Vpz;_o zcX}tmd*3-EeDV#0y$^_9UI(3K@|C}$)D2RC%&FAJ&Bh3#cJAX87zWk=3qUt}@sy9d zy+2F^7Z9vQ>!Zq+>}Aku1MDMgR^MHadt^XQH}}?{)YYh@W9H?+iis%sLd}F2I%V%Sp4pb2xt6qn}RO6`2 z3ANaIBalh!pe&TrKxAM(p3QJ-7g|EgRUXc;grzesz}w#nEj{;-X2ztwx_u~Pkuk+e zE`zWbnT+t_9YBrij`HU=27^!F;r0OF-y-VzwB=VxdcwcnV~B*%1l=E+pLO-7RXV%b zsr;oR!r?b2fpamRO{HZOhf8Ph>-0`#&cl9|P#+O#+E*Y0xBW7rnGl?44N(ZG#?UpN zgV6f?d!nGc&mO8zk2BX-Qf`&OPCQDJ(OtAFgBcmZpU|Tmy09s2!F=`N;sN700JFeA0rjT^XG70xu}^ee#8ys z=U*(m;4JVDv&9UpAQEl$OWMm$MuLT@55=APIQP*ReHbG?k41?0It@QvAqQHmikV`a zM&i^{#|VUSMZ&B(a?|A_nN&*QSGn^_t{(>LdCdi8jn?q@4Jw~(XiYqxD@#i3Agi>z zBKS~$P+R9|9oon1k;fB=>sA)$ngJud<~$#woyAxdI?A`(xfB3M5T8rN)bUii1glqO79{lAcQDVRHP%lXh4dT2q+;`L+=UF z0tEOr-nad^Gw+?bbAMfiVIUJu_Bng)wbx$HTFvayKiF)uui=EG%pRz0G^s)j)R6hU4XiRxn%k<9rkcou1L!d0!{eb{;=)(%5-HgZ)^nL4?Gi!3 z$eg1DTCK@VRv4oMyO);}M!2KH^#nL;F15@7{}R2d0wxCh(#7GQDOtqoFd75VJUgd2 zko*HMcpv%0-9G6D8I&cQxuedp+h=qTof6rpk7s%v6YKxu%@qIMj7esZPTY+NfB7t+ zggN(|%mY*5fBWyVvlMN-eFlG^R-KnhHT@H!4(*vyBtQIzVlW`nj2!R^RBcfCqhF>| z-e<#N&izMlA^3-0?ty@6Deu4Qr2H=s3IXuWv+@70;EezO%>=Tui2yVD^#36e^nds0 zcH&Pb?311(iPnqYQ$c|bO%#;}cW`$np(~v4KnMQb0qNCOR`-|;XAPhKxiV5S;n^(O zJeR6e{oZBJzaxI&ZbM+UykxGjlWyI}pppv!{s!x&JeA}=yQV4Onr?&vCtt0gumq26 zV+D5F`ACgbNyy9H&C4yae%hH;&br4b%Qk;1^7I(9j;WcN8~787Yu&f`hs~U2hwBES z$vhi8xBF{QO#6~So0IE6niBANZ1rUrsoW!I`z`kOI&=6Xvugf&&kJb1_W!6+JAs`1 z>0>`+fY{SkZqmYNb%J$Kt-Xc@g!B|pZw>jPq&lYw7=;dNIpXt@g+b{l7dO3 zM-{L@tf$CL_i%u=hIN1d4Nw8*s(rQs)p>&&3bB@-l)$v@@!39|v>4I)={K!F7Y$PY zlsiGnU-AJ^#oPn<55xlpl9AaDBReQDAZ?|}BL*K^Lsy88r)nfIIRT;3?s$oTw|@I2 z2$=Aoq}O!IlQRidY}0^yMZ3*p#~T^<>YUX)$ob?8?Pn|_Cj`)?Ty0t7+=x|IQRFAy zT?p_1N|zX*5W1dUL;u3<4B_hfU0uMVG2e*=QaRfDK)RE*`wppAT8HY<<{AfQ5}V(8 z6$YFzv(LJ=({(MmGtDb(;AK`{gpYtY6l=S)hMF4g4+u>V8;xk2%>(s-v!!kyetRMW zrLyk`upqzpd*X7MinDGn{Idbu4o)s$wQ}wjTlkxmICj}tW^F{PhVcTb=aZ zy(6xwSd3|LMq0d82kLLYEkSzW{_d@mm+)2YIy}IKLk~MKAjonI5KVaf*Jm{bpO>z}5i; z+xy7PoNt}UY|g9E-G4xy|7Gj(-UR0FLSIcYt}U$72VCShHQF|4dF)#IN7E9fR=qQo zO9~p3`&Go#jj4q84Zq#)E$Aj%zu5X3U!%2}$xZEHF5RI=@eEG7#ySaiUh)|8(CJ2f ze0eA8O40EI3a7GGJGcbfQ$5Oy7!1Hwjm~X_=7sI=Zy#^sP7D#dC!cpMZK-9qH|#Ad z!9okDuYdhy+yybzRuS$Ll;a8s10qQRK3tTL#Cvz({p0{ZuX#uc}GiYpq1BQBMj1EruI9a+0Bi-CaTu=+7 z9nxg}f)vl@8zo5DT_+~OU(vzVI^K}Aa};P=5;kgZZBv0LM)I6~9-@Bev^Emu`o}2p za0I*0EE#^9ARuOW^5%GtwRNk9S4%6^XVCvnMd)rR2}Ah7js>4;BiBjt-Ob%Za}mq- z>=ZX-Mb=Ae1`Xr&ym>bP0L(1)e_y;W9a#|#1g5h2i3A+#-t7W7oc#_#CsO`!`8`P; zo3D0#N?akWL?l^yU}LRXA2$+$n27TmRB-vz8DnO&hVbcPc`ps!N*Kx#Zx0`XB2kkv zh}%tbp3OK_#ciOyd1?#5Wi=(F(W*nO(n6*wQ~M1+{A5766B!JrpE>~!fn7lWR z1E_e%iH_FwPP0AV^dqsgPk%J723s8M1AwVg`1~jO#>F@8u`_>5ZBIkTN-X$i_c7Zj z&ctSIXcaLQ7w+OeSfVOZ`0QGl@_J>5W?0Jp?fEnn;7{IX2$&U4MiL(sCGjK@XfjLS zf#WX}!>}j<6^G>v^Wug!6~Df(N^o4$DRip%M5XGe{{DL%U zFRwTmZt%)VO$3U=1xgzHKV5nczio!C4|(tohja!jg!0re!VcLZUSyhYvmS6QsvB<8 z>$42cl;8A=h1zkk`53A{+C>+iU(sWq3t|gfpY>V$7ROxNojjDbx^{3boI%wQH%8!y z5I=pqTqEA(iWl1LYt>x^Q272I=r2MOh{yEwik7_^I ztV(0J=Xk7{JBXu6&8P;Gq$rkt%#?HMrTjKaK6`>C?!|yu=jqvaP2o%}I=O8-22kIK3(`;Zks4bFw&x7;+Sb zLc!|rIy0ni31T#_#1bEPwFc~fElIp~{ILn&!w+JcEmV{7`(T5Vh};AK87CV7utIs+ z4V3Xlb6nw=Or>vLD{s~$si^$1*vonNbM~;)yoL3oe$zrcbQz{&GdkCJ4kfk}Gn;hfs>$89lY)DnpCX7j`f%2=>$@){SQ*92ORSYd(#E zlegtP$%o`;He@fbzX>eQa9!HhvkXZ2P`pTJ7$rh;oz#i7<`3duT>JgI&PB0G*)=_8 zCeBE~X;x;1P}=mS{f63PPLxh`y|bb4d3QtY=IJF!+l*JhLj@|#v~=Kw@qokv!Ngaz z7yH*K=GrRJ&exgEQiLFvtito(C#sy`dU5AHJRV?6pso>2d;QX=WYwVF>q#@|l4yj` zB{?_mOjFbjHg7#J1eB0(M}-!zemvhB7@^uL9(mCBF69Ky>^7nQJPo1|NO;l-@Cyu^ zd(>&`ibOc6>cu(fmA(UAJMx8%{c*Hdoj@polUSdx@LHYHF0(xjr9l*IbFn4sZ&Cge zgrVNBLR?fY+l8k+882-fqCbqjG4p_x(S?1E$l6gT&N}9WM$xROt8muHT)uRWF$8SA z4u0JJBo$M;qTAUjo9gBMX^i4d?d)`8(LGOT1l?j&@bQ{$yCWR_47fX%+kYmd zsh`OTYr1s@%I_QAwJ}_t0!U$pZ~9B+PxDtO++#RPnENk7PWQe0k*L#e%FJ`8JxHUm zoQ8ymU7D9BLRO2hq<$T>xM?y_C6^ccqH)Z-n?2}iK@@>>n=9{T!3b~3=cbT3xPsz2 zq1^tCEbW>|4z6i>2KckM2l3Kw+?`iy%GjJJKjUKU+RztYH2O@r`V6vcz4LR6d4)3# zj#Cf=in@5b7xj5+s_uoID%T+eNwlSxzd@mtddcx_Bq9#)plQ#0c{J$FBSa}&Q8vV1 z#z6w9CY?OC`?fY^ED}A*hlQXk_B1P7%!McvjIE6S5aHe%OCh`*gt~?1n&6G1qiDPX zM|{7JzcqZD4hG!N_B-hCj3mmD%C%xj7i6s6_NkpCxddPsK|TczDdK zMBZ0W&!sIo5g{-`=F`}7l&7z^%n6$ztu(OYQwB7p?cm{7r1PKVU9XEs#Utc}i{WAu z@#p=Pl*j9ls48Dkx>_P1`mw5WLDs?1g?0fFcA$Lz?i;6HY6n53td11hou`GPcig1! z9tto)R@mLg3aH=6Ls|PD*vD0hCE4?Fcw(Nt_FO5Hpw4OWG$P#AeOCKZx!dSXC;ouh zm_b101hGV*E!YZyb*GXz#Ir=E7z!1MgsX<5E%>@9anBmH=maeZjaA`kGxoo<-V}Zi zthzohlyd6@oo)zg-`4n6hX4oOM4ks~mFSiyfLrV189a$&{@Xg__I1lKdgTNz5yk}L zc*`Nhq0aGZP+^FtA2%j_^k;0*!x6jmZSJ-mJ9nggpO3=)3pJ+qP8=K_>deD5$aoAv znF4x;{ZdYZf9v5fPmG;h3MYO;(p*~X38U|m)$?4ZxIm-c->Dvwk}`&Uw@>%%>+}wY$wKZBPkz9mNAP5&ja+v0=394;ggDqGu$9F<9(w`v;{1R%x ziW~~N!za=+>OEpkekUTiigd9Q88>)5<$Hqv&GqFR6zEZU)q z#kkUZL*y5oIIPmURDuawol`!(|M#MfP(jD#)3UrA{Tj&#W!l?|@v zABDqR0}ssGsvRv2FUr=7ibpxnw$-`c(AucRJGAanio`vYqM30P?B%0KN^WXV?m02P zLA+!%zU}bn>!WjiVl}pu_EO1_S|1h{h@bNk;m5y#g~reDoqD?1$I-$(=NsOt=ogq2 z_I7DLNR}dd)r%rUzc^m5jUUCnOx$h zfUaB#nfECBGe-aD&cc?2Nc=u$V&m`eby?ws2WR~9m0~%R_x$g?*D?NyHAis+Ix1t3$(<2fvX!cXh=e@ ze5}E*Q7+R3hCG#KeK%*BKT+`op8-QBSufW(7`|#R6MW!~mHT*?%~$>L^_9Gl9-v$j zyg4DAs#dtBtI!W~zCj%K|8`5$B3|lZXKG{xd$k3(?%!%s349r8Yl}!C&EMW?>Vr31 zCt3zqa{P)9{8(ySe+sutKLf*&c`ZMc5jql1~O^GumtEA}4{6GF*H+A_h^8bWk`7ystDJe=|@ z_^Yl{{7oHdhCBQfyc^;i%!3*>{8D|&5`K?0U&Pq5_V&?q`dG6?5x;_)55Ow+u3gbI zo;#1dBKL@ln^01)d8&q7pPlrDsI%DN@g3m(zQZ3o5T6sR93U54EhlHb&uFys?drxs7jc!)# zE0TDqvtvRjKuM{PDex(aH_b6cHlnrp|N8E8iYq1)3nRFHh6`7n2_u(7aCSbHuv9R`^mXYpOa( zp#ozAU*|h=5$gKUriQ^fjY)CQI(3@N@?DblV_Nv?={pRy-d34-RR2jHIcL*M}2k@C-v<)uuFs` zd#Rf2!HAdmT(jC@!NdX!mBX$NMsIQOqK2f*AKJ}fHe~I5AFOta?bf)7j>)@=rdNjV zb`VUqKrnmdbh}#r>aCi<{6|R+EEnrcv?8=bc$;__e=($x(q$hpjT)9>YkGF95)w|n zAA(|Cm3{wXiH~p}HY==_VB8BCEwKu@l#m$2b}j|F-~Iwu6^scsxKUUjqr|F|jE}n6 zsC_V(so0YTTM011OlC@E^+lOs>FL#TSh6sfFPeZ=WQ+2r}Xq(Ry!YVtZx>fhkY^?-k=~8?KKdZ5{-^$-G<8@noZ5u-Z z#?arSoTT7>ru?8D$2amtCfJ<2qHqe`Pmk{vZv8ii{$~BR5)8jjcDZSD_Ofe}wSxn} zu0T?(jd3c6QZC-z7E1H^6@E@SW_K~WEY>oH^E{oYJ#jRTPO%i9q{!6Y9_Dc&>LRW7 zi%;3SupXft6FssT{G9syc)#EgD=cqrYMa{1m&-{s+LqL4muY-PIsrVDXM_(ga1A>! z7Yf9UQE_ZN`F&xc{HAe4cZdFWP2_D)Z)FC zk;}+^qkub5E>|bqF8MJZMQ@rVPAdCewKWJkaD!MV*ICLOzp6uh%&|=hrS8lQT4pw~ zio6DLFfpVuejESIL*XaDleuUmE;J1DOId0|Z8ousafiGT1tkQ-2$5 zNu}MT0R4$o1Iks&3cRVmq|`X^#OC|HTPFU&rxiV$ND9OhbJNMiCFK$V{pgI;gUpoa6ioj@Ii8Xi=Y=fhOoSV~02`5EXrpr>p*rxU ze-YAXiJsbbNrWe%{9PRn%OWGJ2aYgLn|I0y%yj3##wlNTJpZMv;Fa;vm*daTwjlaD zoWrou@;X26@HJevB5T*d$hvbAeL0828kleX?{gYSAgTgSzByZj_)siyX09 z7W#=+bZ@qheyT6BD!Z#KV-V-Jdm3hy4CqcTnZ~mh$JZLZ5qrE{|M838G1*fFJ=`ZVLdN)B6wxCpjU`;@zuxK z`QH>(*4N&y7Ww8WY=j)ukVA_c6YjyEFIzuIc2e-&HM1A=d^BX(E&cZgdyrpG;moJR zkA4Ye=kH9Y3TF-vlJx^$%eJO0G}adOR+FkO&Q9#d^H=0h>f8^rg&igueJ6&W>M-Q( zI@B9(;DnN7*xS)tD)krVZ=kTLdEhJD+k!;3brH2_y+3|#^nU6-crL2eW?N!{4D-)G z>!`0VI&i&QiKArjb>8(Ox5>8QRxGgXPd(I)LG)N=KOQvJSF5UXtzkl@y`Ye`$RlAs z2;2Jfp>iP_@y$6$Q_|^qHfsXEWpBvd_wi}= zJp#8D^q5}=j)@zNTv{zsU*tn*!DB0XGU-KDD7`yckP_&3x3t8nXD9z+2r(Pyh%HEJ zVium{pZ1UQ>psXxI3_O zy2m>?PBul7db>YFh-P!Vm)`Fx0HaJBT(0|XfiK{DQsZZD`N09w#G=rN4^0xb~~CA;zY#U#Jc=cIFy1R zPWoJOY^;@g$N3EINyi0T4=4ZtlPqKCeZX!?9%~HJIGmS6Wi#)F4Typm( zxjNOw6o>B+VhGD*&L`l`_;1uwmtt#!ZT z-p?OMREM7ol6vtlhdEDaVw3@8>5g>?>qL-j@MYw$hkD}P|I1TMK-!{vGM{1HioF)I zS(iPf-Cxtgeu~$=Vsk=&F2YCE4l_S`VgSv14;zW*MCb_HWFDis(zvXAJEdOyrrYiw zt6dQgwItATTLynAKHY3x5~qMhY}~}g$)(nF9|=&8)h)K5c%-VSzg0XTA+;h!c_l}z zlG^VibB-Tg1K#bCC&C>Ozn0@~)uvmELK@xw{WzMFkfPq=p)b{z`?+;}-v#S}&?5{y z)rQAW%U6me+cYy#lWe#BBKZ(iexc==Xp_1&Y`qz`ghC<8V1 z_<5Qjbp)y9#NhXh0EX9L7716!%e8akf^qB-{O>{^-S(F>QGY;s4^k5U-XTML_|@AV zCe}au2iCjr&2Tw!_->d=VWCxg@}bJ2WGFV&D;L};rY=*Pnw{EQF2`7<`#UasCrrh= z@DN$m_mOPmu8iJ~OT<{4+*`thH+5?L#4kos3>6z(?hRh1f6B40=m@_y zjoyvo@y*8^>Y^N@s#GMeJimS@ha%Xp_6%dSlgw6FtJSdiLL3(vJP z^=H)76ASP|J0*)52Xdhm)!tVN(w1iMtWWwR&trQ~Z$|f78yL!lp!B7!vMN?s7mobf zk5$Qy^#$qeo?jUuf0?~U7x7Wsy279<^ZE!>ee|kw(gj7WVYb#1uh(2;1WF(Fokfd1 zZ#E~7EiH|EP6Zmy*P!16Fy#(UbBq=Uht1|o%+0cn)iH?95|4?mG7E~{D)`$88b@}K zgn?qKg}w455Pbbk@J`Xl)xo%4F)F+@a$&0#R(})~DI-Mq22EKr{aJ{1c5!$ZGcy=V z@e+v>?du<>^1RYN4!eK<20`jla;}l??QB|lV=Ez6o5w=q&Y7Lo3X3zPj4;&^%m)b# zV&daPoncnWC0EhG5#126wi*!C3I-ORlrX~5(|JdFZi!aO>4ZbvJNyD#@x6dx*@Ud! zo)p3QQS$Kix=u)@=lMHE{)W@d+9kg*mYTIc>CZBJ;2R~A0bJG-M@8?yPKZP5&(zbIrux`1cBUaqQ3ki+|Wp1rH_J zDz{9R)_)#@{pW=(1mv4t;1PSv82}gc?qYHApD>ui%eC0~M6mhezfA=SL@ul8jXQ_j!bEe_ts+JcLw*Q}rP z?OQIjJ+cZq(3L+F^`iwBc4w2sZ7jk{TNlc_HtL$^w-L6kk{B4kLDB|Q_9ut>f+jqA zo0>P;j+V{a4}ae&#cTw%A5ASY0%WHFE*`O>N1>HEt70A8zmAf&zl06K}#KhH>FJ&dZgI6@rd?~}Bg>`rYwxwJRthuU14puceBmt`$= zxZxG4#1>>K?8+AFStCu# z3GTA^Sn-rDx0GkgR#!}!=NEwYhtkx5_E(fQ)d_J4DlUR~EC-qsmwR~A);+yk792QF z3CnBX={6mALt%!|8vsF*R1XzzBFqi}ETG=Iuzp+_iJP07+3kiNyNwOno*try2Il;N zrUK9@n`1P%2&9Eu}vomo8vd=t22?`E<=(zLYLpg zyna6fT0xJwWoqlE;FJYxXK)rQt7puQn^-ua3Qp-As+H}>8(vZ8T!7Evndb>zr;a3a zEZ2@0vI6RTn~rMGHtX*Xgi@&c#u&}5B}2ba*a9iY#IpZhNY(gez_K6Lz7D{m^*U5b z;OVgz^kKZ~B}!us!$zv^NG1ew8p;rN!R-VUyd>hjpPE z^?(ww$d_eQhxrtPM=dlVcGRgF@W#~Ez;9bP*#1k`%*Lm!f#4wh9N!!sZV-ck_~|7; z>wwQseKO{h^{~z$dhD3S?Z*knL9v{ur42Fde@?{ybQo^=44=Z|I8!z58m6yvKZfj; zc}2KmZA&4ryW!XMeUiaQK)iQhG$@7^Q4#*Tw9Ya}MsSbTucsfvK)L$Go%Vc+cIIxH z;^DH#xO`ABCi8=1ZSQ4Ie(u%aPFk(x>F{61YTxoL)4ml)?6I&160jYrbTTBK)5_s4 zB9Ry%XMy09nf7FYmD3~IR|dQ|S~s6weEp;*ZX^3BA**GlXiD~(>~PdXV?p#xJ(!Yr z@u@iF&4;)*dV~bh$hE_@xLpn3guS|yOsADHyYj6%ga2V{mq=77pxZBz@oCeFV__r3 z8Ui*9deI_J%AyewD_?rSnO`;~GVVu`-6!|W(2Ry zg&-|?%6`0+7Rgpn0tVdhj-B=Z)B?eFKy#ibm5BDjZe%vA3(dPJSkle0qs{inM^+3w zt-z};yUaz<$plb_+*1`07e9f%G35+&MpwjFwtnw9^CR3>f0uVwu>e<1&ekU z_N7$_QDl64w?Ahe4t6Yqu81Msq#}`EZ)xmewdzib>7TqXzJE8Lhv8223@FEHUVf|RzvPON-EkaSC$&<{jqa$wx$$n5=FqY+3^QdPwwJcZ}2jch6irmzcgsQI- z5C7Y90z&d7g!~%lBP#x?RV%QAG=3cj5x2Dch^Kcly{e`zG^~U{cTFTjWXFU=&w#3# zdU-@jJp3k3g4aWmJb8zPEUAvil_w&3qx4Hc8 zkEcXf1IQ1$&gzOHyp{~2`@9DE6F*#VGdfrP3aK6oSEK1@{aa}I9^VVCDF~lZB-6z6Z~K0 z_d^c&fUT4Np7+;uOWP}|_q!J9mXdNBy>$Z?@bI7;%mh zMbu3ViJ1XnY>HPeRX*@+bjl5R`D{&P9Z4a+UMKWl3yXDvw0*uI@$WH+0XSYKoGdUj zr$rFw^y;K5@EuF4`;9S0@81>hxwLtVNLApsa|CVrDIKQ6A;4mI#Hf4>M9!yzgT^`Fj60GSn?8n(sC}nxan#X>kJ^mzVfC z@k6|oI;Tq`)pIZdA$cIOHHzJhlsVbR5bg+FAfw;i{*h^uTX2@#0AbDdCP@PVc3bDO zh9bXKJtH|d1Gfy{uH}Cc*3vDm3Jvai&23Nbe1bLB;%s%C`pvblr3F14Lf+R>^A~}* zt=Pdu)X82FhkfRQ=7gArb5XBvSl1!b#!?dD1p%K-7Z*x3#y#T=x}_lzy+|WQ^hG%@ zo9azn3BlWMrK2v{+(M~8G54JYQ`eJ@nGUk3CH$&#t)_9epudIY--o)rR1|-EvUR&*PE$^#Mfe%5T;r$5_%~JFN8c|}U-c;Lslz?kNmV`K93_Wp z(^8sVjUjkU(8Lc0 zUBp|K3%D77wt&*raNl>|M++3y9lXL`%(C!@mguhZ&h158sT(?k0m^~~jbF(LzH~z5 z@8zL`S&$Yzq1NTuBna9sRUKm{5>QT*#ld#WcO*qB=+%9=_zy!yF)q{^_APV;9?fiv zY?@8N*oD^QkyP_EkjWJU1QHMBh>Nn1Z@kQjgwU>z3Hfdhc)|R9xYXu@OoUzkNBGhy zf;193^sW?OECz;2qM_5DMb0Z2x=}fbq%KHpv>?;6oi9ZPUZ>GAUhre$RWBYOV@TPx zO4iu}hl?T zxMKYs3@#9psDC-r%-7c#CP4AWf4I8fvxqG{8HjNCcw74w4c>a3 z+mkAr!Na5uU$`4wi0;Z$!6kPHmE@0m(9?tsy~aN-b-Gdl>LTrxcq-BSen68*yzcZX z33SZkBJBs)xarBV-;Zo^XZXjLF3+3XN_c$7^w(gJ6Mee0xz{koaM68TFEbI1AH44b zX6J)+6^P%cVG`be?j-;nw@>k=PpGLxw>TnnK3yxeG4GO!&ls#7Z4=y$D1b)i9Ych6 zo7t2!jC_xh1IUbLPtFd4!%*`F`1w4)L6%Q1?O$)t*x%(%9RdOTkjF*0%HgLPQ1%i~ znhXfdgcD$^BM6Sp58K#%jCeYVcbd@UF%J2!M^P|#H~x*#tnU~$j+)lc@2{EU_3Rc+ zUM)5RKn}ReOed!6D!VNzaY{DmLmOjS1pP+MAVRwPr{1jGMh%MQ0KRZ}xy>DCkQ*D& z?~)q;W9M#PYB&ZQMPCfCZ(hwRxg1Y(h=&g)U3onb>mc%dWM=yBSKL;!vr6pu)Bg7N=xiE7vEawIFCXmAm0c7FEHyYu^^a8Y51QG h;s47&22N8>I2~_V_LCY=MxO&;IvR%R<#!%E|3B)9o*)1K diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding/MRTK-Quest_Logo.png.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding/MRTK-Quest_Logo.png.meta deleted file mode 100644 index 8ba20e346..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Branding/MRTK-Quest_Logo.png.meta +++ /dev/null @@ -1,92 +0,0 @@ -fileFormatVersion: 2 -guid: f05f7ccd01024a3489ae7db829b37924 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - 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 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: -1 - wrapV: -1 - wrapW: -1 - 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 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 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 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials.meta deleted file mode 100644 index 3b78fb6b8..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 476fa594696d7ec4cb65beec48ba5b24 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat deleted file mode 100644 index d5ec3a805..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat +++ /dev/null @@ -1,97 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: HandMeshOutline - m_Shader: {fileID: 4800000, guid: 7a052d2ba7d176348be6de56c061b21d, type: 3} - m_ShaderKeywords: _EMISSION - m_LightmapFlags: 1 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ToonShade: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlphaIntensity: 0 - - _BumpScale: 1 - - _Cull: 0 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _EdgePosition: 0.6 - - _FrontFactor: 0.6 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Outline: 0.01 - - _OutlineWidth: 0.007 - - _Parallax: 0.02 - - _PressIntensity: 0 - - _PressRimPower: 5 - - _RimPower: 6.6 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _Thickness: 0.5 - - _UVSec: 0 - - _ZTest: 4 - - _ZWrite: 1 - m_Colors: - - _Color: {r: 0.4121129, g: 0.43718854, b: 0.46226418, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _OutlineColor: {r: 0, g: 1, b: 0.95862055, a: 1} - - _PressColor: {r: 0.28475437, g: 0.52133965, b: 0.745283, a: 1} - - _PressRimColor: {r: 0.8326362, g: 0.88483447, b: 0.9339623, a: 1} - - _RimColor: {r: 0.51957995, g: 0.6544834, b: 0.7924528, a: 1} - - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat.meta deleted file mode 100644 index 620380c0a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Materials/HandMeshOutline.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 46180a965b426614f97a7239d1248a1a -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders.meta deleted file mode 100644 index 7e0cefabd..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3d67028a72fee4a4da72f4a0721bdf84 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader deleted file mode 100644 index c91c1bd2f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader +++ /dev/null @@ -1,114 +0,0 @@ -//------------------------------------------------------------------------------ - -//MRTK - Quest -//https ://github.com/provencher/MRTK-Quest -//------------------------------------------------------------------------------ - -// -//MIT License -// -//Copyright(c) 2020 Eric Provencher -// -//Permission is hereby granted, free of charge, to any person obtaining a copy -//of this software and associated documentation files(the "Software"), to deal -//in the Software without restriction, including without limitation the rights -//to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -//copies of the Software, and to permit persons to whom the Software is -//furnished to do so, subject to the following conditions : -// -//The above copyright notice and this permission notice shall be included in all -//copies or substantial portions of the Software. -// -//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -//SOFTWARE. -//------------------------------------------------------------------------------ - - -Shader "MixedRealityToolkit/RimOutline" -{ - Properties{ - _Color("Color", Color) = (1,1,1,1) - - _RimColor("Rim Color", Color) = (0.26,0.19,0.16,0.0) - _PressRimColor("Press Rim Color", Color) = (1,1,1,1) - - _RimPower("Rim Power", Range(0.5,8.0)) = 6.6 - _PressRimPower("Press Rim Power", Range(0.5,8.0)) = 5.0 - - _PressIntensity("Press Intensity", Range(0, 1.0)) = 1.0 - } - - SubShader - { - - - Tags{ "RenderType" = "Opaque" } - LOD 100 - - Pass - { - CGPROGRAM - #pragma vertex vert - #pragma fragment frag - - #include "UnityCG.cginc" - - struct appdata - { - float4 vertex : POSITION; - float4 normal : NORMAL; - UNITY_VERTEX_INPUT_INSTANCE_ID - }; - - struct v2f - { - float4 vertex : POSITION; - float3 normal : NORMAL; - float3 viewDir: TEXCOORD1; - UNITY_VERTEX_OUTPUT_STEREO - }; - - - v2f vert(appdata v) - { - v2f o; - UNITY_SETUP_INSTANCE_ID(v); //Insert - UNITY_INITIALIZE_OUTPUT(v2f, o); //Insert - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); //Insert - - o.vertex = UnityObjectToClipPos(v.vertex); - o.normal = UnityObjectToWorldNormal(v.normal); - o.viewDir = UnityWorldSpaceViewDir(mul(UNITY_MATRIX_M, v.vertex)); - - return o; - } - - - uniform float4 _Color; - uniform float4 _PressRimColor; - uniform float4 _RimColor; - - uniform float _RimPower; - uniform float _PressRimPower; - - uniform float _PressIntensity; - - fixed4 frag(v2f i) : SV_Target - { - - half rim = 1.0 - abs(dot(i.viewDir, i.normal)); - - float rimPower = pow(rim, lerp(_RimPower, _PressRimPower, _PressIntensity)); - float3 rimColor = lerp(_RimColor.rgb, _PressRimColor.rgb, _PressIntensity); - float3 emission = rimColor * (rimPower); - - float3 color = _Color.rgb; - float4 output = fixed4(color + emission, 1); - return output; - } - ENDCG - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader.meta deleted file mode 100644 index 5c2b6615e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Art/Shaders/RimOutline.shader.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 7a052d2ba7d176348be6de56c061b21d -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor.meta deleted file mode 100644 index fed454019..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6463eae4d6064bf4385c8abc5c592ec2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index 16f708b70..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 684100e8ced097f4f81fcd6ae2f8e0ad -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef deleted file mode 100644 index c67d4e2fe..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.Handtracking.Editor", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Utilities", - "Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus", - "Oculus.VR.Editor" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [ - "UNITY_2019_3_OR_NEWER" - ], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef.meta deleted file mode 100644 index 1dabc1973..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/MRTK.Oculus.Hands.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: cdc39bb2da021ab41af48293f54eca89 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs deleted file mode 100644 index 7fb8108c5..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs +++ /dev/null @@ -1,271 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -//------------------------------------------------------------------------------ - -//MRTK - Quest -//https ://github.com/provencher/MRTK-Quest -//------------------------------------------------------------------------------ - -// -//MIT License -// -//Copyright(c) 2020 Eric Provencher, Roger Liu -// -//Permission is hereby granted, free of charge, to any person obtaining a copy -//of this software and associated documentation files(the "Software"), to deal -//in the Software without restriction, including without limitation the rights -//to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -//copies of the Software, and to permit persons to whom the Software is -//furnished to do so, subject to the following conditions : -// -//The above copyright notice and this permission notice shall be included in all -//copies or substantial portions of the Software. -// -//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -//SOFTWARE. -//------------------------------------------------------------------------------ - - - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using Microsoft.MixedReality.Toolkit.XRSDK.Oculus.Input; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.CompilerServices; -using UnityEditor; -using UnityEngine; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.EditModeTests")] -namespace Microsoft.MixedReality.Toolkit.XRSDK.Oculus.Editor -{ - /// - /// Class that checks if the Oculus Integration Assets are present and configures the project if they are. - /// - /// - /// Note that the checks that this class runs are fairly expensive and are only done manually by the user - /// as part of their setup steps described here: - /// https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/CrossPlatform/OculusQuestMRTK.html - /// - public static class OculusXRSDKHandtrackingConfigurationChecker - { - // The presence of the OculusProjectConfig.asset is used to determine if the Oculus Integration Assets are in the project. - private const string OculusIntegrationProjectConfig = "OculusProjectConfig.asset"; - private static readonly string[] Definitions = { "OCULUSINTEGRATION_PRESENT" }; - - /// - /// Integrate MRTK and the Oculus Integration Unity Modules if the Oculus Integration Unity Modules is in the project. If it is not in the project, display a pop up window. - /// - [MenuItem("Mixed Reality Toolkit/Utilities/Oculus/Integrate Oculus Integration Unity Modules")] - internal static void IntegrateOculusWithMRTK() - { - // Check if Oculus Integration package is present - bool oculusIntegrationPresent = DetectOculusIntegrationDefine(); - - if (!oculusIntegrationPresent) - { - EditorUtility.DisplayDialog( - "Oculus Integration Package Not Detected", - "The Oculus Integration Package could not be found in this project, please import the assets into this project. The assets can be found here: " + - "https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022", - "OK"); - } - - // Update the ScriptingDefinitions depending on the presence of the Oculus Integration Unity Modules - ReconcileOculusIntegrationDefine(oculusIntegrationPresent); - - // Configure the project definitions and prefabs - ConfigureOculusIntegration(oculusIntegrationPresent); - } - - /// - /// Separate MRTK and the Oculus Integration Unity Modules and display a prompt for the user to close unity and delete the assets. - /// - [MenuItem("Mixed Reality Toolkit/Utilities/Oculus/Separate Oculus Integration Unity Modules")] - internal static void SeparateOculusFromMRTK() - { - bool oculusIntegrationPresent = DetectOculusIntegrationDefine(); - - // If the user tries to separate the Oculus Integration assets without assets in the project display a message - if (!oculusIntegrationPresent) - {EditorUtility.DisplayDialog( - "MRTK Oculus Removal", - "There are no Oculus Integration assets in the project to separate from MRTK", - "OK"); - - return; - } - - // Force removal of the ScriptingDefinitions while the Oculus Integration is still in the project - ReconcileOculusIntegrationDefine(false); - - // Remove the references to the Oculus Integration assembly definitions - ConfigureOculusIntegration(false); - - // Prompt the user to close unity and delete the assets to completely remove. Closing unity and deleting the assets is optional. - EditorUtility.DisplayDialog( - "MRTK Oculus Integration Removal", - "To complete the removal of the Oculus Integration Unity Modules, close Unity, delete the assets and Library folders, and reopen Unity", - "OK"); - } - - /// - /// Detects if the Oculus Integration package is present and updates the project definitions and prefab references. - /// - internal static void ConfigureOculusIntegration(bool oculusIntegrationPresent) - { - // Update the CSC to filter out warnings emitted by the Oculus Integration Package - if(oculusIntegrationPresent) - { - UpdateCSC(); - } - - // Updating the device manager profile to point to the right gameobjects - string[] ovrCameraRigPPrefabGuids = AssetDatabase.FindAssets(Path.GetFileNameWithoutExtension("MRTK-Quest_OVRCameraRig.prefab")); - string[] localAvatarPrefabGuids = AssetDatabase.FindAssets(Path.GetFileNameWithoutExtension("MRTK-Quest_LocalAvatar.prefab")); - GameObject ovrCameraRigPrefab = null; - GameObject localAvatarPrefab = null; - - if (ovrCameraRigPPrefabGuids.Length > 0) - { - string ovrCameraRigPrefabPath = AssetDatabase.GUIDToAssetPath(ovrCameraRigPPrefabGuids[0]); - ovrCameraRigPrefab = AssetDatabase.LoadAssetAtPath(ovrCameraRigPrefabPath); - } - - if (localAvatarPrefabGuids.Length > 0) - { - string localAvatarPrefabPath = AssetDatabase.GUIDToAssetPath(localAvatarPrefabGuids[0]); - localAvatarPrefab = AssetDatabase.LoadAssetAtPath(localAvatarPrefabPath); - } - - string[] deviceManagerProfileGuids = AssetDatabase.FindAssets("t:OculusXRSDKDeviceManagerProfile"); - if(deviceManagerProfileGuids.Length > 0) - { - string deviceManagerProfilePath = AssetDatabase.GUIDToAssetPath(deviceManagerProfileGuids[0]); - OculusXRSDKDeviceManagerProfile deviceManagerProfile = AssetDatabase.LoadAssetAtPath(deviceManagerProfilePath); - if (oculusIntegrationPresent) - { - deviceManagerProfile.OVRCameraRigPrefab = ovrCameraRigPrefab; - deviceManagerProfile.LocalAvatarPrefab = localAvatarPrefab; - } - else - { - deviceManagerProfile.OVRCameraRigPrefab = null; - deviceManagerProfile.LocalAvatarPrefab = null; - } - - AssetDatabase.SaveAssets(); - AssetDatabase.Refresh(); - } - } - - /// - /// Checks if the Oculus Integration Asset as present or not present - /// - /// true if Assets/Oculus/OculusProjectConfig exists, false otherwise - internal static bool DetectOculusIntegrationDefine() - { - FileInfo[] files = FileUtilities.FindFilesInAssets(OculusIntegrationProjectConfig); - - return files.Length > 0; - } - - /// - /// Updates the assembly definitions to mark the Oculus Integration Asset as present or not present - /// - internal static void ReconcileOculusIntegrationDefine(bool oculusIntegrationPresent) - { - if (oculusIntegrationPresent) - { - ScriptUtilities.AppendScriptingDefinitions(BuildTargetGroup.Android, Definitions); - ScriptUtilities.AppendScriptingDefinitions(BuildTargetGroup.Standalone, Definitions); - } - else - { - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.Android, Definitions); - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.Standalone, Definitions); - } - } - - /// - /// Adds warnings to the nowarn line in the csc.rsp file located at the root of assets. Warning 618 and 649 are added to the nowarn line because if - /// the MRTK source is from the repo, warnings are converted to errors. Warnings are not converted to errors if the MRTK source is from the unity packages. - /// Warning 618 and 649 are logged when Oculus Integration is imported into the project, 618 is the obsolete warning and 649 is a null on start warning. - /// - static void UpdateCSC() - { - // The csc file will always be in the root of assets - string cscFilePath = Path.Combine(Application.dataPath, "csc.rsp"); - - // Each line of the csc file - List cscFileLines = new List(); - - // List of the warning numbers after "-nowarn: " in the csc file - List warningNumbers = new List(); - - // List of new warning numbers to add to the csc file - List warningNumbersToAdd = new List() - { - "618", - "649" - }; - - if(!File.Exists(cscFilePath)) - { - return; - } - - using (StreamReader streamReader = new StreamReader(cscFilePath)) - { - while (streamReader.Peek() > -1) - { - string cscFileLine = streamReader.ReadLine(); - - if (cscFileLine.Contains("-nowarn")) - { - string[] currentWarningNumbers = cscFileLine.Split(',', ':'); - warningNumbers = currentWarningNumbers.ToList(); - - // Remove "nowarn" from the warningNumbers list - warningNumbers.Remove("-nowarn"); - - foreach (string warningNumberToAdd in warningNumbersToAdd) - { - // Add the new warning numbers if they are not already in the file - if (!warningNumbers.Contains(warningNumberToAdd)) - { - warningNumbers.Add(warningNumberToAdd); - } - } - - cscFileLines.Add(string.Join(",", warningNumbers)); - } - else - { - cscFileLines.Add(cscFileLine); - } - } - } - - using (StreamWriter streamWriter = new StreamWriter(cscFilePath)) - { - foreach (string cscLine in cscFileLines) - { - if (cscLine.StartsWith("1701")) - { - string warningNumbersJoined = string.Join(",", warningNumbers); - streamWriter.WriteLine(string.Concat("-nowarn:", warningNumbersJoined)); - } - else - { - streamWriter.WriteLine(cscLine); - } - } - } - - Debug.Log("csc file updated to filter out warnings"); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs.meta deleted file mode 100644 index 9887acabf..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Editor/OculusXRSDKHandtrackingConfigurationChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f04cbcebe4e7bad498749e5b275dc5ce -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt deleted file mode 100644 index f3a964179..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt +++ /dev/null @@ -1,81 +0,0 @@ -------------------------------------------------------------------------------- -MRTK-Quest -https://github.com/provencher/MRTK-Quest -------------------------------------------------------------------------------- - -MIT License - -Copyright (c) 2020 Eric Provencher - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -------------------------------------------------------------------------------- -MRTKExtensionForOculusQuest -https://github.com/HoloLabInc/MRTKExtensionForOculusQuest -------------------------------------------------------------------------------- - -MIT License - -Copyright (c) 2019 HoloLab Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -------------------------------------------------------------------------------- -MixedRealityToolkit-Unity -https://github.com/microsoft/MixedRealityToolkit-Unity -------------------------------------------------------------------------------- - -MIT License - -Copyright (c) 2018 Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt.meta deleted file mode 100644 index 128bb6267..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/License.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5984448943ad3d84d85444665eaf4007 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs.meta deleted file mode 100644 index c5ccd6bc8..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6d9a10b40a44f1d4788ead028d5374d8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab deleted file mode 100644 index ee841b1e9..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab +++ /dev/null @@ -1,69 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &5967586757591780558 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1870938896605422, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_Name - value: MRTK-Quest_HandsPrefab - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114252240061623322, guid: 835e735ca71bf78459fb2cababd74112, - type: 3} - propertyPath: _systemGestureBehavior - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 137619227449585070, guid: 835e735ca71bf78459fb2cababd74112, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 46180a965b426614f97a7239d1248a1a, type: 2} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 835e735ca71bf78459fb2cababd74112, type: 3} diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab.meta deleted file mode 100644 index 942fe5c05..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_HandsPrefab.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7f285947dfc20f248ad3ce02c2e997a3 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab deleted file mode 100644 index ae05dd873..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab +++ /dev/null @@ -1,95 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &6297684789857175527 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 158226, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_Name - value: MRTK-Quest_LocalAvatar - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 463470, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: EnableBody - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: EnableExpressive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: RecordPackets - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: UseSDKPackets - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: LevelOfDetail - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: UseTransparentRenderQueue - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: CanOwnMicrophone - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: EnableLaughter - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11437430, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} - propertyPath: ControllerShader - value: - objectReference: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 84c8b8609f9bb434eaf5248f17ff1293, type: 3} diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab.meta deleted file mode 100644 index a046da3ee..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_LocalAvatar.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5357c8e6c4495c04f90e97272375c294 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab deleted file mode 100644 index af6ac299a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab +++ /dev/null @@ -1,380 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &733815393131886882 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2343937678421142819} - m_Modifications: - - target: {fileID: 5969386144478096416, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_Name - value: OVRHandPrefab_Left - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 7f285947dfc20f248ad3ce02c2e997a3, type: 3} ---- !u!1001 &2040831387433341837 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2343937678421137703} - m_Modifications: - - target: {fileID: 5969386144478096416, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_Name - value: OVRHandPrefab_Right - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5971477318110852390, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6000525390331516266, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: _skeletonType - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6000950830729064370, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: HandType - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6001446048433977662, guid: 7f285947dfc20f248ad3ce02c2e997a3, - type: 3} - propertyPath: _meshType - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 7f285947dfc20f248ad3ce02c2e997a3, type: 3} ---- !u!1001 &2343937678421358193 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 100004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_Name - value: MRTK-Quest_OVRCameraRig - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: useRecommendedMSAALevel - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: resetTrackerOnLoad - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} - propertyPath: _trackingOriginType - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} ---- !u!4 &2343937678421142819 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 482130, guid: 126d619cf4daa52469682f85c1378b4a, - type: 3} - m_PrefabInstance: {fileID: 2343937678421358193} - m_PrefabAsset: {fileID: 0} ---- !u!4 &2348353478739872649 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4593680705043960, guid: 126d619cf4daa52469682f85c1378b4a, - type: 3} - m_PrefabInstance: {fileID: 2343937678421358193} - m_PrefabAsset: {fileID: 0} ---- !u!4 &2343937678421137703 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 487254, guid: 126d619cf4daa52469682f85c1378b4a, - type: 3} - m_PrefabInstance: {fileID: 2343937678421358193} - m_PrefabAsset: {fileID: 0} ---- !u!4 &2344326260083813425 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4484591312116288, guid: 126d619cf4daa52469682f85c1378b4a, - type: 3} - m_PrefabInstance: {fileID: 2343937678421358193} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &2801243777050976572 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2344326260083813425} - m_Modifications: - - target: {fileID: 112276, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_Name - value: OVRControllerPrefab - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11479374, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_controller - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 23705978566827108, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} ---- !u!1001 &6177999372221570643 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2348353478739872649} - m_Modifications: - - target: {fileID: 112276, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_Name - value: OVRControllerPrefab - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 488160, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 11479374, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} - propertyPath: m_controller - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 23705978566827108, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d9809c5e8418bb047bf2c8ba1d1a2cec, type: 3} diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab.meta deleted file mode 100644 index d2641e855..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs/MRTK-Quest_OVRCameraRig.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 69a746aa83d0d0e45b4e2d33eab0fff4 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts.meta deleted file mode 100644 index 609e3b9fc..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 49d3d4d4374bfd6488cd8b5d84242657 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input.meta deleted file mode 100644 index db50a34db..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 75a6ef5cdcbf0094eb7134c9db83c31f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers.meta deleted file mode 100644 index 83b73d6e3..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b0aba680139c98f4ea8947b5ce5b1aec -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs deleted file mode 100644 index 99bcde944..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs +++ /dev/null @@ -1,585 +0,0 @@ -//------------------------------------------------------------------------------ - -//MRTK - Quest -//https ://github.com/provencher/MRTK-Quest -//------------------------------------------------------------------------------ - -// -//MIT License -// -//Copyright(c) 2020 Eric Provencher -// -//Permission is hereby granted, free of charge, to any person obtaining a copy -//of this software and associated documentation files(the "Software"), to deal -//in the Software without restriction, including without limitation the rights -//to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -//copies of the Software, and to permit persons to whom the Software is -//furnished to do so, subject to the following conditions : -// -//The above copyright notice and this permission notice shall be included in all -//copies or substantial portions of the Software. -// -//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -//SOFTWARE. -//------------------------------------------------------------------------------ - - -using Microsoft.MixedReality.Toolkit; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using UnityEngine; - -#if OCULUSINTEGRATION_PRESENT -using static OVRSkeleton; -#endif - -using Object = UnityEngine.Object; -using TeleportPointer = Microsoft.MixedReality.Toolkit.Teleport.TeleportPointer; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.Oculus.Input -{ - /// - /// Oculus Integration Asset package implementation of Oculus Quest articulated hands. - /// - [MixedRealityController( - SupportedControllerType.ArticulatedHand, - new[] { Handedness.Left, Handedness.Right })] - public class OculusHand : BaseHand - { - private MixedRealityPose currentPointerPose = MixedRealityPose.ZeroIdentity; - - /// - /// Pose used by hand ray - /// - public MixedRealityPose HandPointerPose => currentPointerPose; - - private MixedRealityPose currentIndexPose = MixedRealityPose.ZeroIdentity; - private MixedRealityPose currentGripPose = MixedRealityPose.ZeroIdentity; - -#if OCULUSINTEGRATION_PRESENT - private Material handMaterial = null; - private Renderer handRenderer = null; - - private bool isIndexGrabbing = false; - private bool isMiddleGrabbing = false; - private bool isThumbGrabbing = false; -#endif - - private OculusXRSDKDeviceManagerProfile settingsProfile; - private int pinchStrengthProp; - - - /// - /// Default constructor used by reflection for profiles - /// - public OculusHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - handDefinition = new ArticulatedHandDefinition(inputSource, controllerHandedness); - } - - internal ArticulatedHandDefinition handDefinition; - - // Set the interactions for each hand to the Default interactions of the hand definition - public override MixedRealityInteractionMapping[] DefaultInteractions => handDefinition?.DefaultInteractions; - - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => DefaultInteractions; - - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => DefaultInteractions; - - public override void SetupDefaultInteractions() - { - AssignControllerMappings(DefaultInteractions); - } - - #region IMixedRealityHand Implementation - - protected readonly Dictionary jointPoses = new Dictionary(); - /// - public override bool TryGetJoint(TrackedHandJoint joint, out MixedRealityPose pose) - { - return jointPoses.TryGetValue(joint, out pose); - } - - #endregion IMixedRealityHand Implementation - -#if OCULUSINTEGRATION_PRESENT - public void InitializeHand(OVRHand ovrHand, OculusXRSDKDeviceManagerProfile deviceManagerSettings) - { - settingsProfile = deviceManagerSettings; - - handRenderer = ovrHand.GetComponent(); - UpdateHandMaterial(settingsProfile.CustomHandMaterial); - pinchStrengthProp = Shader.PropertyToID(settingsProfile.PinchStrengthMaterialProperty); - } - - public void UpdateHandMaterial(Material newHandMaterial) - { - if (newHandMaterial == null || !settingsProfile.UseCustomHandMaterial) return; - - if (handMaterial != null) - { - Object.Destroy(handMaterial); - } - handMaterial = new Material(newHandMaterial); - handRenderer.sharedMaterial = handMaterial; - } - - public void CleanupHand() - { - if (handRenderer != null) - { - handRenderer.enabled = false; - } - } - - - public override bool IsInPointingPose - { - get - { - if (!TryGetJoint(TrackedHandJoint.Palm, out var palmPose)) return false; - - Camera mainCamera = CameraCache.Main; - - if (mainCamera == null) - { - return false; - } - - Transform cameraTransform = mainCamera.transform; - - Vector3 projectedPalmUp = Vector3.ProjectOnPlane(-palmPose.Up, cameraTransform.up); - - // We check if the palm forward is roughly in line with the camera lookAt - // We must also ensure we're not in teleport pose - return Vector3.Dot(cameraTransform.forward, projectedPalmUp) > 0.3f && !IsInTeleportPose; - } - } - - protected bool IsInTeleportPose - { - get - { - if (!TryGetJoint(TrackedHandJoint.Palm, out var palmPose)) return false; - - Camera mainCamera = CameraCache.Main; - - if (mainCamera == null) - { - return false; - } - - Transform cameraTransform = mainCamera.transform; - - // We check if the palm up is roughly in line with the camera up - return Vector3.Dot(-palmPose.Up, cameraTransform.up) > 0.6f - // Thumb must be extended, and middle must be grabbing - && !isThumbGrabbing && isMiddleGrabbing; - } - } - - protected bool IsPinching { set; get; } - - // Pinch was also used as grab, we want to allow hand-curl grab not just pinch. - // Determine pinch and grab separately - protected bool IsGrabbing { set; get; } - - /// - /// Update the controller data from the provided platform state - /// - /// The InteractionSourceState retrieved from the platform - public void UpdateController(OVRHand hand, OVRSkeleton ovrSkeleton, Transform trackingOrigin) - { - if (!Enabled || hand == null || ovrSkeleton == null) - { - return; - } - - bool isTracked = UpdateHandData(hand, ovrSkeleton); - IsPositionAvailable = IsRotationAvailable = isTracked; - - if (isTracked) - { - // Leverage Oculus Platform Hand Ray - instead of simulating it in a crummy way - currentPointerPose.Position = trackingOrigin.TransformPoint(hand.PointerPose.position); - - Vector3 pointerForward = trackingOrigin.TransformDirection(hand.PointerPose.forward); - Vector3 pointerUp = trackingOrigin.TransformDirection(hand.PointerPose.up); - - currentPointerPose.Rotation = Quaternion.LookRotation(pointerForward, pointerUp); - - currentGripPose = jointPoses[TrackedHandJoint.Palm]; - - CoreServices.InputSystem?.RaiseSourcePoseChanged(InputSource, this, currentGripPose); - - UpdateVelocity(); - } - - UpdateTeleport(); - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.SpatialPointer: - Interactions[i].PoseData = currentPointerPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, currentPointerPose); - } - break; - case DeviceInputType.SpatialGrip: - Interactions[i].PoseData = currentGripPose; - if (Interactions[i].Changed) - { - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction, currentGripPose); - } - break; - case DeviceInputType.Select: - Interactions[i].BoolData = IsPinching || IsGrabbing; - - if (Interactions[i].Changed) - { - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - } - break; - case DeviceInputType.TriggerPress: - Interactions[i].BoolData = IsPinching || IsGrabbing; - - if (Interactions[i].Changed) - { - if (Interactions[i].BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[i].MixedRealityInputAction); - } - } - break; - case DeviceInputType.IndexFinger: - UpdateIndexFingerData(Interactions[i]); - break; - } - } - } - - // Used to track the input that was last raised - private Vector2 previousStickInput = Vector2.zero; - private bool previousReadyToTeleport = false; - - private void UpdateTeleport() - { - MixedRealityInputAction teleportAction = MixedRealityInputAction.None; - TeleportPointer teleportPointer = null; - - // Check if we're focus locked or near something interactive to avoid teleporting unintentionally. - bool anyPointersLockedWithHand = false; - for (int i = 0; i < InputSource?.Pointers?.Length; i++) - { - if (InputSource.Pointers[i] == null) continue; - if (InputSource.Pointers[i] is IMixedRealityNearPointer) - { - var nearPointer = (IMixedRealityNearPointer)InputSource.Pointers[i]; - anyPointersLockedWithHand |= nearPointer.IsNearObject; - } - anyPointersLockedWithHand |= InputSource.Pointers[i].IsFocusLocked; - - // If official teleport mode and we have a teleport pointer registered, we get the input action to trigger it. - if (InputSource.Pointers[i] is IMixedRealityTeleportPointer) - { - teleportPointer = (TeleportPointer)InputSource.Pointers[i]; - teleportAction = teleportPointer.TeleportInputAction; - } - } - - // We close middle finger to signal spider-man gesture, and as being ready for teleport - bool isReadyForTeleport = !anyPointersLockedWithHand && IsPositionAvailable && IsInTeleportPose; - - // Tracks the input vector that should be sent out based on the gesture that is made - Vector2 stickInput = (isReadyForTeleport && !isIndexGrabbing) ? Vector2.up : Vector2.zero; - - // The teleport event needs to be canceled if we have not completed the teleport motion and we were previously ready to teleport, but for some reason we - // are no longer doing the ready to teleport gesture - bool teleportCanceled = previousReadyToTeleport && !isReadyForTeleport && !isIndexGrabbing; - if (teleportCanceled && teleportPointer != null) - { - CoreServices.TeleportSystem?.RaiseTeleportCanceled(teleportPointer, null); - previousStickInput = stickInput; - previousReadyToTeleport = isReadyForTeleport; - return; - } - - bool teleportInputChanged = stickInput != previousStickInput; - if (teleportInputChanged) - { - RaiseTeleportInput(stickInput, teleportAction); - } - - previousStickInput = stickInput; - previousReadyToTeleport = isReadyForTeleport; - } - - private void RaiseTeleportInput(Vector2 teleportInput, MixedRealityInputAction teleportAction) - { - if (!teleportAction.Equals(MixedRealityInputAction.None)) - { - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, teleportAction, teleportInput); - } - } - - #region HandJoints - protected readonly Dictionary boneJointMapping = new Dictionary() - { - { BoneId.Hand_Thumb1, TrackedHandJoint.ThumbMetacarpalJoint }, - { BoneId.Hand_Thumb2, TrackedHandJoint.ThumbProximalJoint }, - { BoneId.Hand_Thumb3, TrackedHandJoint.ThumbDistalJoint }, - { BoneId.Hand_ThumbTip, TrackedHandJoint.ThumbTip }, - { BoneId.Hand_Index1, TrackedHandJoint.IndexKnuckle }, - { BoneId.Hand_Index2, TrackedHandJoint.IndexMiddleJoint }, - { BoneId.Hand_Index3, TrackedHandJoint.IndexDistalJoint }, - { BoneId.Hand_IndexTip, TrackedHandJoint.IndexTip }, - { BoneId.Hand_Middle1, TrackedHandJoint.MiddleKnuckle }, - { BoneId.Hand_Middle2, TrackedHandJoint.MiddleMiddleJoint }, - { BoneId.Hand_Middle3, TrackedHandJoint.MiddleDistalJoint }, - { BoneId.Hand_MiddleTip, TrackedHandJoint.MiddleTip }, - { BoneId.Hand_Ring1, TrackedHandJoint.RingKnuckle }, - { BoneId.Hand_Ring2, TrackedHandJoint.RingMiddleJoint }, - { BoneId.Hand_Ring3, TrackedHandJoint.RingDistalJoint }, - { BoneId.Hand_RingTip, TrackedHandJoint.RingTip }, - { BoneId.Hand_Pinky1, TrackedHandJoint.PinkyKnuckle }, - { BoneId.Hand_Pinky2, TrackedHandJoint.PinkyMiddleJoint }, - { BoneId.Hand_Pinky3, TrackedHandJoint.PinkyDistalJoint }, - { BoneId.Hand_PinkyTip, TrackedHandJoint.PinkyTip }, - { BoneId.Hand_WristRoot, TrackedHandJoint.Wrist }, - }; - - private float _lastHighConfidenceTime = 0f; - protected bool UpdateHandData(OVRHand ovrHand, OVRSkeleton ovrSkeleton) - { - bool isTracked = ovrHand.IsTracked; - if (ovrHand.HandConfidence == OVRHand.TrackingConfidence.High) - { - _lastHighConfidenceTime = Time.unscaledTime; - } - if (ovrHand.HandConfidence == OVRHand.TrackingConfidence.Low) - { - if (settingsProfile.MinimumHandConfidence == OVRHand.TrackingConfidence.High) - { - isTracked = false; - } - else - { - float lowConfidenceTime = Time.time - _lastHighConfidenceTime; - if (settingsProfile.LowConfidenceTimeThreshold > 0 && - settingsProfile.LowConfidenceTimeThreshold < lowConfidenceTime) - { - isTracked = false; - } - } - } - - if (ControllerHandedness == Handedness.Left) - { - settingsProfile.CurrentLeftHandTrackingConfidence = ovrHand.HandConfidence; - } - else - { - settingsProfile.CurrentRightHandTrackingConfidence = ovrHand.HandConfidence; - } - - // Disable hand if not tracked - if (handRenderer != null) - { - handRenderer.enabled = isTracked; - } - - if (ovrSkeleton != null) - { - var bones = ovrSkeleton.Bones; - foreach (var bone in bones) - { - UpdateBone(bone); - } - - UpdatePalm(); - } - - CoreServices.InputSystem?.RaiseHandJointsUpdated(InputSource, ControllerHandedness, jointPoses); - - // Note: After some testing, it seems when moving your hand fast, Oculus's pinch estimation data gets frozen, which leads to stuck pinches. - // To counter this, we perform a distance check between thumb and index to determine if we should force the pinch to a false state. - float pinchStrength; - if (AreIndexAndThumbFarApart()) - { - pinchStrength = 0f; - IsPinching = false; - } - else - { - pinchStrength = ovrHand.GetFingerPinchStrength(OVRHand.HandFinger.Index); - if (IsPinching) - { - // If we are already pinching, we make the pinch a bit sticky - IsPinching = ovrHand.GetFingerPinchStrength(OVRHand.HandFinger.Index) > 0.85f; - } - else - { - // If not yet pinching, only consider pinching if finger confidence is high - IsPinching = ovrHand.GetFingerIsPinching(OVRHand.HandFinger.Index) - && ovrHand.GetFingerConfidence(OVRHand.HandFinger.Index) == OVRHand.TrackingConfidence.High; - } - } - - isIndexGrabbing = HandPoseUtils.IsIndexGrabbing(ControllerHandedness); - isMiddleGrabbing = HandPoseUtils.IsMiddleGrabbing(ControllerHandedness); - isThumbGrabbing = HandPoseUtils.IsThumbGrabbing(ControllerHandedness); - - // Hand Curl Properties: - float indexFingerCurl = HandPoseUtils.IndexFingerCurl(ControllerHandedness); - float middleFingerCurl = HandPoseUtils.MiddleFingerCurl(ControllerHandedness); - float ringFingerCurl = HandPoseUtils.RingFingerCurl(ControllerHandedness); - float pinkyFingerCurl = HandPoseUtils.PinkyFingerCurl(ControllerHandedness); - - // Pinch was also used as grab, we want to allow hand-curl grab not just pinch. - // Determine pinch and grab separately - if (isTracked) - { - IsGrabbing = isIndexGrabbing && isMiddleGrabbing; - } - - if (settingsProfile.UpdateMaterialPinchStrengthValue && handMaterial != null) - { - float gripStrength = indexFingerCurl + middleFingerCurl + ringFingerCurl + pinkyFingerCurl; - gripStrength /= 4.0f; - gripStrength = gripStrength > 0.8f ? 1.0f : gripStrength; - - pinchStrength = Mathf.Max(pinchStrength, gripStrength); - handMaterial.SetFloat(pinchStrengthProp, pinchStrength); - } - return isTracked; - } - - // 4 cm is the treshold for fingers being far apart. - // 0.0016 is the square magnitude equivalent - // Square magnitude is less expensive to perform than a distance check - private const float IndexThumbSqrMagnitudeThreshold = 0.0016f; - private bool AreIndexAndThumbFarApart() - { - MixedRealityPose indexPose = MixedRealityPose.ZeroIdentity; - TryGetJoint(TrackedHandJoint.IndexTip, out indexPose); - - MixedRealityPose thumbPose = MixedRealityPose.ZeroIdentity; - TryGetJoint(TrackedHandJoint.ThumbTip, out thumbPose); - - Vector3 distanceVector = indexPose.Position - thumbPose.Position; - return distanceVector.sqrMagnitude > IndexThumbSqrMagnitudeThreshold; - } - - protected void UpdateBone(OVRBone bone) - { - var boneId = bone.Id; - var boneTransform = bone.Transform; - - if (boneJointMapping.TryGetValue(boneId, out var joint)) - { - Quaternion boneRotation = bone.Transform.rotation; - - // WARNING THIS CODE IS SUBJECT TO CHANGE WITH THE OCULUS SDK - This fix is a hack to fix broken and inconsistent rotations for hands - if (ControllerHandedness == Handedness.Left) - { - // Rotate palm 180 on X to flip up - boneRotation *= Quaternion.Euler(180f, 0f, 0f); - - // Rotate palm 90 degrees on y to align x with right - boneRotation *= Quaternion.Euler(0f, -90, 0f); - } - else - { - // Right Up direction is correct - - // Rotate palm 90 degrees on y to align x with right - boneRotation *= Quaternion.Euler(0f, 90f, 0f); - } - - UpdateJointPose(joint, boneTransform.position, boneRotation); - } - } - - protected void UpdatePalm() - { - bool hasMiddleKnuckle = TryGetJoint(TrackedHandJoint.MiddleKnuckle, out var middleKnucklePose); - bool hasWrist = TryGetJoint(TrackedHandJoint.Wrist, out var wristPose); - - if (hasMiddleKnuckle && hasWrist) - { - Vector3 wristRootPosition = wristPose.Position; - Vector3 middle3Position = middleKnucklePose.Position; - - Vector3 palmPosition = Vector3.Lerp(wristRootPosition, middle3Position, 0.5f); - Quaternion palmRotation = wristPose.Rotation; - - UpdateJointPose(TrackedHandJoint.Palm, palmPosition, palmRotation); - } - } - - protected void UpdateJointPose(TrackedHandJoint joint, Vector3 position, Quaternion rotation) - { - Vector3 jointPosition = position; - - // TODO Figure out kalman filter coefficients to get good quality smoothing -#if LATER - if (joint == TrackedHandJoint.IndexTip) - { - jointPosition = indexTipFilter.Update(position); - } - else if (joint == TrackedHandJoint.Palm) - { - jointPosition = palmFilter.Update(position); - } -#endif - - MixedRealityPose pose = new MixedRealityPose(jointPosition, rotation); - if (!jointPoses.ContainsKey(joint)) - { - jointPoses.Add(joint, pose); - } - else - { - jointPoses[joint] = pose; - } - } - - private void UpdateIndexFingerData(MixedRealityInteractionMapping interactionMapping) - { - if (jointPoses.TryGetValue(TrackedHandJoint.IndexTip, out var pose)) - { - currentIndexPose.Rotation = pose.Rotation; - currentIndexPose.Position = pose.Position; - } - - interactionMapping.PoseData = currentIndexPose; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system Event if it enabled - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, currentIndexPose); - } - } - #endregion -#endif - } - } diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs.meta deleted file mode 100644 index 2f29115c4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Scripts/Input/Controllers/OculusHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 200e88c4140a85d4ca0db1027fc01b30 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef deleted file mode 100644 index ce3e05c6e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Services.InputSystem", - "Microsoft.MixedReality.Toolkit.SDK", - "Microsoft.MixedReality.Toolkit.Providers.XRSDK", - "Unity.XR.Oculus", - "Oculus.VR" - ], - "includePlatforms": [ - "Android", - "Editor", - "WindowsStandalone32", - "WindowsStandalone64" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [ - "UNITY_2019_3_OR_NEWER" - ], - "versionDefines": [ - { - "name": "com.unity.xr.oculus", - "expression": "", - "define": "OCULUS_ENABLED" - } - ], - "noEngineReferences": false -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef.meta deleted file mode 100644 index 52ec95ccd..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/MRTK.Oculus.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 674cca1f741b27d48b6916b453e60d3e -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs deleted file mode 100644 index 7530e8d94..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs +++ /dev/null @@ -1,348 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.XRSDK.Input; -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.Oculus.Input -{ - /// - /// Manages XR SDK devices on the Oculus platform. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsStandalone | SupportedPlatforms.Android, - "XRSDK Oculus Device Manager")] - public class OculusXRSDKDeviceManager : XRSDKDeviceManager - { - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public OculusXRSDKDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - -#if !OCULUSINTEGRATION_PRESENT && UNITY_EDITOR && UNITY_ANDROID - public override void Initialize() - { - base.Initialize(); - Debug.Log(@"Detected a potential deployment issue for the Oculus Quest. In order to use handtracking with the Oculus Quest, download the Oculus Integration Package from the Unity Asset Store and run the Integration tool before deploying. -The tool can be found under Mixed Reality Toolkit > Utilities > Oculus > Integrate Oculus Integration Unity Modules"); - } -#endif - - private Dictionary trackedHands = new Dictionary(); - -#if OCULUSINTEGRATION_PRESENT - private OVRCameraRig cameraRig; - - private OVRHand rightHand; - private OVRMeshRenderer righMeshRenderer; - private OVRSkeleton rightSkeleton; - - private OVRHand leftHand; - private OVRMeshRenderer leftMeshRenderer; - private OVRSkeleton leftSkeleton; - - - /// - /// The profile that contains settings for the Oculus XRSDK Device Manager input data provider. This profile is nested under - /// Input > Input Data Providers > Oculus XRSDK Device Manager in the MixedRealityToolkit object in the hierarchy. - /// - private OculusXRSDKDeviceManagerProfile SettingsProfile => ConfigurationProfile as OculusXRSDKDeviceManagerProfile; -#endif - - #region IMixedRealityCapabilityCheck Implementation - - /// - public override bool CheckCapability(MixedRealityCapability capability) - { -#if OCULUSINTEGRATION_PRESENT - if (capability == MixedRealityCapability.ArticulatedHand) - { - return true; - } -#endif - return capability == MixedRealityCapability.MotionController; - } - - #endregion IMixedRealityCapabilityCheck Implementation - - #region Controller Utilities - /// - protected override Type GetControllerType(SupportedControllerType supportedControllerType) - { - switch (supportedControllerType) - { - case SupportedControllerType.ArticulatedHand: - return typeof(OculusHand); - case SupportedControllerType.OculusTouch: - return typeof(OculusXRSDKTouchController); - default: - return base.GetControllerType(supportedControllerType); - } - } - - /// - protected override InputSourceType GetInputSourceType(SupportedControllerType supportedControllerType) - { - switch (supportedControllerType) - { - case SupportedControllerType.OculusTouch: - return InputSourceType.Controller; - case SupportedControllerType.ArticulatedHand: - return InputSourceType.Hand; - default: - return base.GetInputSourceType(supportedControllerType); - } - } - - /// - protected override SupportedControllerType GetCurrentControllerType(InputDevice inputDevice) - { - if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.HandTracking)) - { - if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Left) || - inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Right)) - { - // If it's a hand with a reported handedness, assume articulated hand - return SupportedControllerType.ArticulatedHand; - } - } - - if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Controller)) - { - return SupportedControllerType.OculusTouch; - } - - return base.GetCurrentControllerType(inputDevice); - } - - #endregion Controller Utilities - - -#if OCULUSINTEGRATION_PRESENT - /// - public override void Enable() - { - base.Enable(); - SetupInput(); - ConfigurePerformancePreferences(); - SettingsProfile.OnCustomHandMaterialUpdate += UpdateHandMaterial; - } - - - /// - public override void Update() - { - base.Update(); - if (OVRPlugin.GetHandTrackingEnabled()) - { - UpdateHands(); - } - else - { - RemoveAllHandDevices(); - } - } - - - private void SetupInput() - { - cameraRig = GameObject.FindObjectOfType(); - if (cameraRig == null) - { - var mainCamera = CameraCache.Main; - - // Instantiate camera rig as a child of the MixedRealityPlayspace - - var cameraRigObject = GameObject.Instantiate(SettingsProfile.OVRCameraRigPrefab); - cameraRig = cameraRigObject.GetComponent(); - - // Ensure all related game objects are configured - cameraRig.EnsureGameObjectIntegrity(); - - if (mainCamera != null) - { - // We already had a main camera MRTK probably started using, let's replace the CenterEyeAnchor MainCamera with it - GameObject prefabMainCamera = cameraRig.trackingSpace.Find("CenterEyeAnchor").gameObject; - prefabMainCamera.SetActive(false); - mainCamera.transform.SetParent(cameraRig.trackingSpace.transform); - mainCamera.name = prefabMainCamera.name; - GameObject.Destroy(prefabMainCamera); - } - cameraRig.transform.SetParent(MixedRealityPlayspace.Transform); - } - else - { - // Ensure all related game objects are configured - cameraRig.EnsureGameObjectIntegrity(); - } - - bool useAvatarHands = SettingsProfile.RenderAvatarHandsInsteadOfController; - // If using Avatar hands, de-activate ovr controller rendering - foreach (var controllerHelper in cameraRig.gameObject.GetComponentsInChildren()) - { - controllerHelper.gameObject.SetActive(!useAvatarHands); - } - - if (useAvatarHands) - { - // Initialize the local avatar controller - GameObject.Instantiate(SettingsProfile.LocalAvatarPrefab, cameraRig.trackingSpace); - } - - var ovrHands = cameraRig.GetComponentsInChildren(); - - foreach (var ovrHand in ovrHands) - { - // Manage Hand skeleton data - var skeletonDataProvider = ovrHand as OVRSkeleton.IOVRSkeletonDataProvider; - var skeletonType = skeletonDataProvider.GetSkeletonType(); - var meshRenderer = ovrHand.GetComponent(); - - var ovrSkeleton = ovrHand.GetComponent(); - if (ovrSkeleton == null) - { - continue; - } - - switch (skeletonType) - { - case OVRSkeleton.SkeletonType.HandLeft: - leftHand = ovrHand; - leftSkeleton = ovrSkeleton; - leftMeshRenderer = meshRenderer; - break; - case OVRSkeleton.SkeletonType.HandRight: - rightHand = ovrHand; - rightSkeleton = ovrSkeleton; - righMeshRenderer = meshRenderer; - break; - } - } - } - - private void ConfigurePerformancePreferences() - { - SettingsProfile.ApplyConfiguredPerformanceSettings(); - } - - public override void Disable() - { - base.Disable(); - - SettingsProfile.OnCustomHandMaterialUpdate -= UpdateHandMaterial; - } - - #region Hand Utilities - protected void UpdateHands() - { - UpdateHand(rightHand, rightSkeleton, righMeshRenderer, Handedness.Right); - UpdateHand(leftHand, leftSkeleton, righMeshRenderer, Handedness.Left); - } - - protected void UpdateHand(OVRHand ovrHand, OVRSkeleton ovrSkeleton, OVRMeshRenderer ovrMeshRenderer, Handedness handedness) - { - // Until the ovrMeshRenderer is initialized we do nothing with the hand - // This is a bit of a hack because the Oculus Integration fails if we touch the renderer before it has initialized itself - if (ovrMeshRenderer == null || !ovrMeshRenderer.IsInitialized) return; - - if (ovrHand.IsTracked) - { - var hand = GetOrAddHand(handedness, ovrHand); - hand.UpdateController(ovrHand, ovrSkeleton, cameraRig.trackingSpace); - } - else - { - RemoveHandDevice(handedness); - } - } - - private void UpdateHandMaterial() - { - foreach (var hand in trackedHands.Values) - { - hand.UpdateHandMaterial(SettingsProfile.CustomHandMaterial); - } - } - - private OculusHand GetOrAddHand(Handedness handedness, OVRHand ovrHand) - { - if (trackedHands.ContainsKey(handedness)) - { - return trackedHands[handedness]; - } - - // Add new hand - var pointers = RequestPointers(SupportedControllerType.ArticulatedHand, handedness); - var inputSourceType = InputSourceType.Hand; - - IMixedRealityInputSystem inputSystem = Service as IMixedRealityInputSystem; - var inputSource = inputSystem?.RequestNewGenericInputSource($"Oculus Quest {handedness} Hand", pointers, inputSourceType); - - - OculusHand handDevice = new OculusHand(TrackingState.Tracked, handedness, inputSource); - handDevice.InitializeHand(ovrHand, SettingsProfile); - - for (int i = 0; i < handDevice.InputSource?.Pointers?.Length; i++) - { - handDevice.InputSource.Pointers[i].Controller = handDevice; - handDevice.UpdateHandMaterial(SettingsProfile.CustomHandMaterial); - } - - inputSystem?.RaiseSourceDetected(handDevice.InputSource, handDevice); - - trackedHands.Add(handedness, handDevice); - - return handDevice; - } - - private void RemoveHandDevice(Handedness handedness) - { - if (trackedHands.TryGetValue(handedness, out OculusHand hand)) - { - RemoveHandDevice(hand); - } - } - - private void RemoveAllHandDevices() - { - if (trackedHands.Count == 0) return; - - // Create a new list to avoid causing an error removing items from a list currently being iterated on. - foreach (var hand in new List(trackedHands.Values)) - { - RemoveHandDevice(hand); - } - trackedHands.Clear(); - } - - private void RemoveHandDevice(OculusHand handDevice) - { - if (handDevice == null) return; - - handDevice.CleanupHand(); - - CoreServices.InputSystem?.RaiseSourceLost(handDevice.InputSource, handDevice); - trackedHands.Remove(handDevice.ControllerHandedness); - - RecyclePointers(handDevice.InputSource); - } - #endregion - -#endif - } -} - diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs.meta deleted file mode 100644 index 0f1ce7e9e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bc99db098570767408613ed25e984776 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs deleted file mode 100644 index 287621232..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs +++ /dev/null @@ -1,247 +0,0 @@ -//------------------------------------------------------------------------------ - -//MRTK - Quest -//https ://github.com/provencher/MRTK-Quest -//------------------------------------------------------------------------------ - -// -//MIT License -// -//Copyright(c) 2020 Eric Provencher -// -//Permission is hereby granted, free of charge, to any person obtaining a copy -//of this software and associated documentation files(the "Software"), to deal -//in the Software without restriction, including without limitation the rights -//to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -//copies of the Software, and to permit persons to whom the Software is -//furnished to do so, subject to the following conditions : -// -//The above copyright notice and this permission notice shall be included in all -//copies or substantial portions of the Software. -// -//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -//SOFTWARE. -//------------------------------------------------------------------------------ - - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.Oculus.Input -{ - /// - /// The profile for the Oculus XRSDK Device Manager. The settings for this profile can be viewed if the Leap Motion Device Manager input data provider is - /// added to the MRTK input configuration profile. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Profiles/Mixed Reality Oculus XRSDK Profile", fileName = "OculusXRSDKDeviceManagerProfile", order = 4)] - [MixedRealityServiceProfile(typeof(OculusXRSDKDeviceManager))] - public class OculusXRSDKDeviceManagerProfile : BaseMixedRealityProfile - { - [Space(10)] - [Header("Prefab references")] - [SerializeField] - [Tooltip("Prefab reference for OVRCameraRig to load, if none are found in scene." + - "This prefab is required for MRTK on Oculus Quest to support handtracking.")] - private GameObject ovrCameraRigPrefab = null; - - /// - /// Prefab reference for OVRCameraRig to load, if none are found in scene. - /// This prefab is required for MRTK on Oculus Quest to support handtracking - /// - public GameObject OVRCameraRigPrefab - { - get { return ovrCameraRigPrefab; } - set { ovrCameraRigPrefab = value; } - } - - - [SerializeField] - [Tooltip("Using avatar hands requires a local avatar prefab. Failure to provide one will result in nothing being displayed. \n\n" + - "Note: In order to render avatar hands, you will need to set an app id in Assets/Resources/OvrAvatarSettings. Any number will do, but it needs to be set.")] - private bool renderAvatarHandsInsteadOfControllers = true; - - /// - /// Using avatar hands requires a local avatar prefab. Failure to provide one will result in nothing being displayed. - /// "Note: In order to render avatar hands, you will need to set an app id in Assets/Resources/OvrAvatarSettings. Any number will do, but it needs to be set.")] - /// - public bool RenderAvatarHandsInsteadOfController => renderAvatarHandsInsteadOfControllers; - - [SerializeField] - [Tooltip("Prefab reference for LocalAvatar to load, if none are found in scene.")] - private GameObject localAvatarPrefab = null; - - /// - /// Prefab reference for LocalAvatar to load, if none are found in scene. - /// - public GameObject LocalAvatarPrefab - { - get { return localAvatarPrefab; } - set { localAvatarPrefab = value; } - } - - [Header("Hand Mesh Visualization")] - [SerializeField] - [Tooltip("If true, hand mesh material will be replaced with custom material.")] - private bool useCustomHandMaterial = true; - - /// - /// If true, hand mesh material will be replaced with custom material. - /// - public bool UseCustomHandMaterial => useCustomHandMaterial; - - [SerializeField] - [Tooltip("Custom hand material to use for hand tracking hand mesh. Use Custom Hand Material must be set to true for this material to be applied")] - private Material customHandMaterial = null; - - /// - /// Event triggered when the custom material for hand mesh is updated. - /// - public System.Action OnCustomHandMaterialUpdate; - - /// - /// Custom hand material to use for hand tracking hand mesh. - /// - public Material CustomHandMaterial - { - get => customHandMaterial; - - set - { - customHandMaterial = value; - OnCustomHandMaterialUpdate?.Invoke(); - } - } - - [SerializeField] - [Tooltip("If true, will update material pinch strength using OVR Values.")] - private bool updateMaterialPinchStrengthValue = true; - - /// - /// If true, will update material pinch strength using OVR Values. - /// - public bool UpdateMaterialPinchStrengthValue => UseCustomHandMaterial && updateMaterialPinchStrengthValue; - - [SerializeField] - [Tooltip("Property in custom material used to visualize pinch strength.")] - private string pinchStrengthMaterialProperty = "_PressIntensity"; - - /// - /// Property in custom material used to visualize pinch strength. - /// - public string PinchStrengthMaterialProperty => pinchStrengthMaterialProperty; - -#if OCULUSINTEGRATION_PRESENT - [Header("Hand Tracking Configuration")] - [SerializeField] - [Tooltip("Setting this to low means hands will continue to track with low confidence.")] - private OVRHand.TrackingConfidence minimumHandConfidence = OVRHand.TrackingConfidence.Low; - - /// - /// Setting this to low means hands will continue to track with low confidence. - /// - public OVRHand.TrackingConfidence MinimumHandConfidence - { - get => minimumHandConfidence; - set => minimumHandConfidence = value; - } - - /// - /// Current tracking confidence of left hand. Value managed by OculusQuestHand.cs. - /// - public OVRHand.TrackingConfidence CurrentLeftHandTrackingConfidence { get; set; } - - /// - /// Current tracking confidence of right hand. Value managed by OculusQuestHand.cs. - /// - public OVRHand.TrackingConfidence CurrentRightHandTrackingConfidence { get; set; } -#endif - - [SerializeField] - [Range(0f, 5f)] - [Tooltip("Time after which low confidence is considered unreliable, and tracking is set to false. Setting this to 0 means low-confidence is always acceptable.")] - private float lowConfidenceTimeThreshold = 0.2f; - - /// - /// Time in seconds after which low confidence is considered unreliable, and tracking is set to false. - /// - public float LowConfidenceTimeThreshold - { - get => lowConfidenceTimeThreshold; - set => lowConfidenceTimeThreshold = value; - } - - [Header("Performance Configuration")] - [SerializeField] - [Tooltip("Default CPU performance level (0-2 is documented), (3-5 is undocumented).")] - [Range(0, 5)] - private int defaultCpuLevel = 2; - - /// - /// Accessor for the Oculus CPU performance level. - /// https://developer.oculus.com/documentation/native/android/mobile-power-overview - /// - public int CPULevel - { - get => defaultCpuLevel; - set - { - defaultCpuLevel = value; - ApplyConfiguredPerformanceSettings(); - } - } - - [SerializeField] - [Tooltip("Default GPU performance level (0-2 is documented), (3-5 is undocumented).")] - [Range(0, 5)] - private int defaultGpuLevel = 2; - - /// - /// Accessor for the Oculus GPU performance level. - /// - public int GPULevel - { - get => defaultGpuLevel; - set - { - defaultGpuLevel = value; - ApplyConfiguredPerformanceSettings(); - } - } - -#if OCULUSINTEGRATION_PRESENT - [Header("Super sampling")] - [Range(0.7f, 2.0f)] - [SerializeField] - float resolutionScale = 1.25f; - - [Header("Fixed Foveated Rendering")] - [SerializeField] - bool useDynamicFixedFoveatedRendering = true; - - [SerializeField] - OVRManager.FixedFoveatedRenderingLevel fixedFoveatedRenderingLevel = OVRManager.FixedFoveatedRenderingLevel.High; -#endif - - public void ApplyConfiguredPerformanceSettings() - { -#if OCULUSINTEGRATION_PRESENT - XRSettings.eyeTextureResolutionScale = resolutionScale; - OVRManager.cpuLevel = CPULevel; - OVRManager.gpuLevel = GPULevel; - - if (OVRManager.fixedFoveatedRenderingSupported) - { - OVRManager.fixedFoveatedRenderingLevel = fixedFoveatedRenderingLevel; - OVRManager.useDynamicFixedFoveatedRendering = useDynamicFixedFoveatedRendering; - } -#endif - } - } - -} - diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs.meta deleted file mode 100644 index d849ae3b4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/OculusXRSDKDeviceManagerProfile.cs.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: 4f726b4cb3605994fac74d508110ec62 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: - - ovrCameraRigPrefab: {instanceID: 0} - - localAvatarPrefab: {instanceID: 0} - - customHandMaterial: {instanceID: 0} - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Profiles.meta b/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Profiles.meta deleted file mode 100644 index 5e6328b8b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Oculus/XRSDK/Profiles.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 375629cdd475f8f4aaacf433d6720e05 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR.meta deleted file mode 100644 index 4e556a78f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b97eaf8ed6354ec9acd50454183b4911 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs.meta deleted file mode 100644 index df4e45b2e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f1e19b59ad2f9ec4ab82716abdf81ff2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs deleted file mode 100644 index 170ebf039..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Input.UnityInput; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - [MixedRealityController( - SupportedControllerType.GenericOpenVR, - new[] { Handedness.Left, Handedness.Right }, - flags: MixedRealityControllerConfigurationFlags.UseCustomInteractionMappings)] - public class GenericOpenVRController : GenericJoystickController - { - public GenericOpenVRController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - nodeType = controllerHandedness == Handedness.Left ? XRNode.LeftHand : XRNode.RightHand; - } - - private readonly XRNode nodeType; - - /// - /// The current source state reading for this OpenVR Controller. - /// - public XRNodeState LastXrNodeStateReading { get; protected set; } - - /// - /// Tracking states returned from the InputTracking state tracking manager. - /// - private readonly List nodeStates = new List(); - - /// - /// A private static list of previously loaded controller models. - /// - private static readonly Dictionary controllerDictionary = new Dictionary(0); - - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => new[] - { - // Controller Pose - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - // HTC Vive Controller - Left Controller Trigger (7) Squeeze - // Oculus Touch Controller - Axis1D.PrimaryIndexTrigger Squeeze - // Valve Knuckles Controller - Left Controller Trigger Squeeze - // Windows Mixed Reality Controller - Left Trigger Squeeze - new MixedRealityInteractionMapping(1, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_9), - // HTC Vive Controller - Left Controller Trigger (7) - // Oculus Touch Controller - Axis1D.PrimaryIndexTrigger - // Valve Knuckles Controller - Left Controller Trigger - // Windows Mixed Reality Controller - Left Trigger Press (Select) - new MixedRealityInteractionMapping(2, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton14), - // HTC Vive Controller - Left Controller Trigger (7) - // Oculus Touch Controller - Axis1D.PrimaryIndexTrigger - // Valve Knuckles Controller - Left Controller Trigger - new MixedRealityInteractionMapping(3, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_9), - // HTC Vive Controller - Left Controller Grip Button (8) - // Oculus Touch Controller - Axis1D.PrimaryHandTrigger - // Valve Knuckles Controller - Left Controller Grip Average - // Windows Mixed Reality Controller - Left Grip Button Press - new MixedRealityInteractionMapping(4, "Grip Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_11), - // HTC Vive Controller - Left Controller Trackpad (2) - // Oculus Touch Controller - Axis2D.PrimaryThumbstick - // Valve Knuckles Controller - Left Controller Trackpad - // Windows Mixed Reality Controller - Left Thumbstick Position - new MixedRealityInteractionMapping(5, "Trackpad-Thumbstick Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_1, ControllerMappingLibrary.AXIS_2, false, true), - // HTC Vive Controller - Left Controller Trackpad (2) - // Oculus Touch Controller - Button.PrimaryThumbstick - // Valve Knuckles Controller - Left Controller Trackpad - // Windows Mixed Reality Controller - Left Touchpad Touch - new MixedRealityInteractionMapping(6, "Trackpad-Thumbstick Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton16), - // HTC Vive Controller - Left Controller Trackpad (2) - // Oculus Touch Controller - Button.PrimaryThumbstick - // Valve Knuckles Controller - Left Controller Trackpad - // Windows Mixed Reality Controller - Left Thumbstick Press - new MixedRealityInteractionMapping(7, "Trackpad-Thumbstick Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton8), - // HTC Vive Controller - Left Controller Menu Button (1) - // Oculus Touch Controller - Button.Three Press - // Valve Knuckles Controller - Left Controller Inner Face Button - // Windows Mixed Reality Controller - Left Menu Button - new MixedRealityInteractionMapping(8, "Unity Button Id 2", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton2), - // Oculus Touch Controller - Button.Four Press - // Valve Knuckles Controller - Left Controller Outer Face Button - new MixedRealityInteractionMapping(9, "Unity Button Id 3", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton3), - new MixedRealityInteractionMapping(10, "WMR Touchpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton18), - new MixedRealityInteractionMapping(11, "WMR Touchpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_17, ControllerMappingLibrary.AXIS_18), - new MixedRealityInteractionMapping(12, "Spatial Grip", AxisType.SixDof, DeviceInputType.SpatialGrip), - }; - - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => new[] - { - // Controller Pose - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - // HTC Vive Controller - Right Controller Trigger (7) Squeeze - // Oculus Touch Controller - Axis1D.SecondaryIndexTrigger Squeeze - // Valve Knuckles Controller - Right Controller Trigger Squeeze - // Windows Mixed Reality Controller - Right Trigger Squeeze - new MixedRealityInteractionMapping(1, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_10), - // HTC Vive Controller - Right Controller Trigger (7) - // Oculus Touch Controller - Axis1D.SecondaryIndexTrigger - // Valve Knuckles Controller - Right Controller Trigger - // Windows Mixed Reality Controller - Right Trigger Press (Select) - new MixedRealityInteractionMapping(2, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton15), - // HTC Vive Controller - Right Controller Trigger (7) - // Oculus Touch Controller - Axis1D.SecondaryIndexTrigger - // Valve Knuckles Controller - Right Controller Trigger - new MixedRealityInteractionMapping(3, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_10), - // HTC Vive Controller - Right Controller Grip Button (8) - // Oculus Touch Controller - Axis1D.SecondaryHandTrigger - // Valve Knuckles Controller - Right Controller Grip Average - // Windows Mixed Reality Controller - Right Grip Button Press - new MixedRealityInteractionMapping(4, "Grip Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_12), - // HTC Vive Controller - Right Controller Trackpad (2) - // Oculus Touch Controller - Axis2D.PrimaryThumbstick - // Valve Knuckles Controller - Right Controller Trackpad - // Windows Mixed Reality Controller - Right Thumbstick Position - new MixedRealityInteractionMapping(5, "Trackpad-Thumbstick Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_4, ControllerMappingLibrary.AXIS_5, false, true), - // HTC Vive Controller - Right Controller Trackpad (2) - // Oculus Touch Controller - Button.SecondaryThumbstick - // Valve Knuckles Controller - Right Controller Trackpad - // Windows Mixed Reality Controller - Right Touchpad Touch - new MixedRealityInteractionMapping(6, "Trackpad-Thumbstick Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton17), - // HTC Vive Controller - Right Controller Trackpad (2) - // Oculus Touch Controller - Button.SecondaryThumbstick - // Valve Knuckles Controller - Right Controller Trackpad - // Windows Mixed Reality Controller - Right Thumbstick Press - new MixedRealityInteractionMapping(7, "Trackpad-Thumbstick Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton9), - // HTC Vive Controller - Right Controller Menu Button (1) - // Oculus Remote - Button.One Press - // Oculus Touch Controller - Button.One Press - // Valve Knuckles Controller - Right Controller Inner Face Button - // Windows Mixed Reality Controller - Right Menu Button - new MixedRealityInteractionMapping(8, "Unity Button Id 0", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton0), - // Oculus Remote - Button.Two Press - // Oculus Touch Controller - Button.Two Press - // Valve Knuckles Controller - Right Controller Outer Face Button - new MixedRealityInteractionMapping(9, "Unity Button Id 1", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton1), - new MixedRealityInteractionMapping(10, "WMR Touchpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton19), - new MixedRealityInteractionMapping(11, "WMR Touchpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_19, ControllerMappingLibrary.AXIS_20), - new MixedRealityInteractionMapping(12, "Spatial Grip", AxisType.SixDof, DeviceInputType.SpatialGrip), - }; - - private static readonly ProfilerMarker UpdateControllerPerfMarker = new ProfilerMarker("[MRTK] GenericOpenVRController.UpdateController"); - - /// - public override void UpdateController() - { - using (UpdateControllerPerfMarker.Auto()) - { - if (!Enabled) { return; } - - InputTracking.GetNodeStates(nodeStates); - - for (int i = 0; i < nodeStates.Count; i++) - { - if (nodeStates[i].nodeType == nodeType) - { - var xrNodeState = nodeStates[i]; - UpdateControllerData(xrNodeState); - LastXrNodeStateReading = xrNodeState; - break; - } - } - - base.UpdateController(); - } - } - - private static readonly ProfilerMarker UpdateControllerDataPerfMarker = new ProfilerMarker("[MRTK] GenericOpenVRController.UpdateControllerData"); - - /// - /// Update the "Controller" input from the device - /// - protected void UpdateControllerData(XRNodeState state) - { - using (UpdateControllerDataPerfMarker.Auto()) - { - var lastState = TrackingState; - - LastControllerPose = CurrentControllerPose; - - if (nodeType == XRNode.LeftHand || nodeType == XRNode.RightHand) - { - // The source is either a hand or a controller that supports pointing. - // We can now check for position and rotation. - IsPositionAvailable = state.TryGetPosition(out CurrentControllerPosition); - IsPositionApproximate = false; - - IsRotationAvailable = state.TryGetRotation(out CurrentControllerRotation); - - // Devices are considered tracked if we receive position OR rotation data from the sensors. - TrackingState = (IsPositionAvailable || IsRotationAvailable) ? TrackingState.Tracked : TrackingState.NotTracked; - - CurrentControllerPosition = MixedRealityPlayspace.TransformPoint(CurrentControllerPosition); - CurrentControllerRotation = MixedRealityPlayspace.Rotation * CurrentControllerRotation; - } - else - { - // The input source does not support tracking. - TrackingState = TrackingState.NotApplicable; - } - - CurrentControllerPose.Position = CurrentControllerPosition; - CurrentControllerPose.Rotation = CurrentControllerRotation; - - // Raise input system events if it is enabled. - if (lastState != TrackingState) - { - CoreServices.InputSystem?.RaiseSourceTrackingStateChanged(InputSource, this, TrackingState); - } - - if (TrackingState == TrackingState.Tracked && LastControllerPose != CurrentControllerPose) - { - if (IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePoseChanged(InputSource, this, CurrentControllerPose); - } - else if (IsPositionAvailable && !IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePositionChanged(InputSource, this, CurrentControllerPosition); - } - else if (!IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourceRotationChanged(InputSource, this, CurrentControllerRotation); - } - } - } - } - - #region Controller model functions - - /// - protected override bool TryRenderControllerModel(Type controllerType, InputSourceType inputSourceType) - { - MixedRealityControllerVisualizationProfile visualizationProfile = GetControllerVisualizationProfile(); - - // Intercept this call if we are using the default driver provided models. - if (visualizationProfile == null || - !visualizationProfile.GetUseDefaultModelsOverride(GetType(), ControllerHandedness)) - { - return base.TryRenderControllerModel(controllerType, inputSourceType); - } - else if (controllerDictionary.TryGetValue(ControllerHandedness, out GameObject controllerModel)) - { - TryAddControllerModelToSceneHierarchy(controllerModel); - controllerModel.SetActive(true); - return true; - } - - Debug.Log("Trying to load controller model from platform SDK"); - - GameObject controllerModelGameObject = new GameObject($"{ControllerHandedness} OpenVR Controller"); - - bool failedToObtainControllerModel; - - var visualizationType = visualizationProfile.GetControllerVisualizationTypeOverride(GetType(), ControllerHandedness); - if (visualizationType != null) - { - // Set the platform controller model to not be destroyed when the source is lost. It'll be disabled instead, - // and re-enabled when the same controller is re-detected. - if (controllerModelGameObject.AddComponent(visualizationType.Type) is IMixedRealityControllerPoseSynchronizer visualizer) - { - visualizer.DestroyOnSourceLost = false; - } - - OpenVRRenderModel openVRRenderModel = controllerModelGameObject.AddComponent(); - Material overrideMaterial = visualizationProfile.GetDefaultControllerModelMaterialOverride(GetType(), ControllerHandedness); - if (overrideMaterial != null) - { - openVRRenderModel.shader = overrideMaterial.shader; - } - - failedToObtainControllerModel = !openVRRenderModel.LoadModel(ControllerHandedness); - - if (!failedToObtainControllerModel) - { - TryAddControllerModelToSceneHierarchy(controllerModelGameObject); - controllerDictionary.Add(ControllerHandedness, controllerModelGameObject); - } - } - else - { - Debug.LogError("Controller visualization type not defined for controller visualization profile"); - failedToObtainControllerModel = true; - } - - if (failedToObtainControllerModel) - { - Debug.LogWarning("Failed to create controller model from driver, defaulting to BaseController behavior"); - UnityEngine.Object.Destroy(controllerModelGameObject); - return base.TryRenderControllerModel(GetType(), InputSourceType.Controller); - } - - return true; - } - - #endregion Controller model functions - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs.meta deleted file mode 100644 index 57c9a29a4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/GenericOpenVRController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ebfc621a25b74ee491ce779d8f49a6b2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers.meta deleted file mode 100644 index 52a1b2f16..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: df2899c05fde37946ab61743fd77d3a0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs deleted file mode 100644 index 86aa95f2f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs +++ /dev/null @@ -1,6300 +0,0 @@ -//======= Copyright (c) Valve Corporation, All rights reserved. =============== -// -// Purpose: This file contains C#/managed code bindings for the OpenVR interfaces -// This file is auto-generated, do not edit it. -// -//============================================================================= - -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Runtime.InteropServices; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Headers -{ - [StructLayout(LayoutKind.Sequential)] - public struct IVRSystem - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetRecommendedRenderTargetSize(ref uint pnWidth, ref uint pnHeight); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetRecommendedRenderTargetSize GetRecommendedRenderTargetSize; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate HmdMatrix44_t _GetProjectionMatrix(EVREye eEye, float fNearZ, float fFarZ); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetProjectionMatrix GetProjectionMatrix; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetProjectionRaw(EVREye eEye, ref float pfLeft, ref float pfRight, ref float pfTop, ref float pfBottom); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetProjectionRaw GetProjectionRaw; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ComputeDistortion(EVREye eEye, float fU, float fV, ref DistortionCoordinates_t pDistortionCoordinates); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ComputeDistortion ComputeDistortion; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate HmdMatrix34_t _GetEyeToHeadTransform(EVREye eEye); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetEyeToHeadTransform GetEyeToHeadTransform; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetTimeSinceLastVsync(ref float pfSecondsSinceLastVsync, ref ulong pulFrameCounter); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetTimeSinceLastVsync GetTimeSinceLastVsync; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate int _GetD3D9AdapterIndex(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetD3D9AdapterIndex GetD3D9AdapterIndex; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetDXGIOutputInfo(ref int pnAdapterIndex); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDXGIOutputInfo GetDXGIOutputInfo; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetOutputDevice(ref ulong pnDevice, ETextureType textureType, IntPtr pInstance); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOutputDevice GetOutputDevice; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsDisplayOnDesktop(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsDisplayOnDesktop IsDisplayOnDesktop; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _SetDisplayVisibility(bool bIsVisibleOnDesktop); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetDisplayVisibility SetDisplayVisibility; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetDeviceToAbsoluteTrackingPose(ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, [In, Out] TrackedDevicePose_t[] pTrackedDevicePoseArray, uint unTrackedDevicePoseArrayCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDeviceToAbsoluteTrackingPose GetDeviceToAbsoluteTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ResetSeatedZeroPose(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ResetSeatedZeroPose ResetSeatedZeroPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate HmdMatrix34_t _GetSeatedZeroPoseToStandingAbsoluteTrackingPose(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSeatedZeroPoseToStandingAbsoluteTrackingPose GetSeatedZeroPoseToStandingAbsoluteTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate HmdMatrix34_t _GetRawZeroPoseToStandingAbsoluteTrackingPose(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetRawZeroPoseToStandingAbsoluteTrackingPose GetRawZeroPoseToStandingAbsoluteTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetSortedTrackedDeviceIndicesOfClass(ETrackedDeviceClass eTrackedDeviceClass, [In, Out] uint[] punTrackedDeviceIndexArray, uint unTrackedDeviceIndexArrayCount, uint unRelativeToTrackedDeviceIndex); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSortedTrackedDeviceIndicesOfClass GetSortedTrackedDeviceIndicesOfClass; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EDeviceActivityLevel _GetTrackedDeviceActivityLevel(uint unDeviceId); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetTrackedDeviceActivityLevel GetTrackedDeviceActivityLevel; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ApplyTransform(ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pTrackedDevicePose, ref HmdMatrix34_t pTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ApplyTransform ApplyTransform; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole unDeviceType); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetTrackedDeviceIndexForControllerRole GetTrackedDeviceIndexForControllerRole; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ETrackedControllerRole _GetControllerRoleForTrackedDeviceIndex(uint unDeviceIndex); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetControllerRoleForTrackedDeviceIndex GetControllerRoleForTrackedDeviceIndex; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ETrackedDeviceClass _GetTrackedDeviceClass(uint unDeviceIndex); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetTrackedDeviceClass GetTrackedDeviceClass; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsTrackedDeviceConnected(uint unDeviceIndex); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsTrackedDeviceConnected IsTrackedDeviceConnected; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetBoolTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetBoolTrackedDeviceProperty GetBoolTrackedDeviceProperty; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate float _GetFloatTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetFloatTrackedDeviceProperty GetFloatTrackedDeviceProperty; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate int _GetInt32TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetInt32TrackedDeviceProperty GetInt32TrackedDeviceProperty; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ulong _GetUint64TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetUint64TrackedDeviceProperty GetUint64TrackedDeviceProperty; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate HmdMatrix34_t _GetMatrix34TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetMatrix34TrackedDeviceProperty GetMatrix34TrackedDeviceProperty; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetArrayTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, uint propType, IntPtr pBuffer, uint unBufferSize, ref ETrackedPropertyError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetArrayTrackedDeviceProperty GetArrayTrackedDeviceProperty; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetStringTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, System.Text.StringBuilder pchValue, uint unBufferSize, ref ETrackedPropertyError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetStringTrackedDeviceProperty GetStringTrackedDeviceProperty; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetPropErrorNameFromEnum(ETrackedPropertyError error); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetPropErrorNameFromEnum GetPropErrorNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _PollNextEvent(ref VREvent_t pEvent, uint uncbVREvent); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _PollNextEvent PollNextEvent; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _PollNextEventWithPose(ETrackingUniverseOrigin eOrigin, ref VREvent_t pEvent, uint uncbVREvent, ref TrackedDevicePose_t pTrackedDevicePose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _PollNextEventWithPose PollNextEventWithPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetEventTypeNameFromEnum(EVREventType eType); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetEventTypeNameFromEnum GetEventTypeNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate HiddenAreaMesh_t _GetHiddenAreaMesh(EVREye eEye, EHiddenAreaMeshType type); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetHiddenAreaMesh GetHiddenAreaMesh; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetControllerState(uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, uint unControllerStateSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetControllerState GetControllerState; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetControllerStateWithPose(ETrackingUniverseOrigin eOrigin, uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, uint unControllerStateSize, ref TrackedDevicePose_t pTrackedDevicePose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetControllerStateWithPose GetControllerStateWithPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _TriggerHapticPulse(uint unControllerDeviceIndex, uint unAxisId, ushort usDurationMicroSec); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _TriggerHapticPulse TriggerHapticPulse; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetButtonIdNameFromEnum(EVRButtonId eButtonId); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetButtonIdNameFromEnum GetButtonIdNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetControllerAxisTypeNameFromEnum(EVRControllerAxisType eAxisType); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetControllerAxisTypeNameFromEnum GetControllerAxisTypeNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsInputAvailable(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsInputAvailable IsInputAvailable; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsSteamVRDrawingControllers(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsSteamVRDrawingControllers IsSteamVRDrawingControllers; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ShouldApplicationPause(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShouldApplicationPause ShouldApplicationPause; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ShouldApplicationReduceRenderingWork(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShouldApplicationReduceRenderingWork ShouldApplicationReduceRenderingWork; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _DriverDebugRequest(uint unDeviceIndex, string pchRequest, System.Text.StringBuilder pchResponseBuffer, uint unResponseBufferSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _DriverDebugRequest DriverDebugRequest; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRFirmwareError _PerformFirmwareUpdate(uint unDeviceIndex); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _PerformFirmwareUpdate PerformFirmwareUpdate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _AcknowledgeQuit_Exiting(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _AcknowledgeQuit_Exiting AcknowledgeQuit_Exiting; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _AcknowledgeQuit_UserPrompt(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _AcknowledgeQuit_UserPrompt AcknowledgeQuit_UserPrompt; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRExtendedDisplay - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetWindowBounds(ref int pnX, ref int pnY, ref uint pnWidth, ref uint pnHeight); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetWindowBounds GetWindowBounds; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetEyeOutputViewport(EVREye eEye, ref uint pnX, ref uint pnY, ref uint pnWidth, ref uint pnHeight); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetEyeOutputViewport GetEyeOutputViewport; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetDXGIOutputInfo(ref int pnAdapterIndex, ref int pnAdapterOutputIndex); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDXGIOutputInfo GetDXGIOutputInfo; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRTrackedCamera - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetCameraErrorNameFromEnum(EVRTrackedCameraError eCameraError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCameraErrorNameFromEnum GetCameraErrorNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _HasCamera(uint nDeviceIndex, ref bool pHasCamera); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _HasCamera HasCamera; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _GetCameraFrameSize(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, ref uint pnWidth, ref uint pnHeight, ref uint pnFrameBufferSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCameraFrameSize GetCameraFrameSize; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _GetCameraIntrinsics(uint nDeviceIndex, uint nCameraIndex, EVRTrackedCameraFrameType eFrameType, ref HmdVector2_t pFocalLength, ref HmdVector2_t pCenter); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCameraIntrinsics GetCameraIntrinsics; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _GetCameraProjection(uint nDeviceIndex, uint nCameraIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, ref HmdMatrix44_t pProjection); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCameraProjection GetCameraProjection; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _AcquireVideoStreamingService(uint nDeviceIndex, ref ulong pHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _AcquireVideoStreamingService AcquireVideoStreamingService; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _ReleaseVideoStreamingService(ulong hTrackedCamera); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ReleaseVideoStreamingService ReleaseVideoStreamingService; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _GetVideoStreamFrameBuffer(ulong hTrackedCamera, EVRTrackedCameraFrameType eFrameType, IntPtr pFrameBuffer, uint nFrameBufferSize, ref CameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetVideoStreamFrameBuffer GetVideoStreamFrameBuffer; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _GetVideoStreamTextureSize(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, ref VRTextureBounds_t pTextureBounds, ref uint pnWidth, ref uint pnHeight); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetVideoStreamTextureSize GetVideoStreamTextureSize; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _GetVideoStreamTextureD3D11(ulong hTrackedCamera, EVRTrackedCameraFrameType eFrameType, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView, ref CameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetVideoStreamTextureD3D11 GetVideoStreamTextureD3D11; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _GetVideoStreamTextureGL(ulong hTrackedCamera, EVRTrackedCameraFrameType eFrameType, ref uint pglTextureId, ref CameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetVideoStreamTextureGL GetVideoStreamTextureGL; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRTrackedCameraError _ReleaseVideoStreamTextureGL(ulong hTrackedCamera, uint glTextureId); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ReleaseVideoStreamTextureGL ReleaseVideoStreamTextureGL; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRApplications - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _AddApplicationManifest(string pchApplicationManifestFullPath, bool bTemporary); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _AddApplicationManifest AddApplicationManifest; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _RemoveApplicationManifest(string pchApplicationManifestFullPath); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _RemoveApplicationManifest RemoveApplicationManifest; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsApplicationInstalled(string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsApplicationInstalled IsApplicationInstalled; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetApplicationCount(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationCount GetApplicationCount; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _GetApplicationKeyByIndex(uint unApplicationIndex, System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationKeyByIndex GetApplicationKeyByIndex; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _GetApplicationKeyByProcessId(uint unProcessId, System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationKeyByProcessId GetApplicationKeyByProcessId; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _LaunchApplication(string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LaunchApplication LaunchApplication; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _LaunchTemplateApplication(string pchTemplateAppKey, string pchNewAppKey, [In, Out] AppOverrideKeys_t[] pKeys, uint unKeys); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LaunchTemplateApplication LaunchTemplateApplication; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _LaunchApplicationFromMimeType(string pchMimeType, string pchArgs); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LaunchApplicationFromMimeType LaunchApplicationFromMimeType; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _LaunchDashboardOverlay(string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LaunchDashboardOverlay LaunchDashboardOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _CancelApplicationLaunch(string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CancelApplicationLaunch CancelApplicationLaunch; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _IdentifyApplication(uint unProcessId, string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IdentifyApplication IdentifyApplication; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetApplicationProcessId(string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationProcessId GetApplicationProcessId; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetApplicationsErrorNameFromEnum(EVRApplicationError error); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationsErrorNameFromEnum GetApplicationsErrorNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetApplicationPropertyString(string pchAppKey, EVRApplicationProperty eProperty, System.Text.StringBuilder pchPropertyValueBuffer, uint unPropertyValueBufferLen, ref EVRApplicationError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationPropertyString GetApplicationPropertyString; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetApplicationPropertyBool(string pchAppKey, EVRApplicationProperty eProperty, ref EVRApplicationError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationPropertyBool GetApplicationPropertyBool; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ulong _GetApplicationPropertyUint64(string pchAppKey, EVRApplicationProperty eProperty, ref EVRApplicationError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationPropertyUint64 GetApplicationPropertyUint64; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _SetApplicationAutoLaunch(string pchAppKey, bool bAutoLaunch); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetApplicationAutoLaunch SetApplicationAutoLaunch; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetApplicationAutoLaunch(string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationAutoLaunch GetApplicationAutoLaunch; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _SetDefaultApplicationForMimeType(string pchAppKey, string pchMimeType); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetDefaultApplicationForMimeType SetDefaultApplicationForMimeType; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetDefaultApplicationForMimeType(string pchMimeType, System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDefaultApplicationForMimeType GetDefaultApplicationForMimeType; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetApplicationSupportedMimeTypes(string pchAppKey, System.Text.StringBuilder pchMimeTypesBuffer, uint unMimeTypesBuffer); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationSupportedMimeTypes GetApplicationSupportedMimeTypes; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetApplicationsThatSupportMimeType(string pchMimeType, System.Text.StringBuilder pchAppKeysThatSupportBuffer, uint unAppKeysThatSupportBuffer); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationsThatSupportMimeType GetApplicationsThatSupportMimeType; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetApplicationLaunchArguments(uint unHandle, System.Text.StringBuilder pchArgs, uint unArgs); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationLaunchArguments GetApplicationLaunchArguments; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _GetStartingApplication(System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetStartingApplication GetStartingApplication; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationTransitionState _GetTransitionState(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetTransitionState GetTransitionState; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _PerformApplicationPrelaunchCheck(string pchAppKey); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _PerformApplicationPrelaunchCheck PerformApplicationPrelaunchCheck; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetApplicationsTransitionStateNameFromEnum(EVRApplicationTransitionState state); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetApplicationsTransitionStateNameFromEnum GetApplicationsTransitionStateNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsQuitUserPromptRequested(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsQuitUserPromptRequested IsQuitUserPromptRequested; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRApplicationError _LaunchInternalProcess(string pchBinaryPath, string pchArguments, string pchWorkingDirectory); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LaunchInternalProcess LaunchInternalProcess; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetCurrentSceneProcessId(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCurrentSceneProcessId GetCurrentSceneProcessId; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRChaperone - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ChaperoneCalibrationState _GetCalibrationState(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCalibrationState GetCalibrationState; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetPlayAreaSize(ref float pSizeX, ref float pSizeZ); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetPlayAreaSize GetPlayAreaSize; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetPlayAreaRect(ref HmdQuad_t rect); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetPlayAreaRect GetPlayAreaRect; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ReloadInfo(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ReloadInfo ReloadInfo; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetSceneColor(HmdColor_t color); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetSceneColor SetSceneColor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetBoundsColor(ref HmdColor_t pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, ref HmdColor_t pOutputCameraColor); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetBoundsColor GetBoundsColor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _AreBoundsVisible(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _AreBoundsVisible AreBoundsVisible; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ForceBoundsVisible(bool bForce); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ForceBoundsVisible ForceBoundsVisible; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRChaperoneSetup - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _CommitWorkingCopy(EChaperoneConfigFile configFile); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CommitWorkingCopy CommitWorkingCopy; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _RevertWorkingCopy(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _RevertWorkingCopy RevertWorkingCopy; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetWorkingPlayAreaSize(ref float pSizeX, ref float pSizeZ); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetWorkingPlayAreaSize GetWorkingPlayAreaSize; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetWorkingPlayAreaRect(ref HmdQuad_t rect); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetWorkingPlayAreaRect GetWorkingPlayAreaRect; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetWorkingCollisionBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, ref uint punQuadsCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetWorkingCollisionBoundsInfo GetWorkingCollisionBoundsInfo; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetLiveCollisionBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, ref uint punQuadsCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetLiveCollisionBoundsInfo GetLiveCollisionBoundsInfo; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetWorkingSeatedZeroPoseToRawTrackingPose GetWorkingSeatedZeroPoseToRawTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetWorkingStandingZeroPoseToRawTrackingPose GetWorkingStandingZeroPoseToRawTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetWorkingPlayAreaSize(float sizeX, float sizeZ); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetWorkingPlayAreaSize SetWorkingPlayAreaSize; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetWorkingCollisionBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, uint unQuadsCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetWorkingCollisionBoundsInfo SetWorkingCollisionBoundsInfo; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetWorkingPerimeter([In, Out] HmdVector2_t[] pPointBuffer, uint unPointCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetWorkingPerimeter SetWorkingPerimeter; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetWorkingSeatedZeroPoseToRawTrackingPose SetWorkingSeatedZeroPoseToRawTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetWorkingStandingZeroPoseToRawTrackingPose SetWorkingStandingZeroPoseToRawTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ReloadFromDisk(EChaperoneConfigFile configFile); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ReloadFromDisk ReloadFromDisk; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetLiveSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetLiveSeatedZeroPoseToRawTrackingPose GetLiveSeatedZeroPoseToRawTrackingPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ExportLiveToBuffer(System.Text.StringBuilder pBuffer, ref uint pnBufferLength); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ExportLiveToBuffer ExportLiveToBuffer; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ImportFromBufferToWorking(string pBuffer, uint nImportFlags); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ImportFromBufferToWorking ImportFromBufferToWorking; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ShowWorkingSetPreview(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowWorkingSetPreview ShowWorkingSetPreview; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _HideWorkingSetPreview(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _HideWorkingSetPreview HideWorkingSetPreview; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRCompositor - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetTrackingSpace(ETrackingUniverseOrigin eOrigin); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetTrackingSpace SetTrackingSpace; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ETrackingUniverseOrigin _GetTrackingSpace(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetTrackingSpace GetTrackingSpace; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _WaitGetPoses([In, Out] TrackedDevicePose_t[] pRenderPoseArray, uint unRenderPoseArrayCount, [In, Out] TrackedDevicePose_t[] pGamePoseArray, uint unGamePoseArrayCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _WaitGetPoses WaitGetPoses; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _GetLastPoses([In, Out] TrackedDevicePose_t[] pRenderPoseArray, uint unRenderPoseArrayCount, [In, Out] TrackedDevicePose_t[] pGamePoseArray, uint unGamePoseArrayCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetLastPoses GetLastPoses; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _GetLastPoseForTrackedDeviceIndex(uint unDeviceIndex, ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pOutputGamePose); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetLastPoseForTrackedDeviceIndex GetLastPoseForTrackedDeviceIndex; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _Submit(EVREye eEye, ref Texture_t pTexture, ref VRTextureBounds_t pBounds, EVRSubmitFlags nSubmitFlags); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _Submit Submit; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ClearLastSubmittedFrame(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ClearLastSubmittedFrame ClearLastSubmittedFrame; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _PostPresentHandoff(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _PostPresentHandoff PostPresentHandoff; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetFrameTiming(ref Compositor_FrameTiming pTiming, uint unFramesAgo); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetFrameTiming GetFrameTiming; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetFrameTimings(ref Compositor_FrameTiming pTiming, uint nFrames); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetFrameTimings GetFrameTimings; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate float _GetFrameTimeRemaining(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetFrameTimeRemaining GetFrameTimeRemaining; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetCumulativeStats(ref Compositor_CumulativeStats pStats, uint nStatsSizeInBytes); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCumulativeStats GetCumulativeStats; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _FadeToColor(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _FadeToColor FadeToColor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate HmdColor_t _GetCurrentFadeColor(bool bBackground); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCurrentFadeColor GetCurrentFadeColor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _FadeGrid(float fSeconds, bool bFadeIn); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _FadeGrid FadeGrid; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate float _GetCurrentGridAlpha(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCurrentGridAlpha GetCurrentGridAlpha; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _SetSkyboxOverride([In, Out] Texture_t[] pTextures, uint unTextureCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetSkyboxOverride SetSkyboxOverride; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ClearSkyboxOverride(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ClearSkyboxOverride ClearSkyboxOverride; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _CompositorBringToFront(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CompositorBringToFront CompositorBringToFront; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _CompositorGoToBack(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CompositorGoToBack CompositorGoToBack; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _CompositorQuit(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CompositorQuit CompositorQuit; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsFullscreen(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsFullscreen IsFullscreen; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetCurrentSceneFocusProcess(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetCurrentSceneFocusProcess GetCurrentSceneFocusProcess; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetLastFrameRenderer(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetLastFrameRenderer GetLastFrameRenderer; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _CanRenderScene(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CanRenderScene CanRenderScene; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ShowMirrorWindow(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowMirrorWindow ShowMirrorWindow; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _HideMirrorWindow(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _HideMirrorWindow HideMirrorWindow; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsMirrorWindowVisible(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsMirrorWindowVisible IsMirrorWindowVisible; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _CompositorDumpImages(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CompositorDumpImages CompositorDumpImages; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ShouldAppRenderWithLowResources(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShouldAppRenderWithLowResources ShouldAppRenderWithLowResources; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ForceInterleavedReprojectionOn(bool bOverride); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ForceInterleavedReprojectionOn ForceInterleavedReprojectionOn; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ForceReconnectProcess(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ForceReconnectProcess ForceReconnectProcess; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SuspendRendering(bool bSuspend); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SuspendRendering SuspendRendering; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _GetMirrorTextureD3D11(EVREye eEye, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetMirrorTextureD3D11 GetMirrorTextureD3D11; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ReleaseMirrorTextureD3D11(IntPtr pD3D11ShaderResourceView); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ReleaseMirrorTextureD3D11 ReleaseMirrorTextureD3D11; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _GetMirrorTextureGL(EVREye eEye, ref uint pglTextureId, IntPtr pglSharedTextureHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetMirrorTextureGL GetMirrorTextureGL; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ReleaseSharedGLTexture(uint glTextureId, IntPtr glSharedTextureHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ReleaseSharedGLTexture ReleaseSharedGLTexture; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _LockGLSharedTextureForAccess(IntPtr glSharedTextureHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LockGLSharedTextureForAccess LockGLSharedTextureForAccess; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _UnlockGLSharedTextureForAccess(IntPtr glSharedTextureHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _UnlockGLSharedTextureForAccess UnlockGLSharedTextureForAccess; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetVulkanInstanceExtensionsRequired(System.Text.StringBuilder pchValue, uint unBufferSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetVulkanInstanceExtensionsRequired GetVulkanInstanceExtensionsRequired; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetVulkanDeviceExtensionsRequired(IntPtr pPhysicalDevice, System.Text.StringBuilder pchValue, uint unBufferSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetVulkanDeviceExtensionsRequired GetVulkanDeviceExtensionsRequired; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetExplicitTimingMode(EVRCompositorTimingMode eTimingMode); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetExplicitTimingMode SetExplicitTimingMode; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRCompositorError _SubmitExplicitTimingData(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SubmitExplicitTimingData SubmitExplicitTimingData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsMotionSmoothingEnabled(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsMotionSmoothingEnabled IsMotionSmoothingEnabled; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVROverlay - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _FindOverlay(string pchOverlayKey, ref ulong pOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _FindOverlay FindOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _CreateOverlay(string pchOverlayKey, string pchOverlayName, ref ulong pOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CreateOverlay CreateOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _DestroyOverlay(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _DestroyOverlay DestroyOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetHighQualityOverlay(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetHighQualityOverlay SetHighQualityOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ulong _GetHighQualityOverlay(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetHighQualityOverlay GetHighQualityOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetOverlayKey(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EVROverlayError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayKey GetOverlayKey; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetOverlayName(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EVROverlayError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayName GetOverlayName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayName(ulong ulOverlayHandle, string pchName); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayName SetOverlayName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayImageData(ulong ulOverlayHandle, IntPtr pvBuffer, uint unBufferSize, ref uint punWidth, ref uint punHeight); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayImageData GetOverlayImageData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetOverlayErrorNameFromEnum(EVROverlayError error); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayErrorNameFromEnum GetOverlayErrorNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayRenderingPid(ulong ulOverlayHandle, uint unPID); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayRenderingPid SetOverlayRenderingPid; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetOverlayRenderingPid(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayRenderingPid GetOverlayRenderingPid; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayFlag(ulong ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayFlag SetOverlayFlag; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayFlag(ulong ulOverlayHandle, VROverlayFlags eOverlayFlag, ref bool pbEnabled); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayFlag GetOverlayFlag; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayColor(ulong ulOverlayHandle, float fRed, float fGreen, float fBlue); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayColor SetOverlayColor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayColor(ulong ulOverlayHandle, ref float pfRed, ref float pfGreen, ref float pfBlue); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayColor GetOverlayColor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayAlpha(ulong ulOverlayHandle, float fAlpha); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayAlpha SetOverlayAlpha; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayAlpha(ulong ulOverlayHandle, ref float pfAlpha); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayAlpha GetOverlayAlpha; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTexelAspect(ulong ulOverlayHandle, float fTexelAspect); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTexelAspect SetOverlayTexelAspect; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTexelAspect(ulong ulOverlayHandle, ref float pfTexelAspect); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTexelAspect GetOverlayTexelAspect; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlaySortOrder(ulong ulOverlayHandle, uint unSortOrder); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlaySortOrder SetOverlaySortOrder; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlaySortOrder(ulong ulOverlayHandle, ref uint punSortOrder); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlaySortOrder GetOverlaySortOrder; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayWidthInMeters(ulong ulOverlayHandle, float fWidthInMeters); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayWidthInMeters SetOverlayWidthInMeters; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayWidthInMeters(ulong ulOverlayHandle, ref float pfWidthInMeters); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayWidthInMeters GetOverlayWidthInMeters; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayAutoCurveDistanceRangeInMeters SetOverlayAutoCurveDistanceRangeInMeters; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, ref float pfMinDistanceInMeters, ref float pfMaxDistanceInMeters); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayAutoCurveDistanceRangeInMeters GetOverlayAutoCurveDistanceRangeInMeters; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTextureColorSpace(ulong ulOverlayHandle, EColorSpace eTextureColorSpace); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTextureColorSpace SetOverlayTextureColorSpace; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTextureColorSpace(ulong ulOverlayHandle, ref EColorSpace peTextureColorSpace); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTextureColorSpace GetOverlayTextureColorSpace; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTextureBounds(ulong ulOverlayHandle, ref VRTextureBounds_t pOverlayTextureBounds); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTextureBounds SetOverlayTextureBounds; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTextureBounds(ulong ulOverlayHandle, ref VRTextureBounds_t pOverlayTextureBounds); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTextureBounds GetOverlayTextureBounds; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetOverlayRenderModel(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref HmdColor_t pColor, ref EVROverlayError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayRenderModel GetOverlayRenderModel; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayRenderModel(ulong ulOverlayHandle, string pchRenderModel, ref HmdColor_t pColor); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayRenderModel SetOverlayRenderModel; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTransformType(ulong ulOverlayHandle, ref VROverlayTransformType peTransformType); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTransformType GetOverlayTransformType; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTransformAbsolute(ulong ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTransformAbsolute SetOverlayTransformAbsolute; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTransformAbsolute(ulong ulOverlayHandle, ref ETrackingUniverseOrigin peTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTransformAbsolute GetOverlayTransformAbsolute; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, uint unTrackedDevice, ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTransformTrackedDeviceRelative SetOverlayTransformTrackedDeviceRelative; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, ref uint punTrackedDevice, ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTransformTrackedDeviceRelative GetOverlayTransformTrackedDeviceRelative; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, uint unDeviceIndex, string pchComponentName); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTransformTrackedDeviceComponent SetOverlayTransformTrackedDeviceComponent; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, ref uint punDeviceIndex, System.Text.StringBuilder pchComponentName, uint unComponentNameSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTransformTrackedDeviceComponent GetOverlayTransformTrackedDeviceComponent; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTransformOverlayRelative(ulong ulOverlayHandle, ref ulong ulOverlayHandleParent, ref HmdMatrix34_t pmatParentOverlayToOverlayTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTransformOverlayRelative GetOverlayTransformOverlayRelative; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTransformOverlayRelative(ulong ulOverlayHandle, ulong ulOverlayHandleParent, ref HmdMatrix34_t pmatParentOverlayToOverlayTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTransformOverlayRelative SetOverlayTransformOverlayRelative; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _ShowOverlay(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowOverlay ShowOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _HideOverlay(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _HideOverlay HideOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsOverlayVisible(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsOverlayVisible IsOverlayVisible; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetTransformForOverlayCoordinates(ulong ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, ref HmdMatrix34_t pmatTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetTransformForOverlayCoordinates GetTransformForOverlayCoordinates; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _PollNextOverlayEvent(ulong ulOverlayHandle, ref VREvent_t pEvent, uint uncbVREvent); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _PollNextOverlayEvent PollNextOverlayEvent; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayInputMethod(ulong ulOverlayHandle, ref VROverlayInputMethod peInputMethod); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayInputMethod GetOverlayInputMethod; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayInputMethod(ulong ulOverlayHandle, VROverlayInputMethod eInputMethod); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayInputMethod SetOverlayInputMethod; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayMouseScale(ulong ulOverlayHandle, ref HmdVector2_t pvecMouseScale); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayMouseScale GetOverlayMouseScale; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayMouseScale(ulong ulOverlayHandle, ref HmdVector2_t pvecMouseScale); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayMouseScale SetOverlayMouseScale; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _ComputeOverlayIntersection(ulong ulOverlayHandle, ref VROverlayIntersectionParams_t pParams, ref VROverlayIntersectionResults_t pResults); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ComputeOverlayIntersection ComputeOverlayIntersection; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsHoverTargetOverlay(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsHoverTargetOverlay IsHoverTargetOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ulong _GetGamepadFocusOverlay(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetGamepadFocusOverlay GetGamepadFocusOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetGamepadFocusOverlay(ulong ulNewFocusOverlay); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetGamepadFocusOverlay SetGamepadFocusOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayNeighbor(EOverlayDirection eDirection, ulong ulFrom, ulong ulTo); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayNeighbor SetOverlayNeighbor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _MoveGamepadFocusToNeighbor(EOverlayDirection eDirection, ulong ulFrom); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _MoveGamepadFocusToNeighbor MoveGamepadFocusToNeighbor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayDualAnalogTransform(ulong ulOverlay, EDualAnalogWhich eWhich, ref HmdVector2_t pvCenter, float fRadius); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayDualAnalogTransform SetOverlayDualAnalogTransform; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayDualAnalogTransform(ulong ulOverlay, EDualAnalogWhich eWhich, ref HmdVector2_t pvCenter, ref float pfRadius); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayDualAnalogTransform GetOverlayDualAnalogTransform; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayTexture(ulong ulOverlayHandle, ref Texture_t pTexture); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayTexture SetOverlayTexture; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _ClearOverlayTexture(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ClearOverlayTexture ClearOverlayTexture; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayRaw(ulong ulOverlayHandle, IntPtr pvBuffer, uint unWidth, uint unHeight, uint unDepth); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayRaw SetOverlayRaw; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayFromFile(ulong ulOverlayHandle, string pchFilePath); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayFromFile SetOverlayFromFile; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTexture(ulong ulOverlayHandle, ref IntPtr pNativeTextureHandle, IntPtr pNativeTextureRef, ref uint pWidth, ref uint pHeight, ref uint pNativeFormat, ref ETextureType pAPIType, ref EColorSpace pColorSpace, ref VRTextureBounds_t pTextureBounds); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTexture GetOverlayTexture; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _ReleaseNativeOverlayHandle(ulong ulOverlayHandle, IntPtr pNativeTextureHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ReleaseNativeOverlayHandle ReleaseNativeOverlayHandle; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayTextureSize(ulong ulOverlayHandle, ref uint pWidth, ref uint pHeight); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayTextureSize GetOverlayTextureSize; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _CreateDashboardOverlay(string pchOverlayKey, string pchOverlayFriendlyName, ref ulong pMainHandle, ref ulong pThumbnailHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CreateDashboardOverlay CreateDashboardOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsDashboardVisible(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsDashboardVisible IsDashboardVisible; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _IsActiveDashboardOverlay(ulong ulOverlayHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _IsActiveDashboardOverlay IsActiveDashboardOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetDashboardOverlaySceneProcess(ulong ulOverlayHandle, uint unProcessId); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetDashboardOverlaySceneProcess SetDashboardOverlaySceneProcess; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetDashboardOverlaySceneProcess(ulong ulOverlayHandle, ref uint punProcessId); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDashboardOverlaySceneProcess GetDashboardOverlaySceneProcess; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _ShowDashboard(string pchOverlayToShow); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowDashboard ShowDashboard; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetPrimaryDashboardDevice(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetPrimaryDashboardDevice GetPrimaryDashboardDevice; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _ShowKeyboard(int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText, bool bUseMinimalMode, ulong uUserValue); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowKeyboard ShowKeyboard; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _ShowKeyboardForOverlay(ulong ulOverlayHandle, int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText, bool bUseMinimalMode, ulong uUserValue); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowKeyboardForOverlay ShowKeyboardForOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetKeyboardText(System.Text.StringBuilder pchText, uint cchText); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetKeyboardText GetKeyboardText; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _HideKeyboard(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _HideKeyboard HideKeyboard; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetKeyboardTransformAbsolute(ETrackingUniverseOrigin eTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToKeyboardTransform); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetKeyboardTransformAbsolute SetKeyboardTransformAbsolute; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetKeyboardPositionForOverlay(ulong ulOverlayHandle, HmdRect2_t avoidRect); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetKeyboardPositionForOverlay SetKeyboardPositionForOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _SetOverlayIntersectionMask(ulong ulOverlayHandle, ref VROverlayIntersectionMaskPrimitive_t pMaskPrimitives, uint unNumMaskPrimitives, uint unPrimitiveSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetOverlayIntersectionMask SetOverlayIntersectionMask; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVROverlayError _GetOverlayFlags(ulong ulOverlayHandle, ref uint pFlags); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOverlayFlags GetOverlayFlags; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate VRMessageOverlayResponse _ShowMessageOverlay(string pchText, string pchCaption, string pchButton0Text, string pchButton1Text, string pchButton2Text, string pchButton3Text); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowMessageOverlay ShowMessageOverlay; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _CloseMessageOverlay(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CloseMessageOverlay CloseMessageOverlay; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRRenderModels - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRRenderModelError _LoadRenderModel_Async(string pchRenderModelName, ref IntPtr ppRenderModel); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LoadRenderModel_Async LoadRenderModel_Async; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _FreeRenderModel(IntPtr pRenderModel); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _FreeRenderModel FreeRenderModel; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRRenderModelError _LoadTexture_Async(int textureId, ref IntPtr ppTexture); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LoadTexture_Async LoadTexture_Async; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _FreeTexture(IntPtr pTexture); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _FreeTexture FreeTexture; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRRenderModelError _LoadTextureD3D11_Async(int textureId, IntPtr pD3D11Device, ref IntPtr ppD3D11Texture2D); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LoadTextureD3D11_Async LoadTextureD3D11_Async; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRRenderModelError _LoadIntoTextureD3D11_Async(int textureId, IntPtr pDstTexture); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LoadIntoTextureD3D11_Async LoadIntoTextureD3D11_Async; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _FreeTextureD3D11(IntPtr pD3D11Texture2D); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _FreeTextureD3D11 FreeTextureD3D11; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetRenderModelName(uint unRenderModelIndex, System.Text.StringBuilder pchRenderModelName, uint unRenderModelNameLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetRenderModelName GetRenderModelName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetRenderModelCount(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetRenderModelCount GetRenderModelCount; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetComponentCount(string pchRenderModelName); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetComponentCount GetComponentCount; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetComponentName(string pchRenderModelName, uint unComponentIndex, System.Text.StringBuilder pchComponentName, uint unComponentNameLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetComponentName GetComponentName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ulong _GetComponentButtonMask(string pchRenderModelName, string pchComponentName); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetComponentButtonMask GetComponentButtonMask; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetComponentRenderModelName(string pchRenderModelName, string pchComponentName, System.Text.StringBuilder pchComponentRenderModelName, uint unComponentRenderModelNameLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetComponentRenderModelName GetComponentRenderModelName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetComponentStateForDevicePath(string pchRenderModelName, string pchComponentName, ulong devicePath, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetComponentStateForDevicePath GetComponentStateForDevicePath; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetComponentState(string pchRenderModelName, string pchComponentName, ref VRControllerState_t pControllerState, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetComponentState GetComponentState; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _RenderModelHasComponent(string pchRenderModelName, string pchComponentName); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _RenderModelHasComponent RenderModelHasComponent; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetRenderModelThumbnailURL(string pchRenderModelName, System.Text.StringBuilder pchThumbnailURL, uint unThumbnailURLLen, ref EVRRenderModelError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetRenderModelThumbnailURL GetRenderModelThumbnailURL; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetRenderModelOriginalPath(string pchRenderModelName, System.Text.StringBuilder pchOriginalPath, uint unOriginalPathLen, ref EVRRenderModelError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetRenderModelOriginalPath GetRenderModelOriginalPath; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetRenderModelErrorNameFromEnum(EVRRenderModelError error); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetRenderModelErrorNameFromEnum GetRenderModelErrorNameFromEnum; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRNotifications - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRNotificationError _CreateNotification(ulong ulOverlayHandle, ulong ulUserValue, EVRNotificationType type, string pchText, EVRNotificationStyle style, ref NotificationBitmap_t pImage, ref uint pNotificationId); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CreateNotification CreateNotification; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRNotificationError _RemoveNotification(uint notificationId); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _RemoveNotification RemoveNotification; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRSettings - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate IntPtr _GetSettingsErrorNameFromEnum(EVRSettingsError eError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSettingsErrorNameFromEnum GetSettingsErrorNameFromEnum; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _Sync(bool bForce, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _Sync Sync; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetBool(string pchSection, string pchSettingsKey, bool bValue, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetBool SetBool; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetInt32(string pchSection, string pchSettingsKey, int nValue, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetInt32 SetInt32; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetFloat(string pchSection, string pchSettingsKey, float flValue, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetFloat SetFloat; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _SetString(string pchSection, string pchSettingsKey, string pchValue, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetString SetString; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetBool(string pchSection, string pchSettingsKey, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetBool GetBool; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate int _GetInt32(string pchSection, string pchSettingsKey, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetInt32 GetInt32; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate float _GetFloat(string pchSection, string pchSettingsKey, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetFloat GetFloat; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _GetString(string pchSection, string pchSettingsKey, System.Text.StringBuilder pchValue, uint unValueLen, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetString GetString; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _RemoveSection(string pchSection, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _RemoveSection RemoveSection; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate void _RemoveKeyInSection(string pchSection, string pchSettingsKey, ref EVRSettingsError peError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _RemoveKeyInSection RemoveKeyInSection; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRScreenshots - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRScreenshotError _RequestScreenshot(ref uint pOutScreenshotHandle, EVRScreenshotType type, string pchPreviewFilename, string pchVRFilename); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _RequestScreenshot RequestScreenshot; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRScreenshotError _HookScreenshot([In, Out] EVRScreenshotType[] pSupportedTypes, int numTypes); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _HookScreenshot HookScreenshot; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRScreenshotType _GetScreenshotPropertyType(uint screenshotHandle, ref EVRScreenshotError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetScreenshotPropertyType GetScreenshotPropertyType; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetScreenshotPropertyFilename(uint screenshotHandle, EVRScreenshotPropertyFilenames filenameType, System.Text.StringBuilder pchFilename, uint cchFilename, ref EVRScreenshotError pError); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetScreenshotPropertyFilename GetScreenshotPropertyFilename; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRScreenshotError _UpdateScreenshotProgress(uint screenshotHandle, float flProgress); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _UpdateScreenshotProgress UpdateScreenshotProgress; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRScreenshotError _TakeStereoScreenshot(ref uint pOutScreenshotHandle, string pchPreviewFilename, string pchVRFilename); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _TakeStereoScreenshot TakeStereoScreenshot; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRScreenshotError _SubmitScreenshot(uint screenshotHandle, EVRScreenshotType type, string pchSourcePreviewFilename, string pchSourceVRFilename); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SubmitScreenshot SubmitScreenshot; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRResources - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _LoadSharedResource(string pchResourceName, string pchBuffer, uint unBufferLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _LoadSharedResource LoadSharedResource; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetResourceFullPath(string pchResourceName, string pchResourceTypeDirectory, System.Text.StringBuilder pchPathBuffer, uint unBufferLen); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetResourceFullPath GetResourceFullPath; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRDriverManager - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetDriverCount(); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDriverCount GetDriverCount; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate uint _GetDriverName(uint nDriver, System.Text.StringBuilder pchValue, uint unBufferSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDriverName GetDriverName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ulong _GetDriverHandle(string pchDriverName); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDriverHandle GetDriverHandle; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRInput - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _SetActionManifestPath(string pchActionManifestPath); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _SetActionManifestPath SetActionManifestPath; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetActionSetHandle(string pchActionSetName, ref ulong pHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetActionSetHandle GetActionSetHandle; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetActionHandle(string pchActionName, ref ulong pHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetActionHandle GetActionHandle; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetInputSourceHandle(string pchInputSourcePath, ref ulong pHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetInputSourceHandle GetInputSourceHandle; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _UpdateActionState([In, Out] VRActiveActionSet_t[] pSets, uint unSizeOfVRSelectedActionSet_t, uint unSetCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _UpdateActionState UpdateActionState; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetDigitalActionData(ulong action, ref InputDigitalActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetDigitalActionData GetDigitalActionData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetAnalogActionData(ulong action, ref InputAnalogActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetAnalogActionData GetAnalogActionData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetPoseActionData(ulong action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, ref InputPoseActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetPoseActionData GetPoseActionData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetSkeletalActionData(ulong action, ref InputSkeletalActionData_t pActionData, uint unActionDataSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSkeletalActionData GetSkeletalActionData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetBoneCount(ulong action, ref uint pBoneCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetBoneCount GetBoneCount; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetBoneHierarchy(ulong action, [In, Out] int[] pParentIndices, uint unIndexArayCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetBoneHierarchy GetBoneHierarchy; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetBoneName(ulong action, int nBoneIndex, System.Text.StringBuilder pchBoneName, uint unNameBufferSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetBoneName GetBoneName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetSkeletalReferenceTransforms(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSkeletalReferenceTransforms GetSkeletalReferenceTransforms; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetSkeletalTrackingLevel(ulong action, ref EVRSkeletalTrackingLevel pSkeletalTrackingLevel); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSkeletalTrackingLevel GetSkeletalTrackingLevel; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetSkeletalBoneData(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSkeletalBoneData GetSkeletalBoneData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetSkeletalSummaryData(ulong action, ref VRSkeletalSummaryData_t pSkeletalSummaryData); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSkeletalSummaryData GetSkeletalSummaryData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetSkeletalBoneDataCompressed(ulong action, EVRSkeletalMotionRange eMotionRange, IntPtr pvCompressedData, uint unCompressedSize, ref uint punRequiredCompressedSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSkeletalBoneDataCompressed GetSkeletalBoneDataCompressed; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _DecompressSkeletalBoneData(IntPtr pvCompressedBuffer, uint unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _DecompressSkeletalBoneData DecompressSkeletalBoneData; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _TriggerHapticVibrationAction(ulong action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, ulong ulRestrictToDevice); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _TriggerHapticVibrationAction TriggerHapticVibrationAction; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetActionOrigins(ulong actionSetHandle, ulong digitalActionHandle, [In, Out] ulong[] originsOut, uint originOutCount); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetActionOrigins GetActionOrigins; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetOriginLocalizedName(ulong origin, System.Text.StringBuilder pchNameArray, uint unNameArraySize, int unStringSectionsToInclude); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOriginLocalizedName GetOriginLocalizedName; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _GetOriginTrackedDeviceInfo(ulong origin, ref InputOriginInfo_t pOriginInfo, uint unOriginInfoSize); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetOriginTrackedDeviceInfo GetOriginTrackedDeviceInfo; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _ShowActionOrigins(ulong actionSetHandle, ulong ulActionHandle); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowActionOrigins ShowActionOrigins; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRInputError _ShowBindingsForActionSet([In, Out] VRActiveActionSet_t[] pSets, uint unSizeOfVRSelectedActionSet_t, uint unSetCount, ulong originToHighlight); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _ShowBindingsForActionSet ShowBindingsForActionSet; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRIOBuffer - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EIOBufferError _Open(string pchPath, EIOBufferMode mode, uint unElementSize, uint unElements, ref ulong pulBuffer); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _Open Open; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EIOBufferError _Close(ulong ulBuffer); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _Close Close; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EIOBufferError _Read(ulong ulBuffer, IntPtr pDst, uint unBytes, ref uint punRead); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _Read Read; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EIOBufferError _Write(ulong ulBuffer, IntPtr pSrc, uint unBytes); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _Write Write; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate ulong _PropertyContainer(ulong ulBuffer); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _PropertyContainer PropertyContainer; - - } - - [StructLayout(LayoutKind.Sequential)] - public struct IVRSpatialAnchors - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRSpatialAnchorError _CreateSpatialAnchorFromDescriptor(string pchDescriptor, ref uint pHandleOut); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CreateSpatialAnchorFromDescriptor CreateSpatialAnchorFromDescriptor; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRSpatialAnchorError _CreateSpatialAnchorFromPose(uint unDeviceIndex, ETrackingUniverseOrigin eOrigin, ref SpatialAnchorPose_t pPose, ref uint pHandleOut); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _CreateSpatialAnchorFromPose CreateSpatialAnchorFromPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRSpatialAnchorError _GetSpatialAnchorPose(uint unHandle, ETrackingUniverseOrigin eOrigin, ref SpatialAnchorPose_t pPoseOut); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSpatialAnchorPose GetSpatialAnchorPose; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate EVRSpatialAnchorError _GetSpatialAnchorDescriptor(uint unHandle, System.Text.StringBuilder pchDescriptorOut, ref uint punDescriptorBufferLenInOut); - [MarshalAs(UnmanagedType.FunctionPtr)] - internal _GetSpatialAnchorDescriptor GetSpatialAnchorDescriptor; - - } - - - public class CVRSystem - { - IVRSystem FnTable; - internal CVRSystem(IntPtr pInterface) - { - FnTable = (IVRSystem)Marshal.PtrToStructure(pInterface, typeof(IVRSystem)); - } - public void GetRecommendedRenderTargetSize(ref uint pnWidth, ref uint pnHeight) - { - pnWidth = 0; - pnHeight = 0; - FnTable.GetRecommendedRenderTargetSize(ref pnWidth, ref pnHeight); - } - public HmdMatrix44_t GetProjectionMatrix(EVREye eEye, float fNearZ, float fFarZ) - { - HmdMatrix44_t result = FnTable.GetProjectionMatrix(eEye, fNearZ, fFarZ); - return result; - } - public void GetProjectionRaw(EVREye eEye, ref float pfLeft, ref float pfRight, ref float pfTop, ref float pfBottom) - { - pfLeft = 0; - pfRight = 0; - pfTop = 0; - pfBottom = 0; - FnTable.GetProjectionRaw(eEye, ref pfLeft, ref pfRight, ref pfTop, ref pfBottom); - } - public bool ComputeDistortion(EVREye eEye, float fU, float fV, ref DistortionCoordinates_t pDistortionCoordinates) - { - bool result = FnTable.ComputeDistortion(eEye, fU, fV, ref pDistortionCoordinates); - return result; - } - public HmdMatrix34_t GetEyeToHeadTransform(EVREye eEye) - { - HmdMatrix34_t result = FnTable.GetEyeToHeadTransform(eEye); - return result; - } - public bool GetTimeSinceLastVsync(ref float pfSecondsSinceLastVsync, ref ulong pulFrameCounter) - { - pfSecondsSinceLastVsync = 0; - pulFrameCounter = 0; - bool result = FnTable.GetTimeSinceLastVsync(ref pfSecondsSinceLastVsync, ref pulFrameCounter); - return result; - } - public int GetD3D9AdapterIndex() - { - int result = FnTable.GetD3D9AdapterIndex(); - return result; - } - public void GetDXGIOutputInfo(ref int pnAdapterIndex) - { - pnAdapterIndex = 0; - FnTable.GetDXGIOutputInfo(ref pnAdapterIndex); - } - public void GetOutputDevice(ref ulong pnDevice, ETextureType textureType, IntPtr pInstance) - { - pnDevice = 0; - FnTable.GetOutputDevice(ref pnDevice, textureType, pInstance); - } - public bool IsDisplayOnDesktop() - { - bool result = FnTable.IsDisplayOnDesktop(); - return result; - } - public bool SetDisplayVisibility(bool bIsVisibleOnDesktop) - { - bool result = FnTable.SetDisplayVisibility(bIsVisibleOnDesktop); - return result; - } - public void GetDeviceToAbsoluteTrackingPose(ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t[] pTrackedDevicePoseArray) - { - FnTable.GetDeviceToAbsoluteTrackingPose(eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, (uint)pTrackedDevicePoseArray.Length); - } - public void ResetSeatedZeroPose() - { - FnTable.ResetSeatedZeroPose(); - } - public HmdMatrix34_t GetSeatedZeroPoseToStandingAbsoluteTrackingPose() - { - HmdMatrix34_t result = FnTable.GetSeatedZeroPoseToStandingAbsoluteTrackingPose(); - return result; - } - public HmdMatrix34_t GetRawZeroPoseToStandingAbsoluteTrackingPose() - { - HmdMatrix34_t result = FnTable.GetRawZeroPoseToStandingAbsoluteTrackingPose(); - return result; - } - public uint GetSortedTrackedDeviceIndicesOfClass(ETrackedDeviceClass eTrackedDeviceClass, uint[] punTrackedDeviceIndexArray, uint unRelativeToTrackedDeviceIndex) - { - uint result = FnTable.GetSortedTrackedDeviceIndicesOfClass(eTrackedDeviceClass, punTrackedDeviceIndexArray, (uint)punTrackedDeviceIndexArray.Length, unRelativeToTrackedDeviceIndex); - return result; - } - public EDeviceActivityLevel GetTrackedDeviceActivityLevel(uint unDeviceId) - { - EDeviceActivityLevel result = FnTable.GetTrackedDeviceActivityLevel(unDeviceId); - return result; - } - public void ApplyTransform(ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pTrackedDevicePose, ref HmdMatrix34_t pTransform) - { - FnTable.ApplyTransform(ref pOutputPose, ref pTrackedDevicePose, ref pTransform); - } - public uint GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole unDeviceType) - { - uint result = FnTable.GetTrackedDeviceIndexForControllerRole(unDeviceType); - return result; - } - public ETrackedControllerRole GetControllerRoleForTrackedDeviceIndex(uint unDeviceIndex) - { - ETrackedControllerRole result = FnTable.GetControllerRoleForTrackedDeviceIndex(unDeviceIndex); - return result; - } - public ETrackedDeviceClass GetTrackedDeviceClass(uint unDeviceIndex) - { - ETrackedDeviceClass result = FnTable.GetTrackedDeviceClass(unDeviceIndex); - return result; - } - public bool IsTrackedDeviceConnected(uint unDeviceIndex) - { - bool result = FnTable.IsTrackedDeviceConnected(unDeviceIndex); - return result; - } - public bool GetBoolTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError) - { - bool result = FnTable.GetBoolTrackedDeviceProperty(unDeviceIndex, prop, ref pError); - return result; - } - public float GetFloatTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError) - { - float result = FnTable.GetFloatTrackedDeviceProperty(unDeviceIndex, prop, ref pError); - return result; - } - public int GetInt32TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError) - { - int result = FnTable.GetInt32TrackedDeviceProperty(unDeviceIndex, prop, ref pError); - return result; - } - public ulong GetUint64TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError) - { - ulong result = FnTable.GetUint64TrackedDeviceProperty(unDeviceIndex, prop, ref pError); - return result; - } - public HmdMatrix34_t GetMatrix34TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError) - { - HmdMatrix34_t result = FnTable.GetMatrix34TrackedDeviceProperty(unDeviceIndex, prop, ref pError); - return result; - } - public uint GetArrayTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, uint propType, IntPtr pBuffer, uint unBufferSize, ref ETrackedPropertyError pError) - { - uint result = FnTable.GetArrayTrackedDeviceProperty(unDeviceIndex, prop, propType, pBuffer, unBufferSize, ref pError); - return result; - } - public uint GetStringTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, System.Text.StringBuilder pchValue, uint unBufferSize, ref ETrackedPropertyError pError) - { - uint result = FnTable.GetStringTrackedDeviceProperty(unDeviceIndex, prop, pchValue, unBufferSize, ref pError); - return result; - } - public string GetPropErrorNameFromEnum(ETrackedPropertyError error) - { - IntPtr result = FnTable.GetPropErrorNameFromEnum(error); - return Marshal.PtrToStringAnsi(result); - } - // This is a terrible hack to workaround the fact that VRControllerState_t and VREvent_t were - // originally mis-compiled with the wrong packing for Linux and OSX. - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _PollNextEventPacked(ref VREvent_t_Packed pEvent, uint uncbVREvent); - [StructLayout(LayoutKind.Explicit)] - struct PollNextEventUnion - { - [FieldOffset(0)] - public IVRSystem._PollNextEvent pPollNextEvent; - [FieldOffset(0)] - public _PollNextEventPacked pPollNextEventPacked; - } - public bool PollNextEvent(ref VREvent_t pEvent, uint uncbVREvent) - { -#if !UNITY_METRO - if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) || - (System.Environment.OSVersion.Platform == System.PlatformID.Unix)) - { - PollNextEventUnion u; - VREvent_t_Packed event_packed = new VREvent_t_Packed(); - u.pPollNextEventPacked = null; - u.pPollNextEvent = FnTable.PollNextEvent; - bool packed_result = u.pPollNextEventPacked(ref event_packed, (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VREvent_t_Packed))); - - event_packed.Unpack(ref pEvent); - return packed_result; - } -#endif - bool result = FnTable.PollNextEvent(ref pEvent, uncbVREvent); - return result; - } - public bool PollNextEventWithPose(ETrackingUniverseOrigin eOrigin, ref VREvent_t pEvent, uint uncbVREvent, ref TrackedDevicePose_t pTrackedDevicePose) - { - bool result = FnTable.PollNextEventWithPose(eOrigin, ref pEvent, uncbVREvent, ref pTrackedDevicePose); - return result; - } - public string GetEventTypeNameFromEnum(EVREventType eType) - { - IntPtr result = FnTable.GetEventTypeNameFromEnum(eType); - return Marshal.PtrToStringAnsi(result); - } - public HiddenAreaMesh_t GetHiddenAreaMesh(EVREye eEye, EHiddenAreaMeshType type) - { - HiddenAreaMesh_t result = FnTable.GetHiddenAreaMesh(eEye, type); - return result; - } - // This is a terrible hack to workaround the fact that VRControllerState_t and VREvent_t were - // originally mis-compiled with the wrong packing for Linux and OSX. - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetControllerStatePacked(uint unControllerDeviceIndex, ref VRControllerState_t_Packed pControllerState, uint unControllerStateSize); - [StructLayout(LayoutKind.Explicit)] - struct GetControllerStateUnion - { - [FieldOffset(0)] - public IVRSystem._GetControllerState pGetControllerState; - [FieldOffset(0)] - public _GetControllerStatePacked pGetControllerStatePacked; - } - public bool GetControllerState(uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, uint unControllerStateSize) - { -#if !UNITY_METRO - if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) || - (System.Environment.OSVersion.Platform == System.PlatformID.Unix)) - { - GetControllerStateUnion u; - VRControllerState_t_Packed state_packed = new VRControllerState_t_Packed(pControllerState); - u.pGetControllerStatePacked = null; - u.pGetControllerState = FnTable.GetControllerState; - bool packed_result = u.pGetControllerStatePacked(unControllerDeviceIndex, ref state_packed, (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VRControllerState_t_Packed))); - - state_packed.Unpack(ref pControllerState); - return packed_result; - } -#endif - bool result = FnTable.GetControllerState(unControllerDeviceIndex, ref pControllerState, unControllerStateSize); - return result; - } - // This is a terrible hack to workaround the fact that VRControllerState_t and VREvent_t were - // originally mis-compiled with the wrong packing for Linux and OSX. - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetControllerStateWithPosePacked(ETrackingUniverseOrigin eOrigin, uint unControllerDeviceIndex, ref VRControllerState_t_Packed pControllerState, uint unControllerStateSize, ref TrackedDevicePose_t pTrackedDevicePose); - [StructLayout(LayoutKind.Explicit)] - struct GetControllerStateWithPoseUnion - { - [FieldOffset(0)] - public IVRSystem._GetControllerStateWithPose pGetControllerStateWithPose; - [FieldOffset(0)] - public _GetControllerStateWithPosePacked pGetControllerStateWithPosePacked; - } - public bool GetControllerStateWithPose(ETrackingUniverseOrigin eOrigin, uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, uint unControllerStateSize, ref TrackedDevicePose_t pTrackedDevicePose) - { -#if !UNITY_METRO - if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) || - (System.Environment.OSVersion.Platform == System.PlatformID.Unix)) - { - GetControllerStateWithPoseUnion u; - VRControllerState_t_Packed state_packed = new VRControllerState_t_Packed(pControllerState); - u.pGetControllerStateWithPosePacked = null; - u.pGetControllerStateWithPose = FnTable.GetControllerStateWithPose; - bool packed_result = u.pGetControllerStateWithPosePacked(eOrigin, unControllerDeviceIndex, ref state_packed, (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VRControllerState_t_Packed)), ref pTrackedDevicePose); - - state_packed.Unpack(ref pControllerState); - return packed_result; - } -#endif - bool result = FnTable.GetControllerStateWithPose(eOrigin, unControllerDeviceIndex, ref pControllerState, unControllerStateSize, ref pTrackedDevicePose); - return result; - } - public void TriggerHapticPulse(uint unControllerDeviceIndex, uint unAxisId, ushort usDurationMicroSec) - { - FnTable.TriggerHapticPulse(unControllerDeviceIndex, unAxisId, usDurationMicroSec); - } - public string GetButtonIdNameFromEnum(EVRButtonId eButtonId) - { - IntPtr result = FnTable.GetButtonIdNameFromEnum(eButtonId); - return Marshal.PtrToStringAnsi(result); - } - public string GetControllerAxisTypeNameFromEnum(EVRControllerAxisType eAxisType) - { - IntPtr result = FnTable.GetControllerAxisTypeNameFromEnum(eAxisType); - return Marshal.PtrToStringAnsi(result); - } - public bool IsInputAvailable() - { - bool result = FnTable.IsInputAvailable(); - return result; - } - public bool IsSteamVRDrawingControllers() - { - bool result = FnTable.IsSteamVRDrawingControllers(); - return result; - } - public bool ShouldApplicationPause() - { - bool result = FnTable.ShouldApplicationPause(); - return result; - } - public bool ShouldApplicationReduceRenderingWork() - { - bool result = FnTable.ShouldApplicationReduceRenderingWork(); - return result; - } - public uint DriverDebugRequest(uint unDeviceIndex, string pchRequest, System.Text.StringBuilder pchResponseBuffer, uint unResponseBufferSize) - { - uint result = FnTable.DriverDebugRequest(unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize); - return result; - } - public EVRFirmwareError PerformFirmwareUpdate(uint unDeviceIndex) - { - EVRFirmwareError result = FnTable.PerformFirmwareUpdate(unDeviceIndex); - return result; - } - public void AcknowledgeQuit_Exiting() - { - FnTable.AcknowledgeQuit_Exiting(); - } - public void AcknowledgeQuit_UserPrompt() - { - FnTable.AcknowledgeQuit_UserPrompt(); - } - } - - - public class CVRExtendedDisplay - { - IVRExtendedDisplay FnTable; - internal CVRExtendedDisplay(IntPtr pInterface) - { - FnTable = (IVRExtendedDisplay)Marshal.PtrToStructure(pInterface, typeof(IVRExtendedDisplay)); - } - public void GetWindowBounds(ref int pnX, ref int pnY, ref uint pnWidth, ref uint pnHeight) - { - pnX = 0; - pnY = 0; - pnWidth = 0; - pnHeight = 0; - FnTable.GetWindowBounds(ref pnX, ref pnY, ref pnWidth, ref pnHeight); - } - public void GetEyeOutputViewport(EVREye eEye, ref uint pnX, ref uint pnY, ref uint pnWidth, ref uint pnHeight) - { - pnX = 0; - pnY = 0; - pnWidth = 0; - pnHeight = 0; - FnTable.GetEyeOutputViewport(eEye, ref pnX, ref pnY, ref pnWidth, ref pnHeight); - } - public void GetDXGIOutputInfo(ref int pnAdapterIndex, ref int pnAdapterOutputIndex) - { - pnAdapterIndex = 0; - pnAdapterOutputIndex = 0; - FnTable.GetDXGIOutputInfo(ref pnAdapterIndex, ref pnAdapterOutputIndex); - } - } - - - public class CVRTrackedCamera - { - IVRTrackedCamera FnTable; - internal CVRTrackedCamera(IntPtr pInterface) - { - FnTable = (IVRTrackedCamera)Marshal.PtrToStructure(pInterface, typeof(IVRTrackedCamera)); - } - public string GetCameraErrorNameFromEnum(EVRTrackedCameraError eCameraError) - { - IntPtr result = FnTable.GetCameraErrorNameFromEnum(eCameraError); - return Marshal.PtrToStringAnsi(result); - } - public EVRTrackedCameraError HasCamera(uint nDeviceIndex, ref bool pHasCamera) - { - pHasCamera = false; - EVRTrackedCameraError result = FnTable.HasCamera(nDeviceIndex, ref pHasCamera); - return result; - } - public EVRTrackedCameraError GetCameraFrameSize(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, ref uint pnWidth, ref uint pnHeight, ref uint pnFrameBufferSize) - { - pnWidth = 0; - pnHeight = 0; - pnFrameBufferSize = 0; - EVRTrackedCameraError result = FnTable.GetCameraFrameSize(nDeviceIndex, eFrameType, ref pnWidth, ref pnHeight, ref pnFrameBufferSize); - return result; - } - public EVRTrackedCameraError GetCameraIntrinsics(uint nDeviceIndex, uint nCameraIndex, EVRTrackedCameraFrameType eFrameType, ref HmdVector2_t pFocalLength, ref HmdVector2_t pCenter) - { - EVRTrackedCameraError result = FnTable.GetCameraIntrinsics(nDeviceIndex, nCameraIndex, eFrameType, ref pFocalLength, ref pCenter); - return result; - } - public EVRTrackedCameraError GetCameraProjection(uint nDeviceIndex, uint nCameraIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, ref HmdMatrix44_t pProjection) - { - EVRTrackedCameraError result = FnTable.GetCameraProjection(nDeviceIndex, nCameraIndex, eFrameType, flZNear, flZFar, ref pProjection); - return result; - } - public EVRTrackedCameraError AcquireVideoStreamingService(uint nDeviceIndex, ref ulong pHandle) - { - pHandle = 0; - EVRTrackedCameraError result = FnTable.AcquireVideoStreamingService(nDeviceIndex, ref pHandle); - return result; - } - public EVRTrackedCameraError ReleaseVideoStreamingService(ulong hTrackedCamera) - { - EVRTrackedCameraError result = FnTable.ReleaseVideoStreamingService(hTrackedCamera); - return result; - } - public EVRTrackedCameraError GetVideoStreamFrameBuffer(ulong hTrackedCamera, EVRTrackedCameraFrameType eFrameType, IntPtr pFrameBuffer, uint nFrameBufferSize, ref CameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize) - { - EVRTrackedCameraError result = FnTable.GetVideoStreamFrameBuffer(hTrackedCamera, eFrameType, pFrameBuffer, nFrameBufferSize, ref pFrameHeader, nFrameHeaderSize); - return result; - } - public EVRTrackedCameraError GetVideoStreamTextureSize(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, ref VRTextureBounds_t pTextureBounds, ref uint pnWidth, ref uint pnHeight) - { - pnWidth = 0; - pnHeight = 0; - EVRTrackedCameraError result = FnTable.GetVideoStreamTextureSize(nDeviceIndex, eFrameType, ref pTextureBounds, ref pnWidth, ref pnHeight); - return result; - } - public EVRTrackedCameraError GetVideoStreamTextureD3D11(ulong hTrackedCamera, EVRTrackedCameraFrameType eFrameType, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView, ref CameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize) - { - EVRTrackedCameraError result = FnTable.GetVideoStreamTextureD3D11(hTrackedCamera, eFrameType, pD3D11DeviceOrResource, ref ppD3D11ShaderResourceView, ref pFrameHeader, nFrameHeaderSize); - return result; - } - public EVRTrackedCameraError GetVideoStreamTextureGL(ulong hTrackedCamera, EVRTrackedCameraFrameType eFrameType, ref uint pglTextureId, ref CameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize) - { - pglTextureId = 0; - EVRTrackedCameraError result = FnTable.GetVideoStreamTextureGL(hTrackedCamera, eFrameType, ref pglTextureId, ref pFrameHeader, nFrameHeaderSize); - return result; - } - public EVRTrackedCameraError ReleaseVideoStreamTextureGL(ulong hTrackedCamera, uint glTextureId) - { - EVRTrackedCameraError result = FnTable.ReleaseVideoStreamTextureGL(hTrackedCamera, glTextureId); - return result; - } - } - - - public class CVRApplications - { - IVRApplications FnTable; - internal CVRApplications(IntPtr pInterface) - { - FnTable = (IVRApplications)Marshal.PtrToStructure(pInterface, typeof(IVRApplications)); - } - public EVRApplicationError AddApplicationManifest(string pchApplicationManifestFullPath, bool bTemporary) - { - EVRApplicationError result = FnTable.AddApplicationManifest(pchApplicationManifestFullPath, bTemporary); - return result; - } - public EVRApplicationError RemoveApplicationManifest(string pchApplicationManifestFullPath) - { - EVRApplicationError result = FnTable.RemoveApplicationManifest(pchApplicationManifestFullPath); - return result; - } - public bool IsApplicationInstalled(string pchAppKey) - { - bool result = FnTable.IsApplicationInstalled(pchAppKey); - return result; - } - public uint GetApplicationCount() - { - uint result = FnTable.GetApplicationCount(); - return result; - } - public EVRApplicationError GetApplicationKeyByIndex(uint unApplicationIndex, System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen) - { - EVRApplicationError result = FnTable.GetApplicationKeyByIndex(unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen); - return result; - } - public EVRApplicationError GetApplicationKeyByProcessId(uint unProcessId, System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen) - { - EVRApplicationError result = FnTable.GetApplicationKeyByProcessId(unProcessId, pchAppKeyBuffer, unAppKeyBufferLen); - return result; - } - public EVRApplicationError LaunchApplication(string pchAppKey) - { - EVRApplicationError result = FnTable.LaunchApplication(pchAppKey); - return result; - } - public EVRApplicationError LaunchTemplateApplication(string pchTemplateAppKey, string pchNewAppKey, AppOverrideKeys_t[] pKeys) - { - EVRApplicationError result = FnTable.LaunchTemplateApplication(pchTemplateAppKey, pchNewAppKey, pKeys, (uint)pKeys.Length); - return result; - } - public EVRApplicationError LaunchApplicationFromMimeType(string pchMimeType, string pchArgs) - { - EVRApplicationError result = FnTable.LaunchApplicationFromMimeType(pchMimeType, pchArgs); - return result; - } - public EVRApplicationError LaunchDashboardOverlay(string pchAppKey) - { - EVRApplicationError result = FnTable.LaunchDashboardOverlay(pchAppKey); - return result; - } - public bool CancelApplicationLaunch(string pchAppKey) - { - bool result = FnTable.CancelApplicationLaunch(pchAppKey); - return result; - } - public EVRApplicationError IdentifyApplication(uint unProcessId, string pchAppKey) - { - EVRApplicationError result = FnTable.IdentifyApplication(unProcessId, pchAppKey); - return result; - } - public uint GetApplicationProcessId(string pchAppKey) - { - uint result = FnTable.GetApplicationProcessId(pchAppKey); - return result; - } - public string GetApplicationsErrorNameFromEnum(EVRApplicationError error) - { - IntPtr result = FnTable.GetApplicationsErrorNameFromEnum(error); - return Marshal.PtrToStringAnsi(result); - } - public uint GetApplicationPropertyString(string pchAppKey, EVRApplicationProperty eProperty, System.Text.StringBuilder pchPropertyValueBuffer, uint unPropertyValueBufferLen, ref EVRApplicationError peError) - { - uint result = FnTable.GetApplicationPropertyString(pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, ref peError); - return result; - } - public bool GetApplicationPropertyBool(string pchAppKey, EVRApplicationProperty eProperty, ref EVRApplicationError peError) - { - bool result = FnTable.GetApplicationPropertyBool(pchAppKey, eProperty, ref peError); - return result; - } - public ulong GetApplicationPropertyUint64(string pchAppKey, EVRApplicationProperty eProperty, ref EVRApplicationError peError) - { - ulong result = FnTable.GetApplicationPropertyUint64(pchAppKey, eProperty, ref peError); - return result; - } - public EVRApplicationError SetApplicationAutoLaunch(string pchAppKey, bool bAutoLaunch) - { - EVRApplicationError result = FnTable.SetApplicationAutoLaunch(pchAppKey, bAutoLaunch); - return result; - } - public bool GetApplicationAutoLaunch(string pchAppKey) - { - bool result = FnTable.GetApplicationAutoLaunch(pchAppKey); - return result; - } - public EVRApplicationError SetDefaultApplicationForMimeType(string pchAppKey, string pchMimeType) - { - EVRApplicationError result = FnTable.SetDefaultApplicationForMimeType(pchAppKey, pchMimeType); - return result; - } - public bool GetDefaultApplicationForMimeType(string pchMimeType, System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen) - { - bool result = FnTable.GetDefaultApplicationForMimeType(pchMimeType, pchAppKeyBuffer, unAppKeyBufferLen); - return result; - } - public bool GetApplicationSupportedMimeTypes(string pchAppKey, System.Text.StringBuilder pchMimeTypesBuffer, uint unMimeTypesBuffer) - { - bool result = FnTable.GetApplicationSupportedMimeTypes(pchAppKey, pchMimeTypesBuffer, unMimeTypesBuffer); - return result; - } - public uint GetApplicationsThatSupportMimeType(string pchMimeType, System.Text.StringBuilder pchAppKeysThatSupportBuffer, uint unAppKeysThatSupportBuffer) - { - uint result = FnTable.GetApplicationsThatSupportMimeType(pchMimeType, pchAppKeysThatSupportBuffer, unAppKeysThatSupportBuffer); - return result; - } - public uint GetApplicationLaunchArguments(uint unHandle, System.Text.StringBuilder pchArgs, uint unArgs) - { - uint result = FnTable.GetApplicationLaunchArguments(unHandle, pchArgs, unArgs); - return result; - } - public EVRApplicationError GetStartingApplication(System.Text.StringBuilder pchAppKeyBuffer, uint unAppKeyBufferLen) - { - EVRApplicationError result = FnTable.GetStartingApplication(pchAppKeyBuffer, unAppKeyBufferLen); - return result; - } - public EVRApplicationTransitionState GetTransitionState() - { - EVRApplicationTransitionState result = FnTable.GetTransitionState(); - return result; - } - public EVRApplicationError PerformApplicationPrelaunchCheck(string pchAppKey) - { - EVRApplicationError result = FnTable.PerformApplicationPrelaunchCheck(pchAppKey); - return result; - } - public string GetApplicationsTransitionStateNameFromEnum(EVRApplicationTransitionState state) - { - IntPtr result = FnTable.GetApplicationsTransitionStateNameFromEnum(state); - return Marshal.PtrToStringAnsi(result); - } - public bool IsQuitUserPromptRequested() - { - bool result = FnTable.IsQuitUserPromptRequested(); - return result; - } - public EVRApplicationError LaunchInternalProcess(string pchBinaryPath, string pchArguments, string pchWorkingDirectory) - { - EVRApplicationError result = FnTable.LaunchInternalProcess(pchBinaryPath, pchArguments, pchWorkingDirectory); - return result; - } - public uint GetCurrentSceneProcessId() - { - uint result = FnTable.GetCurrentSceneProcessId(); - return result; - } - } - - - public class CVRChaperone - { - IVRChaperone FnTable; - internal CVRChaperone(IntPtr pInterface) - { - FnTable = (IVRChaperone)Marshal.PtrToStructure(pInterface, typeof(IVRChaperone)); - } - public ChaperoneCalibrationState GetCalibrationState() - { - ChaperoneCalibrationState result = FnTable.GetCalibrationState(); - return result; - } - public bool GetPlayAreaSize(ref float pSizeX, ref float pSizeZ) - { - pSizeX = 0; - pSizeZ = 0; - bool result = FnTable.GetPlayAreaSize(ref pSizeX, ref pSizeZ); - return result; - } - public bool GetPlayAreaRect(ref HmdQuad_t rect) - { - bool result = FnTable.GetPlayAreaRect(ref rect); - return result; - } - public void ReloadInfo() - { - FnTable.ReloadInfo(); - } - public void SetSceneColor(HmdColor_t color) - { - FnTable.SetSceneColor(color); - } - public void GetBoundsColor(ref HmdColor_t pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, ref HmdColor_t pOutputCameraColor) - { - FnTable.GetBoundsColor(ref pOutputColorArray, nNumOutputColors, flCollisionBoundsFadeDistance, ref pOutputCameraColor); - } - public bool AreBoundsVisible() - { - bool result = FnTable.AreBoundsVisible(); - return result; - } - public void ForceBoundsVisible(bool bForce) - { - FnTable.ForceBoundsVisible(bForce); - } - } - - - public class CVRChaperoneSetup - { - IVRChaperoneSetup FnTable; - internal CVRChaperoneSetup(IntPtr pInterface) - { - FnTable = (IVRChaperoneSetup)Marshal.PtrToStructure(pInterface, typeof(IVRChaperoneSetup)); - } - public bool CommitWorkingCopy(EChaperoneConfigFile configFile) - { - bool result = FnTable.CommitWorkingCopy(configFile); - return result; - } - public void RevertWorkingCopy() - { - FnTable.RevertWorkingCopy(); - } - public bool GetWorkingPlayAreaSize(ref float pSizeX, ref float pSizeZ) - { - pSizeX = 0; - pSizeZ = 0; - bool result = FnTable.GetWorkingPlayAreaSize(ref pSizeX, ref pSizeZ); - return result; - } - public bool GetWorkingPlayAreaRect(ref HmdQuad_t rect) - { - bool result = FnTable.GetWorkingPlayAreaRect(ref rect); - return result; - } - public bool GetWorkingCollisionBoundsInfo(out HmdQuad_t[] pQuadsBuffer) - { - uint punQuadsCount = 0; - bool result = FnTable.GetWorkingCollisionBoundsInfo(null, ref punQuadsCount); - pQuadsBuffer = new HmdQuad_t[punQuadsCount]; - result = FnTable.GetWorkingCollisionBoundsInfo(pQuadsBuffer, ref punQuadsCount); - return result; - } - public bool GetLiveCollisionBoundsInfo(out HmdQuad_t[] pQuadsBuffer) - { - uint punQuadsCount = 0; - bool result = FnTable.GetLiveCollisionBoundsInfo(null, ref punQuadsCount); - pQuadsBuffer = new HmdQuad_t[punQuadsCount]; - result = FnTable.GetLiveCollisionBoundsInfo(pQuadsBuffer, ref punQuadsCount); - return result; - } - public bool GetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose) - { - bool result = FnTable.GetWorkingSeatedZeroPoseToRawTrackingPose(ref pmatSeatedZeroPoseToRawTrackingPose); - return result; - } - public bool GetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose) - { - bool result = FnTable.GetWorkingStandingZeroPoseToRawTrackingPose(ref pmatStandingZeroPoseToRawTrackingPose); - return result; - } - public void SetWorkingPlayAreaSize(float sizeX, float sizeZ) - { - FnTable.SetWorkingPlayAreaSize(sizeX, sizeZ); - } - public void SetWorkingCollisionBoundsInfo(HmdQuad_t[] pQuadsBuffer) - { - FnTable.SetWorkingCollisionBoundsInfo(pQuadsBuffer, (uint)pQuadsBuffer.Length); - } - public void SetWorkingPerimeter(HmdVector2_t[] pPointBuffer) - { - FnTable.SetWorkingPerimeter(pPointBuffer, (uint)pPointBuffer.Length); - } - public void SetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose) - { - FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose(ref pMatSeatedZeroPoseToRawTrackingPose); - } - public void SetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose) - { - FnTable.SetWorkingStandingZeroPoseToRawTrackingPose(ref pMatStandingZeroPoseToRawTrackingPose); - } - public void ReloadFromDisk(EChaperoneConfigFile configFile) - { - FnTable.ReloadFromDisk(configFile); - } - public bool GetLiveSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose) - { - bool result = FnTable.GetLiveSeatedZeroPoseToRawTrackingPose(ref pmatSeatedZeroPoseToRawTrackingPose); - return result; - } - public bool ExportLiveToBuffer(System.Text.StringBuilder pBuffer, ref uint pnBufferLength) - { - pnBufferLength = 0; - bool result = FnTable.ExportLiveToBuffer(pBuffer, ref pnBufferLength); - return result; - } - public bool ImportFromBufferToWorking(string pBuffer, uint nImportFlags) - { - bool result = FnTable.ImportFromBufferToWorking(pBuffer, nImportFlags); - return result; - } - public void ShowWorkingSetPreview() - { - FnTable.ShowWorkingSetPreview(); - } - public void HideWorkingSetPreview() - { - FnTable.HideWorkingSetPreview(); - } - } - - - public class CVRCompositor - { - IVRCompositor FnTable; - internal CVRCompositor(IntPtr pInterface) - { - FnTable = (IVRCompositor)Marshal.PtrToStructure(pInterface, typeof(IVRCompositor)); - } - public void SetTrackingSpace(ETrackingUniverseOrigin eOrigin) - { - FnTable.SetTrackingSpace(eOrigin); - } - public ETrackingUniverseOrigin GetTrackingSpace() - { - ETrackingUniverseOrigin result = FnTable.GetTrackingSpace(); - return result; - } - public EVRCompositorError WaitGetPoses(TrackedDevicePose_t[] pRenderPoseArray, TrackedDevicePose_t[] pGamePoseArray) - { - EVRCompositorError result = FnTable.WaitGetPoses(pRenderPoseArray, (uint)pRenderPoseArray.Length, pGamePoseArray, (uint)pGamePoseArray.Length); - return result; - } - public EVRCompositorError GetLastPoses(TrackedDevicePose_t[] pRenderPoseArray, TrackedDevicePose_t[] pGamePoseArray) - { - EVRCompositorError result = FnTable.GetLastPoses(pRenderPoseArray, (uint)pRenderPoseArray.Length, pGamePoseArray, (uint)pGamePoseArray.Length); - return result; - } - public EVRCompositorError GetLastPoseForTrackedDeviceIndex(uint unDeviceIndex, ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pOutputGamePose) - { - EVRCompositorError result = FnTable.GetLastPoseForTrackedDeviceIndex(unDeviceIndex, ref pOutputPose, ref pOutputGamePose); - return result; - } - public EVRCompositorError Submit(EVREye eEye, ref Texture_t pTexture, ref VRTextureBounds_t pBounds, EVRSubmitFlags nSubmitFlags) - { - EVRCompositorError result = FnTable.Submit(eEye, ref pTexture, ref pBounds, nSubmitFlags); - return result; - } - public void ClearLastSubmittedFrame() - { - FnTable.ClearLastSubmittedFrame(); - } - public void PostPresentHandoff() - { - FnTable.PostPresentHandoff(); - } - public bool GetFrameTiming(ref Compositor_FrameTiming pTiming, uint unFramesAgo) - { - bool result = FnTable.GetFrameTiming(ref pTiming, unFramesAgo); - return result; - } - public uint GetFrameTimings(ref Compositor_FrameTiming pTiming, uint nFrames) - { - uint result = FnTable.GetFrameTimings(ref pTiming, nFrames); - return result; - } - public float GetFrameTimeRemaining() - { - float result = FnTable.GetFrameTimeRemaining(); - return result; - } - public void GetCumulativeStats(ref Compositor_CumulativeStats pStats, uint nStatsSizeInBytes) - { - FnTable.GetCumulativeStats(ref pStats, nStatsSizeInBytes); - } - public void FadeToColor(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground) - { - FnTable.FadeToColor(fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground); - } - public HmdColor_t GetCurrentFadeColor(bool bBackground) - { - HmdColor_t result = FnTable.GetCurrentFadeColor(bBackground); - return result; - } - public void FadeGrid(float fSeconds, bool bFadeIn) - { - FnTable.FadeGrid(fSeconds, bFadeIn); - } - public float GetCurrentGridAlpha() - { - float result = FnTable.GetCurrentGridAlpha(); - return result; - } - public EVRCompositorError SetSkyboxOverride(Texture_t[] pTextures) - { - EVRCompositorError result = FnTable.SetSkyboxOverride(pTextures, (uint)pTextures.Length); - return result; - } - public void ClearSkyboxOverride() - { - FnTable.ClearSkyboxOverride(); - } - public void CompositorBringToFront() - { - FnTable.CompositorBringToFront(); - } - public void CompositorGoToBack() - { - FnTable.CompositorGoToBack(); - } - public void CompositorQuit() - { - FnTable.CompositorQuit(); - } - public bool IsFullscreen() - { - bool result = FnTable.IsFullscreen(); - return result; - } - public uint GetCurrentSceneFocusProcess() - { - uint result = FnTable.GetCurrentSceneFocusProcess(); - return result; - } - public uint GetLastFrameRenderer() - { - uint result = FnTable.GetLastFrameRenderer(); - return result; - } - public bool CanRenderScene() - { - bool result = FnTable.CanRenderScene(); - return result; - } - public void ShowMirrorWindow() - { - FnTable.ShowMirrorWindow(); - } - public void HideMirrorWindow() - { - FnTable.HideMirrorWindow(); - } - public bool IsMirrorWindowVisible() - { - bool result = FnTable.IsMirrorWindowVisible(); - return result; - } - public void CompositorDumpImages() - { - FnTable.CompositorDumpImages(); - } - public bool ShouldAppRenderWithLowResources() - { - bool result = FnTable.ShouldAppRenderWithLowResources(); - return result; - } - public void ForceInterleavedReprojectionOn(bool bOverride) - { - FnTable.ForceInterleavedReprojectionOn(bOverride); - } - public void ForceReconnectProcess() - { - FnTable.ForceReconnectProcess(); - } - public void SuspendRendering(bool bSuspend) - { - FnTable.SuspendRendering(bSuspend); - } - public EVRCompositorError GetMirrorTextureD3D11(EVREye eEye, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView) - { - EVRCompositorError result = FnTable.GetMirrorTextureD3D11(eEye, pD3D11DeviceOrResource, ref ppD3D11ShaderResourceView); - return result; - } - public void ReleaseMirrorTextureD3D11(IntPtr pD3D11ShaderResourceView) - { - FnTable.ReleaseMirrorTextureD3D11(pD3D11ShaderResourceView); - } - public EVRCompositorError GetMirrorTextureGL(EVREye eEye, ref uint pglTextureId, IntPtr pglSharedTextureHandle) - { - pglTextureId = 0; - EVRCompositorError result = FnTable.GetMirrorTextureGL(eEye, ref pglTextureId, pglSharedTextureHandle); - return result; - } - public bool ReleaseSharedGLTexture(uint glTextureId, IntPtr glSharedTextureHandle) - { - bool result = FnTable.ReleaseSharedGLTexture(glTextureId, glSharedTextureHandle); - return result; - } - public void LockGLSharedTextureForAccess(IntPtr glSharedTextureHandle) - { - FnTable.LockGLSharedTextureForAccess(glSharedTextureHandle); - } - public void UnlockGLSharedTextureForAccess(IntPtr glSharedTextureHandle) - { - FnTable.UnlockGLSharedTextureForAccess(glSharedTextureHandle); - } - public uint GetVulkanInstanceExtensionsRequired(System.Text.StringBuilder pchValue, uint unBufferSize) - { - uint result = FnTable.GetVulkanInstanceExtensionsRequired(pchValue, unBufferSize); - return result; - } - public uint GetVulkanDeviceExtensionsRequired(IntPtr pPhysicalDevice, System.Text.StringBuilder pchValue, uint unBufferSize) - { - uint result = FnTable.GetVulkanDeviceExtensionsRequired(pPhysicalDevice, pchValue, unBufferSize); - return result; - } - public void SetExplicitTimingMode(EVRCompositorTimingMode eTimingMode) - { - FnTable.SetExplicitTimingMode(eTimingMode); - } - public EVRCompositorError SubmitExplicitTimingData() - { - EVRCompositorError result = FnTable.SubmitExplicitTimingData(); - return result; - } - public bool IsMotionSmoothingEnabled() - { - bool result = FnTable.IsMotionSmoothingEnabled(); - return result; - } - } - - - public class CVROverlay - { - IVROverlay FnTable; - internal CVROverlay(IntPtr pInterface) - { - FnTable = (IVROverlay)Marshal.PtrToStructure(pInterface, typeof(IVROverlay)); - } - public EVROverlayError FindOverlay(string pchOverlayKey, ref ulong pOverlayHandle) - { - pOverlayHandle = 0; - EVROverlayError result = FnTable.FindOverlay(pchOverlayKey, ref pOverlayHandle); - return result; - } - public EVROverlayError CreateOverlay(string pchOverlayKey, string pchOverlayName, ref ulong pOverlayHandle) - { - pOverlayHandle = 0; - EVROverlayError result = FnTable.CreateOverlay(pchOverlayKey, pchOverlayName, ref pOverlayHandle); - return result; - } - public EVROverlayError DestroyOverlay(ulong ulOverlayHandle) - { - EVROverlayError result = FnTable.DestroyOverlay(ulOverlayHandle); - return result; - } - public EVROverlayError SetHighQualityOverlay(ulong ulOverlayHandle) - { - EVROverlayError result = FnTable.SetHighQualityOverlay(ulOverlayHandle); - return result; - } - public ulong GetHighQualityOverlay() - { - ulong result = FnTable.GetHighQualityOverlay(); - return result; - } - public uint GetOverlayKey(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EVROverlayError pError) - { - uint result = FnTable.GetOverlayKey(ulOverlayHandle, pchValue, unBufferSize, ref pError); - return result; - } - public uint GetOverlayName(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EVROverlayError pError) - { - uint result = FnTable.GetOverlayName(ulOverlayHandle, pchValue, unBufferSize, ref pError); - return result; - } - public EVROverlayError SetOverlayName(ulong ulOverlayHandle, string pchName) - { - EVROverlayError result = FnTable.SetOverlayName(ulOverlayHandle, pchName); - return result; - } - public EVROverlayError GetOverlayImageData(ulong ulOverlayHandle, IntPtr pvBuffer, uint unBufferSize, ref uint punWidth, ref uint punHeight) - { - punWidth = 0; - punHeight = 0; - EVROverlayError result = FnTable.GetOverlayImageData(ulOverlayHandle, pvBuffer, unBufferSize, ref punWidth, ref punHeight); - return result; - } - public string GetOverlayErrorNameFromEnum(EVROverlayError error) - { - IntPtr result = FnTable.GetOverlayErrorNameFromEnum(error); - return Marshal.PtrToStringAnsi(result); - } - public EVROverlayError SetOverlayRenderingPid(ulong ulOverlayHandle, uint unPID) - { - EVROverlayError result = FnTable.SetOverlayRenderingPid(ulOverlayHandle, unPID); - return result; - } - public uint GetOverlayRenderingPid(ulong ulOverlayHandle) - { - uint result = FnTable.GetOverlayRenderingPid(ulOverlayHandle); - return result; - } - public EVROverlayError SetOverlayFlag(ulong ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled) - { - EVROverlayError result = FnTable.SetOverlayFlag(ulOverlayHandle, eOverlayFlag, bEnabled); - return result; - } - public EVROverlayError GetOverlayFlag(ulong ulOverlayHandle, VROverlayFlags eOverlayFlag, ref bool pbEnabled) - { - pbEnabled = false; - EVROverlayError result = FnTable.GetOverlayFlag(ulOverlayHandle, eOverlayFlag, ref pbEnabled); - return result; - } - public EVROverlayError SetOverlayColor(ulong ulOverlayHandle, float fRed, float fGreen, float fBlue) - { - EVROverlayError result = FnTable.SetOverlayColor(ulOverlayHandle, fRed, fGreen, fBlue); - return result; - } - public EVROverlayError GetOverlayColor(ulong ulOverlayHandle, ref float pfRed, ref float pfGreen, ref float pfBlue) - { - pfRed = 0; - pfGreen = 0; - pfBlue = 0; - EVROverlayError result = FnTable.GetOverlayColor(ulOverlayHandle, ref pfRed, ref pfGreen, ref pfBlue); - return result; - } - public EVROverlayError SetOverlayAlpha(ulong ulOverlayHandle, float fAlpha) - { - EVROverlayError result = FnTable.SetOverlayAlpha(ulOverlayHandle, fAlpha); - return result; - } - public EVROverlayError GetOverlayAlpha(ulong ulOverlayHandle, ref float pfAlpha) - { - pfAlpha = 0; - EVROverlayError result = FnTable.GetOverlayAlpha(ulOverlayHandle, ref pfAlpha); - return result; - } - public EVROverlayError SetOverlayTexelAspect(ulong ulOverlayHandle, float fTexelAspect) - { - EVROverlayError result = FnTable.SetOverlayTexelAspect(ulOverlayHandle, fTexelAspect); - return result; - } - public EVROverlayError GetOverlayTexelAspect(ulong ulOverlayHandle, ref float pfTexelAspect) - { - pfTexelAspect = 0; - EVROverlayError result = FnTable.GetOverlayTexelAspect(ulOverlayHandle, ref pfTexelAspect); - return result; - } - public EVROverlayError SetOverlaySortOrder(ulong ulOverlayHandle, uint unSortOrder) - { - EVROverlayError result = FnTable.SetOverlaySortOrder(ulOverlayHandle, unSortOrder); - return result; - } - public EVROverlayError GetOverlaySortOrder(ulong ulOverlayHandle, ref uint punSortOrder) - { - punSortOrder = 0; - EVROverlayError result = FnTable.GetOverlaySortOrder(ulOverlayHandle, ref punSortOrder); - return result; - } - public EVROverlayError SetOverlayWidthInMeters(ulong ulOverlayHandle, float fWidthInMeters) - { - EVROverlayError result = FnTable.SetOverlayWidthInMeters(ulOverlayHandle, fWidthInMeters); - return result; - } - public EVROverlayError GetOverlayWidthInMeters(ulong ulOverlayHandle, ref float pfWidthInMeters) - { - pfWidthInMeters = 0; - EVROverlayError result = FnTable.GetOverlayWidthInMeters(ulOverlayHandle, ref pfWidthInMeters); - return result; - } - public EVROverlayError SetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters) - { - EVROverlayError result = FnTable.SetOverlayAutoCurveDistanceRangeInMeters(ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters); - return result; - } - public EVROverlayError GetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, ref float pfMinDistanceInMeters, ref float pfMaxDistanceInMeters) - { - pfMinDistanceInMeters = 0; - pfMaxDistanceInMeters = 0; - EVROverlayError result = FnTable.GetOverlayAutoCurveDistanceRangeInMeters(ulOverlayHandle, ref pfMinDistanceInMeters, ref pfMaxDistanceInMeters); - return result; - } - public EVROverlayError SetOverlayTextureColorSpace(ulong ulOverlayHandle, EColorSpace eTextureColorSpace) - { - EVROverlayError result = FnTable.SetOverlayTextureColorSpace(ulOverlayHandle, eTextureColorSpace); - return result; - } - public EVROverlayError GetOverlayTextureColorSpace(ulong ulOverlayHandle, ref EColorSpace peTextureColorSpace) - { - EVROverlayError result = FnTable.GetOverlayTextureColorSpace(ulOverlayHandle, ref peTextureColorSpace); - return result; - } - public EVROverlayError SetOverlayTextureBounds(ulong ulOverlayHandle, ref VRTextureBounds_t pOverlayTextureBounds) - { - EVROverlayError result = FnTable.SetOverlayTextureBounds(ulOverlayHandle, ref pOverlayTextureBounds); - return result; - } - public EVROverlayError GetOverlayTextureBounds(ulong ulOverlayHandle, ref VRTextureBounds_t pOverlayTextureBounds) - { - EVROverlayError result = FnTable.GetOverlayTextureBounds(ulOverlayHandle, ref pOverlayTextureBounds); - return result; - } - public uint GetOverlayRenderModel(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref HmdColor_t pColor, ref EVROverlayError pError) - { - uint result = FnTable.GetOverlayRenderModel(ulOverlayHandle, pchValue, unBufferSize, ref pColor, ref pError); - return result; - } - public EVROverlayError SetOverlayRenderModel(ulong ulOverlayHandle, string pchRenderModel, ref HmdColor_t pColor) - { - EVROverlayError result = FnTable.SetOverlayRenderModel(ulOverlayHandle, pchRenderModel, ref pColor); - return result; - } - public EVROverlayError GetOverlayTransformType(ulong ulOverlayHandle, ref VROverlayTransformType peTransformType) - { - EVROverlayError result = FnTable.GetOverlayTransformType(ulOverlayHandle, ref peTransformType); - return result; - } - public EVROverlayError SetOverlayTransformAbsolute(ulong ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform) - { - EVROverlayError result = FnTable.SetOverlayTransformAbsolute(ulOverlayHandle, eTrackingOrigin, ref pmatTrackingOriginToOverlayTransform); - return result; - } - public EVROverlayError GetOverlayTransformAbsolute(ulong ulOverlayHandle, ref ETrackingUniverseOrigin peTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform) - { - EVROverlayError result = FnTable.GetOverlayTransformAbsolute(ulOverlayHandle, ref peTrackingOrigin, ref pmatTrackingOriginToOverlayTransform); - return result; - } - public EVROverlayError SetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, uint unTrackedDevice, ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform) - { - EVROverlayError result = FnTable.SetOverlayTransformTrackedDeviceRelative(ulOverlayHandle, unTrackedDevice, ref pmatTrackedDeviceToOverlayTransform); - return result; - } - public EVROverlayError GetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, ref uint punTrackedDevice, ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform) - { - punTrackedDevice = 0; - EVROverlayError result = FnTable.GetOverlayTransformTrackedDeviceRelative(ulOverlayHandle, ref punTrackedDevice, ref pmatTrackedDeviceToOverlayTransform); - return result; - } - public EVROverlayError SetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, uint unDeviceIndex, string pchComponentName) - { - EVROverlayError result = FnTable.SetOverlayTransformTrackedDeviceComponent(ulOverlayHandle, unDeviceIndex, pchComponentName); - return result; - } - public EVROverlayError GetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, ref uint punDeviceIndex, System.Text.StringBuilder pchComponentName, uint unComponentNameSize) - { - punDeviceIndex = 0; - EVROverlayError result = FnTable.GetOverlayTransformTrackedDeviceComponent(ulOverlayHandle, ref punDeviceIndex, pchComponentName, unComponentNameSize); - return result; - } - public EVROverlayError GetOverlayTransformOverlayRelative(ulong ulOverlayHandle, ref ulong ulOverlayHandleParent, ref HmdMatrix34_t pmatParentOverlayToOverlayTransform) - { - ulOverlayHandleParent = 0; - EVROverlayError result = FnTable.GetOverlayTransformOverlayRelative(ulOverlayHandle, ref ulOverlayHandleParent, ref pmatParentOverlayToOverlayTransform); - return result; - } - public EVROverlayError SetOverlayTransformOverlayRelative(ulong ulOverlayHandle, ulong ulOverlayHandleParent, ref HmdMatrix34_t pmatParentOverlayToOverlayTransform) - { - EVROverlayError result = FnTable.SetOverlayTransformOverlayRelative(ulOverlayHandle, ulOverlayHandleParent, ref pmatParentOverlayToOverlayTransform); - return result; - } - public EVROverlayError ShowOverlay(ulong ulOverlayHandle) - { - EVROverlayError result = FnTable.ShowOverlay(ulOverlayHandle); - return result; - } - public EVROverlayError HideOverlay(ulong ulOverlayHandle) - { - EVROverlayError result = FnTable.HideOverlay(ulOverlayHandle); - return result; - } - public bool IsOverlayVisible(ulong ulOverlayHandle) - { - bool result = FnTable.IsOverlayVisible(ulOverlayHandle); - return result; - } - public EVROverlayError GetTransformForOverlayCoordinates(ulong ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, ref HmdMatrix34_t pmatTransform) - { - EVROverlayError result = FnTable.GetTransformForOverlayCoordinates(ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, ref pmatTransform); - return result; - } - // This is a terrible hack to workaround the fact that VRControllerState_t and VREvent_t were - // originally mis-compiled with the wrong packing for Linux and OSX. - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _PollNextOverlayEventPacked(ulong ulOverlayHandle, ref VREvent_t_Packed pEvent, uint uncbVREvent); - [StructLayout(LayoutKind.Explicit)] - struct PollNextOverlayEventUnion - { - [FieldOffset(0)] - public IVROverlay._PollNextOverlayEvent pPollNextOverlayEvent; - [FieldOffset(0)] - public _PollNextOverlayEventPacked pPollNextOverlayEventPacked; - } - public bool PollNextOverlayEvent(ulong ulOverlayHandle, ref VREvent_t pEvent, uint uncbVREvent) - { -#if !UNITY_METRO - if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) || - (System.Environment.OSVersion.Platform == System.PlatformID.Unix)) - { - PollNextOverlayEventUnion u; - VREvent_t_Packed event_packed = new VREvent_t_Packed(); - u.pPollNextOverlayEventPacked = null; - u.pPollNextOverlayEvent = FnTable.PollNextOverlayEvent; - bool packed_result = u.pPollNextOverlayEventPacked(ulOverlayHandle, ref event_packed, (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VREvent_t_Packed))); - - event_packed.Unpack(ref pEvent); - return packed_result; - } -#endif - bool result = FnTable.PollNextOverlayEvent(ulOverlayHandle, ref pEvent, uncbVREvent); - return result; - } - public EVROverlayError GetOverlayInputMethod(ulong ulOverlayHandle, ref VROverlayInputMethod peInputMethod) - { - EVROverlayError result = FnTable.GetOverlayInputMethod(ulOverlayHandle, ref peInputMethod); - return result; - } - public EVROverlayError SetOverlayInputMethod(ulong ulOverlayHandle, VROverlayInputMethod eInputMethod) - { - EVROverlayError result = FnTable.SetOverlayInputMethod(ulOverlayHandle, eInputMethod); - return result; - } - public EVROverlayError GetOverlayMouseScale(ulong ulOverlayHandle, ref HmdVector2_t pvecMouseScale) - { - EVROverlayError result = FnTable.GetOverlayMouseScale(ulOverlayHandle, ref pvecMouseScale); - return result; - } - public EVROverlayError SetOverlayMouseScale(ulong ulOverlayHandle, ref HmdVector2_t pvecMouseScale) - { - EVROverlayError result = FnTable.SetOverlayMouseScale(ulOverlayHandle, ref pvecMouseScale); - return result; - } - public bool ComputeOverlayIntersection(ulong ulOverlayHandle, ref VROverlayIntersectionParams_t pParams, ref VROverlayIntersectionResults_t pResults) - { - bool result = FnTable.ComputeOverlayIntersection(ulOverlayHandle, ref pParams, ref pResults); - return result; - } - public bool IsHoverTargetOverlay(ulong ulOverlayHandle) - { - bool result = FnTable.IsHoverTargetOverlay(ulOverlayHandle); - return result; - } - public ulong GetGamepadFocusOverlay() - { - ulong result = FnTable.GetGamepadFocusOverlay(); - return result; - } - public EVROverlayError SetGamepadFocusOverlay(ulong ulNewFocusOverlay) - { - EVROverlayError result = FnTable.SetGamepadFocusOverlay(ulNewFocusOverlay); - return result; - } - public EVROverlayError SetOverlayNeighbor(EOverlayDirection eDirection, ulong ulFrom, ulong ulTo) - { - EVROverlayError result = FnTable.SetOverlayNeighbor(eDirection, ulFrom, ulTo); - return result; - } - public EVROverlayError MoveGamepadFocusToNeighbor(EOverlayDirection eDirection, ulong ulFrom) - { - EVROverlayError result = FnTable.MoveGamepadFocusToNeighbor(eDirection, ulFrom); - return result; - } - public EVROverlayError SetOverlayDualAnalogTransform(ulong ulOverlay, EDualAnalogWhich eWhich, ref HmdVector2_t pvCenter, float fRadius) - { - EVROverlayError result = FnTable.SetOverlayDualAnalogTransform(ulOverlay, eWhich, ref pvCenter, fRadius); - return result; - } - public EVROverlayError GetOverlayDualAnalogTransform(ulong ulOverlay, EDualAnalogWhich eWhich, ref HmdVector2_t pvCenter, ref float pfRadius) - { - pfRadius = 0; - EVROverlayError result = FnTable.GetOverlayDualAnalogTransform(ulOverlay, eWhich, ref pvCenter, ref pfRadius); - return result; - } - public EVROverlayError SetOverlayTexture(ulong ulOverlayHandle, ref Texture_t pTexture) - { - EVROverlayError result = FnTable.SetOverlayTexture(ulOverlayHandle, ref pTexture); - return result; - } - public EVROverlayError ClearOverlayTexture(ulong ulOverlayHandle) - { - EVROverlayError result = FnTable.ClearOverlayTexture(ulOverlayHandle); - return result; - } - public EVROverlayError SetOverlayRaw(ulong ulOverlayHandle, IntPtr pvBuffer, uint unWidth, uint unHeight, uint unDepth) - { - EVROverlayError result = FnTable.SetOverlayRaw(ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth); - return result; - } - public EVROverlayError SetOverlayFromFile(ulong ulOverlayHandle, string pchFilePath) - { - EVROverlayError result = FnTable.SetOverlayFromFile(ulOverlayHandle, pchFilePath); - return result; - } - public EVROverlayError GetOverlayTexture(ulong ulOverlayHandle, ref IntPtr pNativeTextureHandle, IntPtr pNativeTextureRef, ref uint pWidth, ref uint pHeight, ref uint pNativeFormat, ref ETextureType pAPIType, ref EColorSpace pColorSpace, ref VRTextureBounds_t pTextureBounds) - { - pWidth = 0; - pHeight = 0; - pNativeFormat = 0; - EVROverlayError result = FnTable.GetOverlayTexture(ulOverlayHandle, ref pNativeTextureHandle, pNativeTextureRef, ref pWidth, ref pHeight, ref pNativeFormat, ref pAPIType, ref pColorSpace, ref pTextureBounds); - return result; - } - public EVROverlayError ReleaseNativeOverlayHandle(ulong ulOverlayHandle, IntPtr pNativeTextureHandle) - { - EVROverlayError result = FnTable.ReleaseNativeOverlayHandle(ulOverlayHandle, pNativeTextureHandle); - return result; - } - public EVROverlayError GetOverlayTextureSize(ulong ulOverlayHandle, ref uint pWidth, ref uint pHeight) - { - pWidth = 0; - pHeight = 0; - EVROverlayError result = FnTable.GetOverlayTextureSize(ulOverlayHandle, ref pWidth, ref pHeight); - return result; - } - public EVROverlayError CreateDashboardOverlay(string pchOverlayKey, string pchOverlayFriendlyName, ref ulong pMainHandle, ref ulong pThumbnailHandle) - { - pMainHandle = 0; - pThumbnailHandle = 0; - EVROverlayError result = FnTable.CreateDashboardOverlay(pchOverlayKey, pchOverlayFriendlyName, ref pMainHandle, ref pThumbnailHandle); - return result; - } - public bool IsDashboardVisible() - { - bool result = FnTable.IsDashboardVisible(); - return result; - } - public bool IsActiveDashboardOverlay(ulong ulOverlayHandle) - { - bool result = FnTable.IsActiveDashboardOverlay(ulOverlayHandle); - return result; - } - public EVROverlayError SetDashboardOverlaySceneProcess(ulong ulOverlayHandle, uint unProcessId) - { - EVROverlayError result = FnTable.SetDashboardOverlaySceneProcess(ulOverlayHandle, unProcessId); - return result; - } - public EVROverlayError GetDashboardOverlaySceneProcess(ulong ulOverlayHandle, ref uint punProcessId) - { - punProcessId = 0; - EVROverlayError result = FnTable.GetDashboardOverlaySceneProcess(ulOverlayHandle, ref punProcessId); - return result; - } - public void ShowDashboard(string pchOverlayToShow) - { - FnTable.ShowDashboard(pchOverlayToShow); - } - public uint GetPrimaryDashboardDevice() - { - uint result = FnTable.GetPrimaryDashboardDevice(); - return result; - } - public EVROverlayError ShowKeyboard(int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText, bool bUseMinimalMode, ulong uUserValue) - { - EVROverlayError result = FnTable.ShowKeyboard(eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue); - return result; - } - public EVROverlayError ShowKeyboardForOverlay(ulong ulOverlayHandle, int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText, bool bUseMinimalMode, ulong uUserValue) - { - EVROverlayError result = FnTable.ShowKeyboardForOverlay(ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue); - return result; - } - public uint GetKeyboardText(System.Text.StringBuilder pchText, uint cchText) - { - uint result = FnTable.GetKeyboardText(pchText, cchText); - return result; - } - public void HideKeyboard() - { - FnTable.HideKeyboard(); - } - public void SetKeyboardTransformAbsolute(ETrackingUniverseOrigin eTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToKeyboardTransform) - { - FnTable.SetKeyboardTransformAbsolute(eTrackingOrigin, ref pmatTrackingOriginToKeyboardTransform); - } - public void SetKeyboardPositionForOverlay(ulong ulOverlayHandle, HmdRect2_t avoidRect) - { - FnTable.SetKeyboardPositionForOverlay(ulOverlayHandle, avoidRect); - } - public EVROverlayError SetOverlayIntersectionMask(ulong ulOverlayHandle, ref VROverlayIntersectionMaskPrimitive_t pMaskPrimitives, uint unNumMaskPrimitives, uint unPrimitiveSize) - { - EVROverlayError result = FnTable.SetOverlayIntersectionMask(ulOverlayHandle, ref pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize); - return result; - } - public EVROverlayError GetOverlayFlags(ulong ulOverlayHandle, ref uint pFlags) - { - pFlags = 0; - EVROverlayError result = FnTable.GetOverlayFlags(ulOverlayHandle, ref pFlags); - return result; - } - public VRMessageOverlayResponse ShowMessageOverlay(string pchText, string pchCaption, string pchButton0Text, string pchButton1Text, string pchButton2Text, string pchButton3Text) - { - VRMessageOverlayResponse result = FnTable.ShowMessageOverlay(pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text); - return result; - } - public void CloseMessageOverlay() - { - FnTable.CloseMessageOverlay(); - } - } - - - public class CVRRenderModels - { - IVRRenderModels FnTable; - internal CVRRenderModels(IntPtr pInterface) - { - FnTable = (IVRRenderModels)Marshal.PtrToStructure(pInterface, typeof(IVRRenderModels)); - } - public EVRRenderModelError LoadRenderModel_Async(string pchRenderModelName, ref IntPtr ppRenderModel) - { - EVRRenderModelError result = FnTable.LoadRenderModel_Async(pchRenderModelName, ref ppRenderModel); - return result; - } - public void FreeRenderModel(IntPtr pRenderModel) - { - FnTable.FreeRenderModel(pRenderModel); - } - public EVRRenderModelError LoadTexture_Async(int textureId, ref IntPtr ppTexture) - { - EVRRenderModelError result = FnTable.LoadTexture_Async(textureId, ref ppTexture); - return result; - } - public void FreeTexture(IntPtr pTexture) - { - FnTable.FreeTexture(pTexture); - } - public EVRRenderModelError LoadTextureD3D11_Async(int textureId, IntPtr pD3D11Device, ref IntPtr ppD3D11Texture2D) - { - EVRRenderModelError result = FnTable.LoadTextureD3D11_Async(textureId, pD3D11Device, ref ppD3D11Texture2D); - return result; - } - public EVRRenderModelError LoadIntoTextureD3D11_Async(int textureId, IntPtr pDstTexture) - { - EVRRenderModelError result = FnTable.LoadIntoTextureD3D11_Async(textureId, pDstTexture); - return result; - } - public void FreeTextureD3D11(IntPtr pD3D11Texture2D) - { - FnTable.FreeTextureD3D11(pD3D11Texture2D); - } - public uint GetRenderModelName(uint unRenderModelIndex, System.Text.StringBuilder pchRenderModelName, uint unRenderModelNameLen) - { - uint result = FnTable.GetRenderModelName(unRenderModelIndex, pchRenderModelName, unRenderModelNameLen); - return result; - } - public uint GetRenderModelCount() - { - uint result = FnTable.GetRenderModelCount(); - return result; - } - public uint GetComponentCount(string pchRenderModelName) - { - uint result = FnTable.GetComponentCount(pchRenderModelName); - return result; - } - public uint GetComponentName(string pchRenderModelName, uint unComponentIndex, System.Text.StringBuilder pchComponentName, uint unComponentNameLen) - { - uint result = FnTable.GetComponentName(pchRenderModelName, unComponentIndex, pchComponentName, unComponentNameLen); - return result; - } - public ulong GetComponentButtonMask(string pchRenderModelName, string pchComponentName) - { - ulong result = FnTable.GetComponentButtonMask(pchRenderModelName, pchComponentName); - return result; - } - public uint GetComponentRenderModelName(string pchRenderModelName, string pchComponentName, System.Text.StringBuilder pchComponentRenderModelName, uint unComponentRenderModelNameLen) - { - uint result = FnTable.GetComponentRenderModelName(pchRenderModelName, pchComponentName, pchComponentRenderModelName, unComponentRenderModelNameLen); - return result; - } - public bool GetComponentStateForDevicePath(string pchRenderModelName, string pchComponentName, ulong devicePath, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState) - { - bool result = FnTable.GetComponentStateForDevicePath(pchRenderModelName, pchComponentName, devicePath, ref pState, ref pComponentState); - return result; - } - // This is a terrible hack to workaround the fact that VRControllerState_t and VREvent_t were - // originally mis-compiled with the wrong packing for Linux and OSX. - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - internal delegate bool _GetComponentStatePacked(string pchRenderModelName, string pchComponentName, ref VRControllerState_t_Packed pControllerState, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState); - [StructLayout(LayoutKind.Explicit)] - struct GetComponentStateUnion - { - [FieldOffset(0)] - public IVRRenderModels._GetComponentState pGetComponentState; - [FieldOffset(0)] - public _GetComponentStatePacked pGetComponentStatePacked; - } - public bool GetComponentState(string pchRenderModelName, string pchComponentName, ref VRControllerState_t pControllerState, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState) - { -#if !UNITY_METRO - if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) || - (System.Environment.OSVersion.Platform == System.PlatformID.Unix)) - { - GetComponentStateUnion u; - VRControllerState_t_Packed state_packed = new VRControllerState_t_Packed(pControllerState); - u.pGetComponentStatePacked = null; - u.pGetComponentState = FnTable.GetComponentState; - bool packed_result = u.pGetComponentStatePacked(pchRenderModelName, pchComponentName, ref state_packed, ref pState, ref pComponentState); - - state_packed.Unpack(ref pControllerState); - return packed_result; - } -#endif - bool result = FnTable.GetComponentState(pchRenderModelName, pchComponentName, ref pControllerState, ref pState, ref pComponentState); - return result; - } - public bool RenderModelHasComponent(string pchRenderModelName, string pchComponentName) - { - bool result = FnTable.RenderModelHasComponent(pchRenderModelName, pchComponentName); - return result; - } - public uint GetRenderModelThumbnailURL(string pchRenderModelName, System.Text.StringBuilder pchThumbnailURL, uint unThumbnailURLLen, ref EVRRenderModelError peError) - { - uint result = FnTable.GetRenderModelThumbnailURL(pchRenderModelName, pchThumbnailURL, unThumbnailURLLen, ref peError); - return result; - } - public uint GetRenderModelOriginalPath(string pchRenderModelName, System.Text.StringBuilder pchOriginalPath, uint unOriginalPathLen, ref EVRRenderModelError peError) - { - uint result = FnTable.GetRenderModelOriginalPath(pchRenderModelName, pchOriginalPath, unOriginalPathLen, ref peError); - return result; - } - public string GetRenderModelErrorNameFromEnum(EVRRenderModelError error) - { - IntPtr result = FnTable.GetRenderModelErrorNameFromEnum(error); - return Marshal.PtrToStringAnsi(result); - } - } - - - public class CVRNotifications - { - IVRNotifications FnTable; - internal CVRNotifications(IntPtr pInterface) - { - FnTable = (IVRNotifications)Marshal.PtrToStructure(pInterface, typeof(IVRNotifications)); - } - public EVRNotificationError CreateNotification(ulong ulOverlayHandle, ulong ulUserValue, EVRNotificationType type, string pchText, EVRNotificationStyle style, ref NotificationBitmap_t pImage, ref uint pNotificationId) - { - pNotificationId = 0; - EVRNotificationError result = FnTable.CreateNotification(ulOverlayHandle, ulUserValue, type, pchText, style, ref pImage, ref pNotificationId); - return result; - } - public EVRNotificationError RemoveNotification(uint notificationId) - { - EVRNotificationError result = FnTable.RemoveNotification(notificationId); - return result; - } - } - - - public class CVRSettings - { - IVRSettings FnTable; - internal CVRSettings(IntPtr pInterface) - { - FnTable = (IVRSettings)Marshal.PtrToStructure(pInterface, typeof(IVRSettings)); - } - public string GetSettingsErrorNameFromEnum(EVRSettingsError eError) - { - IntPtr result = FnTable.GetSettingsErrorNameFromEnum(eError); - return Marshal.PtrToStringAnsi(result); - } - public bool Sync(bool bForce, ref EVRSettingsError peError) - { - bool result = FnTable.Sync(bForce, ref peError); - return result; - } - public void SetBool(string pchSection, string pchSettingsKey, bool bValue, ref EVRSettingsError peError) - { - FnTable.SetBool(pchSection, pchSettingsKey, bValue, ref peError); - } - public void SetInt32(string pchSection, string pchSettingsKey, int nValue, ref EVRSettingsError peError) - { - FnTable.SetInt32(pchSection, pchSettingsKey, nValue, ref peError); - } - public void SetFloat(string pchSection, string pchSettingsKey, float flValue, ref EVRSettingsError peError) - { - FnTable.SetFloat(pchSection, pchSettingsKey, flValue, ref peError); - } - public void SetString(string pchSection, string pchSettingsKey, string pchValue, ref EVRSettingsError peError) - { - FnTable.SetString(pchSection, pchSettingsKey, pchValue, ref peError); - } - public bool GetBool(string pchSection, string pchSettingsKey, ref EVRSettingsError peError) - { - bool result = FnTable.GetBool(pchSection, pchSettingsKey, ref peError); - return result; - } - public int GetInt32(string pchSection, string pchSettingsKey, ref EVRSettingsError peError) - { - int result = FnTable.GetInt32(pchSection, pchSettingsKey, ref peError); - return result; - } - public float GetFloat(string pchSection, string pchSettingsKey, ref EVRSettingsError peError) - { - float result = FnTable.GetFloat(pchSection, pchSettingsKey, ref peError); - return result; - } - public void GetString(string pchSection, string pchSettingsKey, System.Text.StringBuilder pchValue, uint unValueLen, ref EVRSettingsError peError) - { - FnTable.GetString(pchSection, pchSettingsKey, pchValue, unValueLen, ref peError); - } - public void RemoveSection(string pchSection, ref EVRSettingsError peError) - { - FnTable.RemoveSection(pchSection, ref peError); - } - public void RemoveKeyInSection(string pchSection, string pchSettingsKey, ref EVRSettingsError peError) - { - FnTable.RemoveKeyInSection(pchSection, pchSettingsKey, ref peError); - } - } - - - public class CVRScreenshots - { - IVRScreenshots FnTable; - internal CVRScreenshots(IntPtr pInterface) - { - FnTable = (IVRScreenshots)Marshal.PtrToStructure(pInterface, typeof(IVRScreenshots)); - } - public EVRScreenshotError RequestScreenshot(ref uint pOutScreenshotHandle, EVRScreenshotType type, string pchPreviewFilename, string pchVRFilename) - { - pOutScreenshotHandle = 0; - EVRScreenshotError result = FnTable.RequestScreenshot(ref pOutScreenshotHandle, type, pchPreviewFilename, pchVRFilename); - return result; - } - public EVRScreenshotError HookScreenshot(EVRScreenshotType[] pSupportedTypes) - { - EVRScreenshotError result = FnTable.HookScreenshot(pSupportedTypes, (int)pSupportedTypes.Length); - return result; - } - public EVRScreenshotType GetScreenshotPropertyType(uint screenshotHandle, ref EVRScreenshotError pError) - { - EVRScreenshotType result = FnTable.GetScreenshotPropertyType(screenshotHandle, ref pError); - return result; - } - public uint GetScreenshotPropertyFilename(uint screenshotHandle, EVRScreenshotPropertyFilenames filenameType, System.Text.StringBuilder pchFilename, uint cchFilename, ref EVRScreenshotError pError) - { - uint result = FnTable.GetScreenshotPropertyFilename(screenshotHandle, filenameType, pchFilename, cchFilename, ref pError); - return result; - } - public EVRScreenshotError UpdateScreenshotProgress(uint screenshotHandle, float flProgress) - { - EVRScreenshotError result = FnTable.UpdateScreenshotProgress(screenshotHandle, flProgress); - return result; - } - public EVRScreenshotError TakeStereoScreenshot(ref uint pOutScreenshotHandle, string pchPreviewFilename, string pchVRFilename) - { - pOutScreenshotHandle = 0; - EVRScreenshotError result = FnTable.TakeStereoScreenshot(ref pOutScreenshotHandle, pchPreviewFilename, pchVRFilename); - return result; - } - public EVRScreenshotError SubmitScreenshot(uint screenshotHandle, EVRScreenshotType type, string pchSourcePreviewFilename, string pchSourceVRFilename) - { - EVRScreenshotError result = FnTable.SubmitScreenshot(screenshotHandle, type, pchSourcePreviewFilename, pchSourceVRFilename); - return result; - } - } - - - public class CVRResources - { - IVRResources FnTable; - internal CVRResources(IntPtr pInterface) - { - FnTable = (IVRResources)Marshal.PtrToStructure(pInterface, typeof(IVRResources)); - } - public uint LoadSharedResource(string pchResourceName, string pchBuffer, uint unBufferLen) - { - uint result = FnTable.LoadSharedResource(pchResourceName, pchBuffer, unBufferLen); - return result; - } - public uint GetResourceFullPath(string pchResourceName, string pchResourceTypeDirectory, System.Text.StringBuilder pchPathBuffer, uint unBufferLen) - { - uint result = FnTable.GetResourceFullPath(pchResourceName, pchResourceTypeDirectory, pchPathBuffer, unBufferLen); - return result; - } - } - - - public class CVRDriverManager - { - IVRDriverManager FnTable; - internal CVRDriverManager(IntPtr pInterface) - { - FnTable = (IVRDriverManager)Marshal.PtrToStructure(pInterface, typeof(IVRDriverManager)); - } - public uint GetDriverCount() - { - uint result = FnTable.GetDriverCount(); - return result; - } - public uint GetDriverName(uint nDriver, System.Text.StringBuilder pchValue, uint unBufferSize) - { - uint result = FnTable.GetDriverName(nDriver, pchValue, unBufferSize); - return result; - } - public ulong GetDriverHandle(string pchDriverName) - { - ulong result = FnTable.GetDriverHandle(pchDriverName); - return result; - } - } - - - public class CVRInput - { - IVRInput FnTable; - internal CVRInput(IntPtr pInterface) - { - FnTable = (IVRInput)Marshal.PtrToStructure(pInterface, typeof(IVRInput)); - } - public EVRInputError SetActionManifestPath(string pchActionManifestPath) - { - EVRInputError result = FnTable.SetActionManifestPath(pchActionManifestPath); - return result; - } - public EVRInputError GetActionSetHandle(string pchActionSetName, ref ulong pHandle) - { - pHandle = 0; - EVRInputError result = FnTable.GetActionSetHandle(pchActionSetName, ref pHandle); - return result; - } - public EVRInputError GetActionHandle(string pchActionName, ref ulong pHandle) - { - pHandle = 0; - EVRInputError result = FnTable.GetActionHandle(pchActionName, ref pHandle); - return result; - } - public EVRInputError GetInputSourceHandle(string pchInputSourcePath, ref ulong pHandle) - { - pHandle = 0; - EVRInputError result = FnTable.GetInputSourceHandle(pchInputSourcePath, ref pHandle); - return result; - } - public EVRInputError UpdateActionState(VRActiveActionSet_t[] pSets, uint unSizeOfVRSelectedActionSet_t) - { - EVRInputError result = FnTable.UpdateActionState(pSets, unSizeOfVRSelectedActionSet_t, (uint)pSets.Length); - return result; - } - public EVRInputError GetDigitalActionData(ulong action, ref InputDigitalActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice) - { - EVRInputError result = FnTable.GetDigitalActionData(action, ref pActionData, unActionDataSize, ulRestrictToDevice); - return result; - } - public EVRInputError GetAnalogActionData(ulong action, ref InputAnalogActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice) - { - EVRInputError result = FnTable.GetAnalogActionData(action, ref pActionData, unActionDataSize, ulRestrictToDevice); - return result; - } - public EVRInputError GetPoseActionData(ulong action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, ref InputPoseActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice) - { - EVRInputError result = FnTable.GetPoseActionData(action, eOrigin, fPredictedSecondsFromNow, ref pActionData, unActionDataSize, ulRestrictToDevice); - return result; - } - public EVRInputError GetSkeletalActionData(ulong action, ref InputSkeletalActionData_t pActionData, uint unActionDataSize) - { - EVRInputError result = FnTable.GetSkeletalActionData(action, ref pActionData, unActionDataSize); - return result; - } - public EVRInputError GetBoneCount(ulong action, ref uint pBoneCount) - { - pBoneCount = 0; - EVRInputError result = FnTable.GetBoneCount(action, ref pBoneCount); - return result; - } - public EVRInputError GetBoneHierarchy(ulong action, int[] pParentIndices) - { - EVRInputError result = FnTable.GetBoneHierarchy(action, pParentIndices, (uint)pParentIndices.Length); - return result; - } - public EVRInputError GetBoneName(ulong action, int nBoneIndex, System.Text.StringBuilder pchBoneName, uint unNameBufferSize) - { - EVRInputError result = FnTable.GetBoneName(action, nBoneIndex, pchBoneName, unNameBufferSize); - return result; - } - public EVRInputError GetSkeletalReferenceTransforms(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, VRBoneTransform_t[] pTransformArray) - { - EVRInputError result = FnTable.GetSkeletalReferenceTransforms(action, eTransformSpace, eReferencePose, pTransformArray, (uint)pTransformArray.Length); - return result; - } - public EVRInputError GetSkeletalTrackingLevel(ulong action, ref EVRSkeletalTrackingLevel pSkeletalTrackingLevel) - { - EVRInputError result = FnTable.GetSkeletalTrackingLevel(action, ref pSkeletalTrackingLevel); - return result; - } - public EVRInputError GetSkeletalBoneData(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VRBoneTransform_t[] pTransformArray) - { - EVRInputError result = FnTable.GetSkeletalBoneData(action, eTransformSpace, eMotionRange, pTransformArray, (uint)pTransformArray.Length); - return result; - } - public EVRInputError GetSkeletalSummaryData(ulong action, ref VRSkeletalSummaryData_t pSkeletalSummaryData) - { - EVRInputError result = FnTable.GetSkeletalSummaryData(action, ref pSkeletalSummaryData); - return result; - } - public EVRInputError GetSkeletalBoneDataCompressed(ulong action, EVRSkeletalMotionRange eMotionRange, IntPtr pvCompressedData, uint unCompressedSize, ref uint punRequiredCompressedSize) - { - punRequiredCompressedSize = 0; - EVRInputError result = FnTable.GetSkeletalBoneDataCompressed(action, eMotionRange, pvCompressedData, unCompressedSize, ref punRequiredCompressedSize); - return result; - } - public EVRInputError DecompressSkeletalBoneData(IntPtr pvCompressedBuffer, uint unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, VRBoneTransform_t[] pTransformArray) - { - EVRInputError result = FnTable.DecompressSkeletalBoneData(pvCompressedBuffer, unCompressedBufferSize, eTransformSpace, pTransformArray, (uint)pTransformArray.Length); - return result; - } - public EVRInputError TriggerHapticVibrationAction(ulong action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, ulong ulRestrictToDevice) - { - EVRInputError result = FnTable.TriggerHapticVibrationAction(action, fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude, ulRestrictToDevice); - return result; - } - public EVRInputError GetActionOrigins(ulong actionSetHandle, ulong digitalActionHandle, ulong[] originsOut) - { - EVRInputError result = FnTable.GetActionOrigins(actionSetHandle, digitalActionHandle, originsOut, (uint)originsOut.Length); - return result; - } - public EVRInputError GetOriginLocalizedName(ulong origin, System.Text.StringBuilder pchNameArray, uint unNameArraySize, int unStringSectionsToInclude) - { - EVRInputError result = FnTable.GetOriginLocalizedName(origin, pchNameArray, unNameArraySize, unStringSectionsToInclude); - return result; - } - public EVRInputError GetOriginTrackedDeviceInfo(ulong origin, ref InputOriginInfo_t pOriginInfo, uint unOriginInfoSize) - { - EVRInputError result = FnTable.GetOriginTrackedDeviceInfo(origin, ref pOriginInfo, unOriginInfoSize); - return result; - } - public EVRInputError ShowActionOrigins(ulong actionSetHandle, ulong ulActionHandle) - { - EVRInputError result = FnTable.ShowActionOrigins(actionSetHandle, ulActionHandle); - return result; - } - public EVRInputError ShowBindingsForActionSet(VRActiveActionSet_t[] pSets, uint unSizeOfVRSelectedActionSet_t, ulong originToHighlight) - { - EVRInputError result = FnTable.ShowBindingsForActionSet(pSets, unSizeOfVRSelectedActionSet_t, (uint)pSets.Length, originToHighlight); - return result; - } - } - - - public class CVRIOBuffer - { - IVRIOBuffer FnTable; - internal CVRIOBuffer(IntPtr pInterface) - { - FnTable = (IVRIOBuffer)Marshal.PtrToStructure(pInterface, typeof(IVRIOBuffer)); - } - public EIOBufferError Open(string pchPath, EIOBufferMode mode, uint unElementSize, uint unElements, ref ulong pulBuffer) - { - pulBuffer = 0; - EIOBufferError result = FnTable.Open(pchPath, mode, unElementSize, unElements, ref pulBuffer); - return result; - } - public EIOBufferError Close(ulong ulBuffer) - { - EIOBufferError result = FnTable.Close(ulBuffer); - return result; - } - public EIOBufferError Read(ulong ulBuffer, IntPtr pDst, uint unBytes, ref uint punRead) - { - punRead = 0; - EIOBufferError result = FnTable.Read(ulBuffer, pDst, unBytes, ref punRead); - return result; - } - public EIOBufferError Write(ulong ulBuffer, IntPtr pSrc, uint unBytes) - { - EIOBufferError result = FnTable.Write(ulBuffer, pSrc, unBytes); - return result; - } - public ulong PropertyContainer(ulong ulBuffer) - { - ulong result = FnTable.PropertyContainer(ulBuffer); - return result; - } - } - - - public class CVRSpatialAnchors - { - IVRSpatialAnchors FnTable; - internal CVRSpatialAnchors(IntPtr pInterface) - { - FnTable = (IVRSpatialAnchors)Marshal.PtrToStructure(pInterface, typeof(IVRSpatialAnchors)); - } - public EVRSpatialAnchorError CreateSpatialAnchorFromDescriptor(string pchDescriptor, ref uint pHandleOut) - { - pHandleOut = 0; - EVRSpatialAnchorError result = FnTable.CreateSpatialAnchorFromDescriptor(pchDescriptor, ref pHandleOut); - return result; - } - public EVRSpatialAnchorError CreateSpatialAnchorFromPose(uint unDeviceIndex, ETrackingUniverseOrigin eOrigin, ref SpatialAnchorPose_t pPose, ref uint pHandleOut) - { - pHandleOut = 0; - EVRSpatialAnchorError result = FnTable.CreateSpatialAnchorFromPose(unDeviceIndex, eOrigin, ref pPose, ref pHandleOut); - return result; - } - public EVRSpatialAnchorError GetSpatialAnchorPose(uint unHandle, ETrackingUniverseOrigin eOrigin, ref SpatialAnchorPose_t pPoseOut) - { - EVRSpatialAnchorError result = FnTable.GetSpatialAnchorPose(unHandle, eOrigin, ref pPoseOut); - return result; - } - public EVRSpatialAnchorError GetSpatialAnchorDescriptor(uint unHandle, System.Text.StringBuilder pchDescriptorOut, ref uint punDescriptorBufferLenInOut) - { - punDescriptorBufferLenInOut = 0; - EVRSpatialAnchorError result = FnTable.GetSpatialAnchorDescriptor(unHandle, pchDescriptorOut, ref punDescriptorBufferLenInOut); - return result; - } - } - - - public class OpenVRInterop - { - [DllImportAttribute("openvr_api", EntryPoint = "VR_InitInternal", CallingConvention = CallingConvention.Cdecl)] - internal static extern uint InitInternal(ref EVRInitError peError, EVRApplicationType eApplicationType); - [DllImportAttribute("openvr_api", EntryPoint = "VR_InitInternal2", CallingConvention = CallingConvention.Cdecl)] - internal static extern uint InitInternal2(ref EVRInitError peError, EVRApplicationType eApplicationType, [In, MarshalAs(UnmanagedType.LPStr)] string pStartupInfo); - [DllImportAttribute("openvr_api", EntryPoint = "VR_ShutdownInternal", CallingConvention = CallingConvention.Cdecl)] - internal static extern void ShutdownInternal(); - [DllImportAttribute("openvr_api", EntryPoint = "VR_IsHmdPresent", CallingConvention = CallingConvention.Cdecl)] - internal static extern bool IsHmdPresent(); - [DllImportAttribute("openvr_api", EntryPoint = "VR_IsRuntimeInstalled", CallingConvention = CallingConvention.Cdecl)] - internal static extern bool IsRuntimeInstalled(); - [DllImportAttribute("openvr_api", EntryPoint = "VR_RuntimePath", CallingConvention = CallingConvention.Cdecl)] - internal static extern string RuntimePath(); - [DllImportAttribute("openvr_api", EntryPoint = "VR_GetStringForHmdError", CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr GetStringForHmdError(EVRInitError error); - [DllImportAttribute("openvr_api", EntryPoint = "VR_GetGenericInterface", CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr GetGenericInterface([In, MarshalAs(UnmanagedType.LPStr)] string pchInterfaceVersion, ref EVRInitError peError); - [DllImportAttribute("openvr_api", EntryPoint = "VR_IsInterfaceVersionValid", CallingConvention = CallingConvention.Cdecl)] - internal static extern bool IsInterfaceVersionValid([In, MarshalAs(UnmanagedType.LPStr)] string pchInterfaceVersion); - [DllImportAttribute("openvr_api", EntryPoint = "VR_GetInitToken", CallingConvention = CallingConvention.Cdecl)] - internal static extern uint GetInitToken(); - } - - - public enum EVREye - { - Eye_Left = 0, - Eye_Right = 1, - } - public enum ETextureType - { - Invalid = -1, - DirectX = 0, - OpenGL = 1, - Vulkan = 2, - IOSurface = 3, - DirectX12 = 4, - DXGISharedHandle = 5, - Metal = 6, - } - public enum EColorSpace - { - Auto = 0, - Gamma = 1, - Linear = 2, - } - public enum ETrackingResult - { - Uninitialized = 1, - Calibrating_InProgress = 100, - Calibrating_OutOfRange = 101, - Running_OK = 200, - Running_OutOfRange = 201, - Fallback_RotationOnly = 300, - } - public enum ETrackedDeviceClass - { - Invalid = 0, - HMD = 1, - Controller = 2, - GenericTracker = 3, - TrackingReference = 4, - DisplayRedirect = 5, - Max = 6, - } - public enum ETrackedControllerRole - { - Invalid = 0, - LeftHand = 1, - RightHand = 2, - OptOut = 3, - Treadmill = 4, - Max = 4, - } - public enum ETrackingUniverseOrigin - { - TrackingUniverseSeated = 0, - TrackingUniverseStanding = 1, - TrackingUniverseRawAndUncalibrated = 2, - } - public enum ETrackedDeviceProperty - { - Prop_Invalid = 0, - Prop_TrackingSystemName_String = 1000, - Prop_ModelNumber_String = 1001, - Prop_SerialNumber_String = 1002, - Prop_RenderModelName_String = 1003, - Prop_WillDriftInYaw_Bool = 1004, - Prop_ManufacturerName_String = 1005, - Prop_TrackingFirmwareVersion_String = 1006, - Prop_HardwareRevision_String = 1007, - Prop_AllWirelessDongleDescriptions_String = 1008, - Prop_ConnectedWirelessDongle_String = 1009, - Prop_DeviceIsWireless_Bool = 1010, - Prop_DeviceIsCharging_Bool = 1011, - Prop_DeviceBatteryPercentage_Float = 1012, - Prop_StatusDisplayTransform_Matrix34 = 1013, - Prop_Firmware_UpdateAvailable_Bool = 1014, - Prop_Firmware_ManualUpdate_Bool = 1015, - Prop_Firmware_ManualUpdateURL_String = 1016, - Prop_HardwareRevision_Uint64 = 1017, - Prop_FirmwareVersion_Uint64 = 1018, - Prop_FPGAVersion_Uint64 = 1019, - Prop_VRCVersion_Uint64 = 1020, - Prop_RadioVersion_Uint64 = 1021, - Prop_DongleVersion_Uint64 = 1022, - Prop_BlockServerShutdown_Bool = 1023, - Prop_CanUnifyCoordinateSystemWithHmd_Bool = 1024, - Prop_ContainsProximitySensor_Bool = 1025, - Prop_DeviceProvidesBatteryStatus_Bool = 1026, - Prop_DeviceCanPowerOff_Bool = 1027, - Prop_Firmware_ProgrammingTarget_String = 1028, - Prop_DeviceClass_Int32 = 1029, - Prop_HasCamera_Bool = 1030, - Prop_DriverVersion_String = 1031, - Prop_Firmware_ForceUpdateRequired_Bool = 1032, - Prop_ViveSystemButtonFixRequired_Bool = 1033, - Prop_ParentDriver_Uint64 = 1034, - Prop_ResourceRoot_String = 1035, - Prop_RegisteredDeviceType_String = 1036, - Prop_InputProfilePath_String = 1037, - Prop_NeverTracked_Bool = 1038, - Prop_NumCameras_Int32 = 1039, - Prop_CameraFrameLayout_Int32 = 1040, - Prop_CameraStreamFormat_Int32 = 1041, - Prop_AdditionalDeviceSettingsPath_String = 1042, - Prop_Identifiable_Bool = 1043, - Prop_ReportsTimeSinceVSync_Bool = 2000, - Prop_SecondsFromVsyncToPhotons_Float = 2001, - Prop_DisplayFrequency_Float = 2002, - Prop_UserIpdMeters_Float = 2003, - Prop_CurrentUniverseId_Uint64 = 2004, - Prop_PreviousUniverseId_Uint64 = 2005, - Prop_DisplayFirmwareVersion_Uint64 = 2006, - Prop_IsOnDesktop_Bool = 2007, - Prop_DisplayMCType_Int32 = 2008, - Prop_DisplayMCOffset_Float = 2009, - Prop_DisplayMCScale_Float = 2010, - Prop_EdidVendorID_Int32 = 2011, - Prop_DisplayMCImageLeft_String = 2012, - Prop_DisplayMCImageRight_String = 2013, - Prop_DisplayGCBlackClamp_Float = 2014, - Prop_EdidProductID_Int32 = 2015, - Prop_CameraToHeadTransform_Matrix34 = 2016, - Prop_DisplayGCType_Int32 = 2017, - Prop_DisplayGCOffset_Float = 2018, - Prop_DisplayGCScale_Float = 2019, - Prop_DisplayGCPrescale_Float = 2020, - Prop_DisplayGCImage_String = 2021, - Prop_LensCenterLeftU_Float = 2022, - Prop_LensCenterLeftV_Float = 2023, - Prop_LensCenterRightU_Float = 2024, - Prop_LensCenterRightV_Float = 2025, - Prop_UserHeadToEyeDepthMeters_Float = 2026, - Prop_CameraFirmwareVersion_Uint64 = 2027, - Prop_CameraFirmwareDescription_String = 2028, - Prop_DisplayFPGAVersion_Uint64 = 2029, - Prop_DisplayBootloaderVersion_Uint64 = 2030, - Prop_DisplayHardwareVersion_Uint64 = 2031, - Prop_AudioFirmwareVersion_Uint64 = 2032, - Prop_CameraCompatibilityMode_Int32 = 2033, - Prop_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034, - Prop_ScreenshotVerticalFieldOfViewDegrees_Float = 2035, - Prop_DisplaySuppressed_Bool = 2036, - Prop_DisplayAllowNightMode_Bool = 2037, - Prop_DisplayMCImageWidth_Int32 = 2038, - Prop_DisplayMCImageHeight_Int32 = 2039, - Prop_DisplayMCImageNumChannels_Int32 = 2040, - Prop_DisplayMCImageData_Binary = 2041, - Prop_SecondsFromPhotonsToVblank_Float = 2042, - Prop_DriverDirectModeSendsVsyncEvents_Bool = 2043, - Prop_DisplayDebugMode_Bool = 2044, - Prop_GraphicsAdapterLuid_Uint64 = 2045, - Prop_DriverProvidedChaperonePath_String = 2048, - Prop_ExpectedTrackingReferenceCount_Int32 = 2049, - Prop_ExpectedControllerCount_Int32 = 2050, - Prop_NamedIconPathControllerLeftDeviceOff_String = 2051, - Prop_NamedIconPathControllerRightDeviceOff_String = 2052, - Prop_NamedIconPathTrackingReferenceDeviceOff_String = 2053, - Prop_DoNotApplyPrediction_Bool = 2054, - Prop_CameraToHeadTransforms_Matrix34_Array = 2055, - Prop_DistortionMeshResolution_Int32 = 2056, - Prop_DriverIsDrawingControllers_Bool = 2057, - Prop_DriverRequestsApplicationPause_Bool = 2058, - Prop_DriverRequestsReducedRendering_Bool = 2059, - Prop_MinimumIpdStepMeters_Float = 2060, - Prop_AudioBridgeFirmwareVersion_Uint64 = 2061, - Prop_ImageBridgeFirmwareVersion_Uint64 = 2062, - Prop_ImuToHeadTransform_Matrix34 = 2063, - Prop_ImuFactoryGyroBias_Vector3 = 2064, - Prop_ImuFactoryGyroScale_Vector3 = 2065, - Prop_ImuFactoryAccelerometerBias_Vector3 = 2066, - Prop_ImuFactoryAccelerometerScale_Vector3 = 2067, - Prop_ConfigurationIncludesLighthouse20Features_Bool = 2069, - Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200, - Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201, - Prop_DriverRequestedMuraFeather_InnerRight_Int32 = 2202, - Prop_DriverRequestedMuraFeather_InnerTop_Int32 = 2203, - Prop_DriverRequestedMuraFeather_InnerBottom_Int32 = 2204, - Prop_DriverRequestedMuraFeather_OuterLeft_Int32 = 2205, - Prop_DriverRequestedMuraFeather_OuterRight_Int32 = 2206, - Prop_DriverRequestedMuraFeather_OuterTop_Int32 = 2207, - Prop_DriverRequestedMuraFeather_OuterBottom_Int32 = 2208, - Prop_AttachedDeviceId_String = 3000, - Prop_SupportedButtons_Uint64 = 3001, - Prop_Axis0Type_Int32 = 3002, - Prop_Axis1Type_Int32 = 3003, - Prop_Axis2Type_Int32 = 3004, - Prop_Axis3Type_Int32 = 3005, - Prop_Axis4Type_Int32 = 3006, - Prop_ControllerRoleHint_Int32 = 3007, - Prop_FieldOfViewLeftDegrees_Float = 4000, - Prop_FieldOfViewRightDegrees_Float = 4001, - Prop_FieldOfViewTopDegrees_Float = 4002, - Prop_FieldOfViewBottomDegrees_Float = 4003, - Prop_TrackingRangeMinimumMeters_Float = 4004, - Prop_TrackingRangeMaximumMeters_Float = 4005, - Prop_ModeLabel_String = 4006, - Prop_IconPathName_String = 5000, - Prop_NamedIconPathDeviceOff_String = 5001, - Prop_NamedIconPathDeviceSearching_String = 5002, - Prop_NamedIconPathDeviceSearchingAlert_String = 5003, - Prop_NamedIconPathDeviceReady_String = 5004, - Prop_NamedIconPathDeviceReadyAlert_String = 5005, - Prop_NamedIconPathDeviceNotReady_String = 5006, - Prop_NamedIconPathDeviceStandby_String = 5007, - Prop_NamedIconPathDeviceAlertLow_String = 5008, - Prop_DisplayHiddenArea_Binary_Start = 5100, - Prop_DisplayHiddenArea_Binary_End = 5150, - Prop_ParentContainer = 5151, - Prop_UserConfigPath_String = 6000, - Prop_InstallPath_String = 6001, - Prop_HasDisplayComponent_Bool = 6002, - Prop_HasControllerComponent_Bool = 6003, - Prop_HasCameraComponent_Bool = 6004, - Prop_HasDriverDirectModeComponent_Bool = 6005, - Prop_HasVirtualDisplayComponent_Bool = 6006, - Prop_HasSpatialAnchorsSupport_Bool = 6007, - Prop_ControllerType_String = 7000, - Prop_LegacyInputProfile_String = 7001, - Prop_ControllerHandSelectionPriority_Int32 = 7002, - Prop_VendorSpecific_Reserved_Start = 10000, - Prop_VendorSpecific_Reserved_End = 10999, - Prop_TrackedDeviceProperty_Max = 1000000, - } - public enum ETrackedPropertyError - { - TrackedProp_Success = 0, - TrackedProp_WrongDataType = 1, - TrackedProp_WrongDeviceClass = 2, - TrackedProp_BufferTooSmall = 3, - TrackedProp_UnknownProperty = 4, - TrackedProp_InvalidDevice = 5, - TrackedProp_CouldNotContactServer = 6, - TrackedProp_ValueNotProvidedByDevice = 7, - TrackedProp_StringExceedsMaximumLength = 8, - TrackedProp_NotYetAvailable = 9, - TrackedProp_PermissionDenied = 10, - TrackedProp_InvalidOperation = 11, - TrackedProp_CannotWriteToWildcards = 12, - TrackedProp_IPCReadFailure = 13, - } - public enum EVRSubmitFlags - { - Submit_Default = 0, - Submit_LensDistortionAlreadyApplied = 1, - Submit_GlRenderBuffer = 2, - Submit_Reserved = 4, - Submit_TextureWithPose = 8, - Submit_TextureWithDepth = 16, - } - public enum EVRState - { - Undefined = -1, - Off = 0, - Searching = 1, - Searching_Alert = 2, - Ready = 3, - Ready_Alert = 4, - NotReady = 5, - Standby = 6, - Ready_Alert_Low = 7, - } - public enum EVREventType - { - VREvent_None = 0, - VREvent_TrackedDeviceActivated = 100, - VREvent_TrackedDeviceDeactivated = 101, - VREvent_TrackedDeviceUpdated = 102, - VREvent_TrackedDeviceUserInteractionStarted = 103, - VREvent_TrackedDeviceUserInteractionEnded = 104, - VREvent_IpdChanged = 105, - VREvent_EnterStandbyMode = 106, - VREvent_LeaveStandbyMode = 107, - VREvent_TrackedDeviceRoleChanged = 108, - VREvent_WatchdogWakeUpRequested = 109, - VREvent_LensDistortionChanged = 110, - VREvent_PropertyChanged = 111, - VREvent_WirelessDisconnect = 112, - VREvent_WirelessReconnect = 113, - VREvent_ButtonPress = 200, - VREvent_ButtonUnpress = 201, - VREvent_ButtonTouch = 202, - VREvent_ButtonUntouch = 203, - VREvent_DualAnalog_Press = 250, - VREvent_DualAnalog_Unpress = 251, - VREvent_DualAnalog_Touch = 252, - VREvent_DualAnalog_Untouch = 253, - VREvent_DualAnalog_Move = 254, - VREvent_DualAnalog_ModeSwitch1 = 255, - VREvent_DualAnalog_ModeSwitch2 = 256, - VREvent_DualAnalog_Cancel = 257, - VREvent_MouseMove = 300, - VREvent_MouseButtonDown = 301, - VREvent_MouseButtonUp = 302, - VREvent_FocusEnter = 303, - VREvent_FocusLeave = 304, - VREvent_Scroll = 305, - VREvent_TouchPadMove = 306, - VREvent_OverlayFocusChanged = 307, - VREvent_ReloadOverlays = 308, - VREvent_InputFocusCaptured = 400, - VREvent_InputFocusReleased = 401, - VREvent_SceneFocusLost = 402, - VREvent_SceneFocusGained = 403, - VREvent_SceneApplicationChanged = 404, - VREvent_SceneFocusChanged = 405, - VREvent_InputFocusChanged = 406, - VREvent_SceneApplicationSecondaryRenderingStarted = 407, - VREvent_SceneApplicationUsingWrongGraphicsAdapter = 408, - VREvent_ActionBindingReloaded = 409, - VREvent_HideRenderModels = 410, - VREvent_ShowRenderModels = 411, - VREvent_ConsoleOpened = 420, - VREvent_ConsoleClosed = 421, - VREvent_OverlayShown = 500, - VREvent_OverlayHidden = 501, - VREvent_DashboardActivated = 502, - VREvent_DashboardDeactivated = 503, - VREvent_DashboardThumbSelected = 504, - VREvent_DashboardRequested = 505, - VREvent_ResetDashboard = 506, - VREvent_RenderToast = 507, - VREvent_ImageLoaded = 508, - VREvent_ShowKeyboard = 509, - VREvent_HideKeyboard = 510, - VREvent_OverlayGamepadFocusGained = 511, - VREvent_OverlayGamepadFocusLost = 512, - VREvent_OverlaySharedTextureChanged = 513, - VREvent_ScreenshotTriggered = 516, - VREvent_ImageFailed = 517, - VREvent_DashboardOverlayCreated = 518, - VREvent_SwitchGamepadFocus = 519, - VREvent_RequestScreenshot = 520, - VREvent_ScreenshotTaken = 521, - VREvent_ScreenshotFailed = 522, - VREvent_SubmitScreenshotToDashboard = 523, - VREvent_ScreenshotProgressToDashboard = 524, - VREvent_PrimaryDashboardDeviceChanged = 525, - VREvent_RoomViewShown = 526, - VREvent_RoomViewHidden = 527, - VREvent_ShowUI = 528, - VREvent_Notification_Shown = 600, - VREvent_Notification_Hidden = 601, - VREvent_Notification_BeginInteraction = 602, - VREvent_Notification_Destroyed = 603, - VREvent_Quit = 700, - VREvent_ProcessQuit = 701, - VREvent_QuitAborted_UserPrompt = 702, - VREvent_QuitAcknowledged = 703, - VREvent_DriverRequestedQuit = 704, - VREvent_ChaperoneDataHasChanged = 800, - VREvent_ChaperoneUniverseHasChanged = 801, - VREvent_ChaperoneTempDataHasChanged = 802, - VREvent_ChaperoneSettingsHaveChanged = 803, - VREvent_SeatedZeroPoseReset = 804, - VREvent_ChaperoneFlushCache = 805, - VREvent_AudioSettingsHaveChanged = 820, - VREvent_BackgroundSettingHasChanged = 850, - VREvent_CameraSettingsHaveChanged = 851, - VREvent_ReprojectionSettingHasChanged = 852, - VREvent_ModelSkinSettingsHaveChanged = 853, - VREvent_EnvironmentSettingsHaveChanged = 854, - VREvent_PowerSettingsHaveChanged = 855, - VREvent_EnableHomeAppSettingsHaveChanged = 856, - VREvent_SteamVRSectionSettingChanged = 857, - VREvent_LighthouseSectionSettingChanged = 858, - VREvent_NullSectionSettingChanged = 859, - VREvent_UserInterfaceSectionSettingChanged = 860, - VREvent_NotificationsSectionSettingChanged = 861, - VREvent_KeyboardSectionSettingChanged = 862, - VREvent_PerfSectionSettingChanged = 863, - VREvent_DashboardSectionSettingChanged = 864, - VREvent_WebInterfaceSectionSettingChanged = 865, - VREvent_TrackersSectionSettingChanged = 866, - VREvent_LastKnownSectionSettingChanged = 867, - VREvent_StatusUpdate = 900, - VREvent_WebInterface_InstallDriverCompleted = 950, - VREvent_MCImageUpdated = 1000, - VREvent_FirmwareUpdateStarted = 1100, - VREvent_FirmwareUpdateFinished = 1101, - VREvent_KeyboardClosed = 1200, - VREvent_KeyboardCharInput = 1201, - VREvent_KeyboardDone = 1202, - VREvent_ApplicationTransitionStarted = 1300, - VREvent_ApplicationTransitionAborted = 1301, - VREvent_ApplicationTransitionNewAppStarted = 1302, - VREvent_ApplicationListUpdated = 1303, - VREvent_ApplicationMimeTypeLoad = 1304, - VREvent_ApplicationTransitionNewAppLaunchComplete = 1305, - VREvent_ProcessConnected = 1306, - VREvent_ProcessDisconnected = 1307, - VREvent_Compositor_MirrorWindowShown = 1400, - VREvent_Compositor_MirrorWindowHidden = 1401, - VREvent_Compositor_ChaperoneBoundsShown = 1410, - VREvent_Compositor_ChaperoneBoundsHidden = 1411, - VREvent_TrackedCamera_StartVideoStream = 1500, - VREvent_TrackedCamera_StopVideoStream = 1501, - VREvent_TrackedCamera_PauseVideoStream = 1502, - VREvent_TrackedCamera_ResumeVideoStream = 1503, - VREvent_TrackedCamera_EditingSurface = 1550, - VREvent_PerformanceTest_EnableCapture = 1600, - VREvent_PerformanceTest_DisableCapture = 1601, - VREvent_PerformanceTest_FidelityLevel = 1602, - VREvent_MessageOverlay_Closed = 1650, - VREvent_MessageOverlayCloseRequested = 1651, - VREvent_Input_HapticVibration = 1700, - VREvent_Input_BindingLoadFailed = 1701, - VREvent_Input_BindingLoadSuccessful = 1702, - VREvent_Input_ActionManifestReloaded = 1703, - VREvent_Input_ActionManifestLoadFailed = 1704, - VREvent_Input_ProgressUpdate = 1705, - VREvent_Input_TrackerActivated = 1706, - VREvent_SpatialAnchors_PoseUpdated = 1800, - VREvent_SpatialAnchors_DescriptorUpdated = 1801, - VREvent_SpatialAnchors_RequestPoseUpdate = 1802, - VREvent_SpatialAnchors_RequestDescriptorUpdate = 1803, - VREvent_VendorSpecific_Reserved_Start = 10000, - VREvent_VendorSpecific_Reserved_End = 19999, - } - public enum EDeviceActivityLevel - { - k_EDeviceActivityLevel_Unknown = -1, - k_EDeviceActivityLevel_Idle = 0, - k_EDeviceActivityLevel_UserInteraction = 1, - k_EDeviceActivityLevel_UserInteraction_Timeout = 2, - k_EDeviceActivityLevel_Standby = 3, - } - public enum EVRButtonId - { - k_EButton_System = 0, - k_EButton_ApplicationMenu = 1, - k_EButton_Grip = 2, - k_EButton_DPad_Left = 3, - k_EButton_DPad_Up = 4, - k_EButton_DPad_Right = 5, - k_EButton_DPad_Down = 6, - k_EButton_A = 7, - k_EButton_ProximitySensor = 31, - k_EButton_Axis0 = 32, - k_EButton_Axis1 = 33, - k_EButton_Axis2 = 34, - k_EButton_Axis3 = 35, - k_EButton_Axis4 = 36, - k_EButton_SteamVR_Touchpad = 32, - k_EButton_SteamVR_Trigger = 33, - k_EButton_Dashboard_Back = 2, - k_EButton_Knuckles_A = 2, - k_EButton_Knuckles_B = 1, - k_EButton_Knuckles_JoyStick = 35, - k_EButton_Max = 64, - } - public enum EVRMouseButton - { - Left = 1, - Right = 2, - Middle = 4, - } - public enum EDualAnalogWhich - { - k_EDualAnalog_Left = 0, - k_EDualAnalog_Right = 1, - } - public enum EShowUIType - { - ShowUI_ControllerBinding = 0, - ShowUI_ManageTrackers = 1, - ShowUI_QuickStart = 2, - } - public enum EVRInputError - { - None = 0, - NameNotFound = 1, - WrongType = 2, - InvalidHandle = 3, - InvalidParam = 4, - NoSteam = 5, - MaxCapacityReached = 6, - IPCError = 7, - NoActiveActionSet = 8, - InvalidDevice = 9, - InvalidSkeleton = 10, - InvalidBoneCount = 11, - InvalidCompressedData = 12, - NoData = 13, - BufferTooSmall = 14, - MismatchedActionManifest = 15, - MissingSkeletonData = 16, - InvalidBoneIndex = 17, - } - public enum EVRSpatialAnchorError - { - Success = 0, - Internal = 1, - UnknownHandle = 2, - ArrayTooSmall = 3, - InvalidDescriptorChar = 4, - NotYetAvailable = 5, - NotAvailableInThisUniverse = 6, - PermanentlyUnavailable = 7, - WrongDriver = 8, - DescriptorTooLong = 9, - Unknown = 10, - NoRoomCalibration = 11, - InvalidArgument = 12, - UnknownDriver = 13, - } - public enum EHiddenAreaMeshType - { - k_eHiddenAreaMesh_Standard = 0, - k_eHiddenAreaMesh_Inverse = 1, - k_eHiddenAreaMesh_LineLoop = 2, - k_eHiddenAreaMesh_Max = 3, - } - public enum EVRControllerAxisType - { - k_eControllerAxis_None = 0, - k_eControllerAxis_TrackPad = 1, - k_eControllerAxis_Joystick = 2, - k_eControllerAxis_Trigger = 3, - } - public enum EVRControllerEventOutputType - { - ControllerEventOutput_OSEvents = 0, - ControllerEventOutput_VREvents = 1, - } - public enum ECollisionBoundsStyle - { - COLLISION_BOUNDS_STYLE_BEGINNER = 0, - COLLISION_BOUNDS_STYLE_INTERMEDIATE = 1, - COLLISION_BOUNDS_STYLE_SQUARES = 2, - COLLISION_BOUNDS_STYLE_ADVANCED = 3, - COLLISION_BOUNDS_STYLE_NONE = 4, - COLLISION_BOUNDS_STYLE_COUNT = 5, - } - public enum EVROverlayError - { - None = 0, - UnknownOverlay = 10, - InvalidHandle = 11, - PermissionDenied = 12, - OverlayLimitExceeded = 13, - WrongVisibilityType = 14, - KeyTooLong = 15, - NameTooLong = 16, - KeyInUse = 17, - WrongTransformType = 18, - InvalidTrackedDevice = 19, - InvalidParameter = 20, - ThumbnailCantBeDestroyed = 21, - ArrayTooSmall = 22, - RequestFailed = 23, - InvalidTexture = 24, - UnableToLoadFile = 25, - KeyboardAlreadyInUse = 26, - NoNeighbor = 27, - TooManyMaskPrimitives = 29, - BadMaskPrimitive = 30, - TextureAlreadyLocked = 31, - TextureLockCapacityReached = 32, - TextureNotLocked = 33, - } - public enum EVRApplicationType - { - VRApplication_Other = 0, - VRApplication_Scene = 1, - VRApplication_Overlay = 2, - VRApplication_Background = 3, - VRApplication_Utility = 4, - VRApplication_VRMonitor = 5, - VRApplication_SteamWatchdog = 6, - VRApplication_Bootstrapper = 7, - VRApplication_WebHelper = 8, - VRApplication_Max = 9, - } - public enum EVRFirmwareError - { - None = 0, - Success = 1, - Fail = 2, - } - public enum EVRNotificationError - { - OK = 0, - InvalidNotificationId = 100, - NotificationQueueFull = 101, - InvalidOverlayHandle = 102, - SystemWithUserValueAlreadyExists = 103, - } - public enum EVRSkeletalMotionRange - { - WithController = 0, - WithoutController = 1, - } - public enum EVRSkeletalTrackingLevel - { - VRSkeletalTracking_Estimated = 0, - VRSkeletalTracking_Partial = 1, - VRSkeletalTracking_Full = 2, - Count = 3, - Max = 2, - } - public enum EVRInitError - { - None = 0, - Unknown = 1, - Init_InstallationNotFound = 100, - Init_InstallationCorrupt = 101, - Init_VRClientDLLNotFound = 102, - Init_FileNotFound = 103, - Init_FactoryNotFound = 104, - Init_InterfaceNotFound = 105, - Init_InvalidInterface = 106, - Init_UserConfigDirectoryInvalid = 107, - Init_HmdNotFound = 108, - Init_NotInitialized = 109, - Init_PathRegistryNotFound = 110, - Init_NoConfigPath = 111, - Init_NoLogPath = 112, - Init_PathRegistryNotWritable = 113, - Init_AppInfoInitFailed = 114, - Init_Retry = 115, - Init_InitCanceledByUser = 116, - Init_AnotherAppLaunching = 117, - Init_SettingsInitFailed = 118, - Init_ShuttingDown = 119, - Init_TooManyObjects = 120, - Init_NoServerForBackgroundApp = 121, - Init_NotSupportedWithCompositor = 122, - Init_NotAvailableToUtilityApps = 123, - Init_Internal = 124, - Init_HmdDriverIdIsNone = 125, - Init_HmdNotFoundPresenceFailed = 126, - Init_VRMonitorNotFound = 127, - Init_VRMonitorStartupFailed = 128, - Init_LowPowerWatchdogNotSupported = 129, - Init_InvalidApplicationType = 130, - Init_NotAvailableToWatchdogApps = 131, - Init_WatchdogDisabledInSettings = 132, - Init_VRDashboardNotFound = 133, - Init_VRDashboardStartupFailed = 134, - Init_VRHomeNotFound = 135, - Init_VRHomeStartupFailed = 136, - Init_RebootingBusy = 137, - Init_FirmwareUpdateBusy = 138, - Init_FirmwareRecoveryBusy = 139, - Init_USBServiceBusy = 140, - Init_VRWebHelperStartupFailed = 141, - Init_TrackerManagerInitFailed = 142, - Driver_Failed = 200, - Driver_Unknown = 201, - Driver_HmdUnknown = 202, - Driver_NotLoaded = 203, - Driver_RuntimeOutOfDate = 204, - Driver_HmdInUse = 205, - Driver_NotCalibrated = 206, - Driver_CalibrationInvalid = 207, - Driver_HmdDisplayNotFound = 208, - Driver_TrackedDeviceInterfaceUnknown = 209, - Driver_HmdDriverIdOutOfBounds = 211, - Driver_HmdDisplayMirrored = 212, - IPC_ServerInitFailed = 300, - IPC_ConnectFailed = 301, - IPC_SharedStateInitFailed = 302, - IPC_CompositorInitFailed = 303, - IPC_MutexInitFailed = 304, - IPC_Failed = 305, - IPC_CompositorConnectFailed = 306, - IPC_CompositorInvalidConnectResponse = 307, - IPC_ConnectFailedAfterMultipleAttempts = 308, - Compositor_Failed = 400, - Compositor_D3D11HardwareRequired = 401, - Compositor_FirmwareRequiresUpdate = 402, - Compositor_OverlayInitFailed = 403, - Compositor_ScreenshotsInitFailed = 404, - Compositor_UnableToCreateDevice = 405, - VendorSpecific_UnableToConnectToOculusRuntime = 1000, - VendorSpecific_WindowsNotInDevMode = 1001, - VendorSpecific_HmdFound_CantOpenDevice = 1101, - VendorSpecific_HmdFound_UnableToRequestConfigStart = 1102, - VendorSpecific_HmdFound_NoStoredConfig = 1103, - VendorSpecific_HmdFound_ConfigTooBig = 1104, - VendorSpecific_HmdFound_ConfigTooSmall = 1105, - VendorSpecific_HmdFound_UnableToInitZLib = 1106, - VendorSpecific_HmdFound_CantReadFirmwareVersion = 1107, - VendorSpecific_HmdFound_UnableToSendUserDataStart = 1108, - VendorSpecific_HmdFound_UnableToGetUserDataStart = 1109, - VendorSpecific_HmdFound_UnableToGetUserDataNext = 1110, - VendorSpecific_HmdFound_UserDataAddressRange = 1111, - VendorSpecific_HmdFound_UserDataError = 1112, - VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113, - Steam_SteamInstallationNotFound = 2000, - } - public enum EVRScreenshotType - { - None = 0, - Mono = 1, - Stereo = 2, - Cubemap = 3, - MonoPanorama = 4, - StereoPanorama = 5, - } - public enum EVRScreenshotPropertyFilenames - { - Preview = 0, - VR = 1, - } - public enum EVRTrackedCameraError - { - None = 0, - OperationFailed = 100, - InvalidHandle = 101, - InvalidFrameHeaderVersion = 102, - OutOfHandles = 103, - IPCFailure = 104, - NotSupportedForThisDevice = 105, - SharedMemoryFailure = 106, - FrameBufferingFailure = 107, - StreamSetupFailure = 108, - InvalidGLTextureId = 109, - InvalidSharedTextureHandle = 110, - FailedToGetGLTextureId = 111, - SharedTextureFailure = 112, - NoFrameAvailable = 113, - InvalidArgument = 114, - InvalidFrameBufferSize = 115, - } - public enum EVRTrackedCameraFrameLayout - { - Mono = 1, - Stereo = 2, - VerticalLayout = 16, - HorizontalLayout = 32, - } - public enum EVRTrackedCameraFrameType - { - Distorted = 0, - Undistorted = 1, - MaximumUndistorted = 2, - MAX_CAMERA_FRAME_TYPES = 3, - } - public enum EVRDistortionFunctionType - { - None = 0, - FTheta = 1, - VRDistortionFucntionType_Extended_FTheta = 2, - MAX_DISTORTION_FUNCTION_TYPES = 3, - } - public enum EVSync - { - None = 0, - WaitRender = 1, - NoWaitRender = 2, - } - public enum EVRMuraCorrectionMode - { - Default = 0, - NoCorrection = 1, - } - public enum Imu_OffScaleFlags - { - OffScale_AccelX = 1, - OffScale_AccelY = 2, - OffScale_AccelZ = 4, - OffScale_GyroX = 8, - OffScale_GyroY = 16, - OffScale_GyroZ = 32, - } - public enum EVRApplicationError - { - None = 0, - AppKeyAlreadyExists = 100, - NoManifest = 101, - NoApplication = 102, - InvalidIndex = 103, - UnknownApplication = 104, - IPCFailed = 105, - ApplicationAlreadyRunning = 106, - InvalidManifest = 107, - InvalidApplication = 108, - LaunchFailed = 109, - ApplicationAlreadyStarting = 110, - LaunchInProgress = 111, - OldApplicationQuitting = 112, - TransitionAborted = 113, - IsTemplate = 114, - SteamVRIsExiting = 115, - BufferTooSmall = 200, - PropertyNotSet = 201, - UnknownProperty = 202, - InvalidParameter = 203, - } - public enum EVRApplicationProperty - { - Name_String = 0, - LaunchType_String = 11, - WorkingDirectory_String = 12, - BinaryPath_String = 13, - Arguments_String = 14, - URL_String = 15, - Description_String = 50, - NewsURL_String = 51, - ImagePath_String = 52, - Source_String = 53, - ActionManifestURL_String = 54, - IsDashboardOverlay_Bool = 60, - IsTemplate_Bool = 61, - IsInstanced_Bool = 62, - IsInternal_Bool = 63, - WantsCompositorPauseInStandby_Bool = 64, - LastLaunchTime_Uint64 = 70, - } - public enum EVRApplicationTransitionState - { - VRApplicationTransition_None = 0, - VRApplicationTransition_OldAppQuitSent = 10, - VRApplicationTransition_WaitingForExternalLaunch = 11, - VRApplicationTransition_NewAppLaunched = 20, - } - public enum ChaperoneCalibrationState - { - OK = 1, - Warning = 100, - Warning_BaseStationMayHaveMoved = 101, - Warning_BaseStationRemoved = 102, - Warning_SeatedBoundsInvalid = 103, - Error = 200, - Error_BaseStationUninitialized = 201, - Error_BaseStationConflict = 202, - Error_PlayAreaInvalid = 203, - Error_CollisionBoundsInvalid = 204, - } - public enum EChaperoneConfigFile - { - Live = 1, - Temp = 2, - } - public enum EChaperoneImportFlags - { - EChaperoneImport_BoundsOnly = 1, - } - public enum EVRCompositorError - { - None = 0, - RequestFailed = 1, - IncompatibleVersion = 100, - DoNotHaveFocus = 101, - InvalidTexture = 102, - IsNotSceneApplication = 103, - TextureIsOnWrongDevice = 104, - TextureUsesUnsupportedFormat = 105, - SharedTexturesNotSupported = 106, - IndexOutOfRange = 107, - AlreadySubmitted = 108, - InvalidBounds = 109, - } - public enum EVRCompositorTimingMode - { - Implicit = 0, - Explicit_RuntimePerformsPostPresentHandoff = 1, - Explicit_ApplicationPerformsPostPresentHandoff = 2, - } - public enum VROverlayInputMethod - { - None = 0, - Mouse = 1, - DualAnalog = 2, - } - public enum VROverlayTransformType - { - VROverlayTransform_Absolute = 0, - VROverlayTransform_TrackedDeviceRelative = 1, - VROverlayTransform_SystemOverlay = 2, - VROverlayTransform_TrackedComponent = 3, - } - public enum VROverlayFlags - { - None = 0, - Curved = 1, - RGSS4X = 2, - NoDashboardTab = 3, - AcceptsGamepadEvents = 4, - ShowGamepadFocus = 5, - SendVRScrollEvents = 6, - SendVRTouchpadEvents = 7, - ShowTouchPadScrollWheel = 8, - TransferOwnershipToInternalProcess = 9, - SideBySide_Parallel = 10, - SideBySide_Crossed = 11, - Panorama = 12, - StereoPanorama = 13, - SortWithNonSceneOverlays = 14, - VisibleInDashboard = 15, - MakeOverlaysInteractiveIfVisible = 16, - } - public enum VRMessageOverlayResponse - { - ButtonPress_0 = 0, - ButtonPress_1 = 1, - ButtonPress_2 = 2, - ButtonPress_3 = 3, - CouldntFindSystemOverlay = 4, - CouldntFindOrCreateClientOverlay = 5, - ApplicationQuit = 6, - } - public enum EGamepadTextInputMode - { - k_EGamepadTextInputModeNormal = 0, - k_EGamepadTextInputModePassword = 1, - k_EGamepadTextInputModeSubmit = 2, - } - public enum EGamepadTextInputLineMode - { - k_EGamepadTextInputLineModeSingleLine = 0, - k_EGamepadTextInputLineModeMultipleLines = 1, - } - public enum EOverlayDirection - { - Up = 0, - Down = 1, - Left = 2, - Right = 3, - Count = 4, - } - public enum EVROverlayIntersectionMaskPrimitiveType - { - OverlayIntersectionPrimitiveType_Rectangle = 0, - OverlayIntersectionPrimitiveType_Circle = 1, - } - public enum EVRRenderModelError - { - None = 0, - Loading = 100, - NotSupported = 200, - InvalidArg = 300, - InvalidModel = 301, - NoShapes = 302, - MultipleShapes = 303, - TooManyVertices = 304, - MultipleTextures = 305, - BufferTooSmall = 306, - NotEnoughNormals = 307, - NotEnoughTexCoords = 308, - InvalidTexture = 400, - } - public enum EVRComponentProperty - { - IsStatic = 1, - IsVisible = 2, - IsTouched = 4, - IsPressed = 8, - IsScrolled = 16, - } - public enum EVRNotificationType - { - Transient = 0, - Persistent = 1, - Transient_SystemWithUserValue = 2, - } - public enum EVRNotificationStyle - { - None = 0, - Application = 100, - Contact_Disabled = 200, - Contact_Enabled = 201, - Contact_Active = 202, - } - public enum EVRSettingsError - { - None = 0, - IPCFailed = 1, - WriteFailed = 2, - ReadFailed = 3, - JsonParseFailed = 4, - UnsetSettingHasNoDefault = 5, - } - public enum EVRScreenshotError - { - None = 0, - RequestFailed = 1, - IncompatibleVersion = 100, - NotFound = 101, - BufferTooSmall = 102, - ScreenshotAlreadyInProgress = 108, - } - public enum EVRSkeletalTransformSpace - { - Model = 0, - Parent = 1, - } - public enum EVRSkeletalReferencePose - { - BindPose = 0, - OpenHand = 1, - Fist = 2, - GripLimit = 3, - } - public enum EVRFinger - { - Thumb = 0, - Index = 1, - Middle = 2, - Ring = 3, - Pinky = 4, - Count = 5, - } - public enum EVRFingerSplay - { - Thumb_Index = 0, - Index_Middle = 1, - Middle_Ring = 2, - Ring_Pinky = 3, - Count = 4, - } - public enum EVRInputFilterCancelType - { - VRInputFilterCancel_Timers = 0, - VRInputFilterCancel_Momentum = 1, - } - public enum EVRInputStringBits - { - VRInputString_Hand = 1, - VRInputString_ControllerType = 2, - VRInputString_InputSource = 4, - VRInputString_All = -1, - } - public enum EIOBufferError - { - IOBuffer_Success = 0, - IOBuffer_OperationFailed = 100, - IOBuffer_InvalidHandle = 101, - IOBuffer_InvalidArgument = 102, - IOBuffer_PathExists = 103, - IOBuffer_PathDoesNotExist = 104, - IOBuffer_Permission = 105, - } - public enum EIOBufferMode - { - Read = 1, - Write = 2, - Create = 512, - } - - [StructLayout(LayoutKind.Explicit)] - public struct VREvent_Data_t - { - [FieldOffset(0)] public VREvent_Reserved_t reserved; - [FieldOffset(0)] public VREvent_Controller_t controller; - [FieldOffset(0)] public VREvent_Mouse_t mouse; - [FieldOffset(0)] public VREvent_Scroll_t scroll; - [FieldOffset(0)] public VREvent_Process_t process; - [FieldOffset(0)] public VREvent_Notification_t notification; - [FieldOffset(0)] public VREvent_Overlay_t overlay; - [FieldOffset(0)] public VREvent_Status_t status; - [FieldOffset(0)] public VREvent_Ipd_t ipd; - [FieldOffset(0)] public VREvent_Chaperone_t chaperone; - [FieldOffset(0)] public VREvent_PerformanceTest_t performanceTest; - [FieldOffset(0)] public VREvent_TouchPadMove_t touchPadMove; - [FieldOffset(0)] public VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset; - [FieldOffset(0)] public VREvent_Screenshot_t screenshot; - [FieldOffset(0)] public VREvent_ScreenshotProgress_t screenshotProgress; - [FieldOffset(0)] public VREvent_ApplicationLaunch_t applicationLaunch; - [FieldOffset(0)] public VREvent_EditingCameraSurface_t cameraSurface; - [FieldOffset(0)] public VREvent_MessageOverlay_t messageOverlay; - [FieldOffset(0)] public VREvent_Property_t property; - [FieldOffset(0)] public VREvent_DualAnalog_t dualAnalog; - [FieldOffset(0)] public VREvent_HapticVibration_t hapticVibration; - [FieldOffset(0)] public VREvent_WebConsole_t webConsole; - [FieldOffset(0)] public VREvent_InputBindingLoad_t inputBinding; - [FieldOffset(0)] public VREvent_SpatialAnchor_t spatialAnchor; - [FieldOffset(0)] public VREvent_InputActionManifestLoad_t actionManifest; - [FieldOffset(0)] public VREvent_ProgressUpdate_t progressUpdate; - [FieldOffset(0)] public VREvent_ShowUI_t showUi; - [FieldOffset(0)] public VREvent_Keyboard_t keyboard; // This has to be at the end due to a mono bug - } - - - [StructLayout(LayoutKind.Explicit)] - public struct VROverlayIntersectionMaskPrimitive_Data_t - { - [FieldOffset(0)] public IntersectionMaskRectangle_t m_Rectangle; - [FieldOffset(0)] public IntersectionMaskCircle_t m_Circle; - } - - [StructLayout(LayoutKind.Sequential)] - public struct HmdMatrix34_t - { - public float m0; // float[3][4] - public float m1; - public float m2; - public float m3; - public float m4; - public float m5; - public float m6; - public float m7; - public float m8; - public float m9; - public float m10; - public float m11; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdMatrix33_t - { - public float m0; // float[3][3] - public float m1; - public float m2; - public float m3; - public float m4; - public float m5; - public float m6; - public float m7; - public float m8; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdMatrix44_t - { - public float m0; // float[4][4] - public float m1; - public float m2; - public float m3; - public float m4; - public float m5; - public float m6; - public float m7; - public float m8; - public float m9; - public float m10; - public float m11; - public float m12; - public float m13; - public float m14; - public float m15; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdVector3_t - { - public float v0; // float[3] - public float v1; - public float v2; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdVector4_t - { - public float v0; // float[4] - public float v1; - public float v2; - public float v3; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdVector3d_t - { - public double v0; // double[3] - public double v1; - public double v2; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdVector2_t - { - public float v0; // float[2] - public float v1; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdQuaternion_t - { - public double w; - public double x; - public double y; - public double z; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdQuaternionf_t - { - public float w; - public float x; - public float y; - public float z; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdColor_t - { - public float r; - public float g; - public float b; - public float a; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdQuad_t - { - public HmdVector3_t vCorners0; // HmdVector3_t[4] - public HmdVector3_t vCorners1; - public HmdVector3_t vCorners2; - public HmdVector3_t vCorners3; - } - [StructLayout(LayoutKind.Sequential)] - public struct HmdRect2_t - { - public HmdVector2_t vTopLeft; - public HmdVector2_t vBottomRight; - } - [StructLayout(LayoutKind.Sequential)] - public struct DistortionCoordinates_t - { - public float rfRed0; // float[2] - public float rfRed1; - public float rfGreen0; // float[2] - public float rfGreen1; - public float rfBlue0; // float[2] - public float rfBlue1; - } - [StructLayout(LayoutKind.Sequential)] - public struct Texture_t - { - public IntPtr handle; // void * - public ETextureType eType; - public EColorSpace eColorSpace; - } - [StructLayout(LayoutKind.Sequential)] - public struct TrackedDevicePose_t - { - public HmdMatrix34_t mDeviceToAbsoluteTracking; - public HmdVector3_t vVelocity; - public HmdVector3_t vAngularVelocity; - public ETrackingResult eTrackingResult; - [MarshalAs(UnmanagedType.I1)] - public bool bPoseIsValid; - [MarshalAs(UnmanagedType.I1)] - public bool bDeviceIsConnected; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRTextureBounds_t - { - public float uMin; - public float vMin; - public float uMax; - public float vMax; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRTextureWithPose_t - { - public HmdMatrix34_t mDeviceToAbsoluteTracking; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRTextureDepthInfo_t - { - public IntPtr handle; // void * - public HmdMatrix44_t mProjection; - public HmdVector2_t vRange; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRTextureWithDepth_t - { - public VRTextureDepthInfo_t depth; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRTextureWithPoseAndDepth_t - { - public VRTextureDepthInfo_t depth; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRVulkanTextureData_t - { - public ulong m_nImage; - public IntPtr m_pDevice; // struct VkDevice_T * - public IntPtr m_pPhysicalDevice; // struct VkPhysicalDevice_T * - public IntPtr m_pInstance; // struct VkInstance_T * - public IntPtr m_pQueue; // struct VkQueue_T * - public uint m_nQueueFamilyIndex; - public uint m_nWidth; - public uint m_nHeight; - public uint m_nFormat; - public uint m_nSampleCount; - } - [StructLayout(LayoutKind.Sequential)] - public struct D3D12TextureData_t - { - public IntPtr m_pResource; // struct ID3D12Resource * - public IntPtr m_pCommandQueue; // struct ID3D12CommandQueue * - public uint m_nNodeMask; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Controller_t - { - public uint button; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Mouse_t - { - public float x; - public float y; - public uint button; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Scroll_t - { - public float xdelta; - public float ydelta; - public uint repeatCount; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_TouchPadMove_t - { - [MarshalAs(UnmanagedType.I1)] - public bool bFingerDown; - public float flSecondsFingerDown; - public float fValueXFirst; - public float fValueYFirst; - public float fValueXRaw; - public float fValueYRaw; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Notification_t - { - public ulong ulUserValue; - public uint notificationId; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Process_t - { - public uint pid; - public uint oldPid; - [MarshalAs(UnmanagedType.I1)] - public bool bForced; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Overlay_t - { - public ulong overlayHandle; - public ulong devicePath; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Status_t - { - public uint statusState; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Keyboard_t - { - public byte cNewInput0, cNewInput1, cNewInput2, cNewInput3, cNewInput4, cNewInput5, cNewInput6, cNewInput7; - public string cNewInput - { - get - { - return new string(new char[] { - (char)cNewInput0, - (char)cNewInput1, - (char)cNewInput2, - (char)cNewInput3, - (char)cNewInput4, - (char)cNewInput5, - (char)cNewInput6, - (char)cNewInput7 - }).TrimEnd('\0'); - } - } - public ulong uUserValue; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Ipd_t - { - public float ipdMeters; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Chaperone_t - { - public ulong m_nPreviousUniverse; - public ulong m_nCurrentUniverse; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Reserved_t - { - public ulong reserved0; - public ulong reserved1; - public ulong reserved2; - public ulong reserved3; - public ulong reserved4; - public ulong reserved5; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_PerformanceTest_t - { - public uint m_nFidelityLevel; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_SeatedZeroPoseReset_t - { - [MarshalAs(UnmanagedType.I1)] - public bool bResetBySystemMenu; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Screenshot_t - { - public uint handle; - public uint type; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_ScreenshotProgress_t - { - public float progress; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_ApplicationLaunch_t - { - public uint pid; - public uint unArgsHandle; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_EditingCameraSurface_t - { - public ulong overlayHandle; - public uint nVisualMode; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_MessageOverlay_t - { - public uint unVRMessageOverlayResponse; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_Property_t - { - public ulong container; - public ETrackedDeviceProperty prop; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_DualAnalog_t - { - public float x; - public float y; - public float transformedX; - public float transformedY; - public EDualAnalogWhich which; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_HapticVibration_t - { - public ulong containerHandle; - public ulong componentHandle; - public float fDurationSeconds; - public float fFrequency; - public float fAmplitude; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_WebConsole_t - { - public ulong webConsoleHandle; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_InputBindingLoad_t - { - public ulong ulAppContainer; - public ulong pathMessage; - public ulong pathUrl; - public ulong pathControllerType; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_InputActionManifestLoad_t - { - public ulong pathAppKey; - public ulong pathMessage; - public ulong pathMessageParam; - public ulong pathManifestPath; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_SpatialAnchor_t - { - public uint unHandle; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_ProgressUpdate_t - { - public ulong ulApplicationPropertyContainer; - public ulong pathDevice; - public ulong pathInputSource; - public ulong pathProgressAction; - public ulong pathIcon; - public float fProgress; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_ShowUI_t - { - public EShowUIType eType; - } - [StructLayout(LayoutKind.Sequential)] - public struct VREvent_t - { - public uint eventType; - public uint trackedDeviceIndex; - public float eventAgeSeconds; - public VREvent_Data_t data; - } - // This structure is for backwards binary compatibility on Linux and OSX only - [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct VREvent_t_Packed - { - public uint eventType; - public uint trackedDeviceIndex; - public float eventAgeSeconds; - public VREvent_Data_t data; - public VREvent_t_Packed(VREvent_t unpacked) - { - this.eventType = unpacked.eventType; - this.trackedDeviceIndex = unpacked.trackedDeviceIndex; - this.eventAgeSeconds = unpacked.eventAgeSeconds; - this.data = unpacked.data; - } - public void Unpack(ref VREvent_t unpacked) - { - unpacked.eventType = this.eventType; - unpacked.trackedDeviceIndex = this.trackedDeviceIndex; - unpacked.eventAgeSeconds = this.eventAgeSeconds; - unpacked.data = this.data; - } - } - [StructLayout(LayoutKind.Sequential)] - public struct HiddenAreaMesh_t - { - public IntPtr pVertexData; // const struct vr::HmdVector2_t * - public uint unTriangleCount; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRControllerAxis_t - { - public float x; - public float y; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRControllerState_t - { - public uint unPacketNum; - public ulong ulButtonPressed; - public ulong ulButtonTouched; - public VRControllerAxis_t rAxis0; // VRControllerAxis_t[5] - public VRControllerAxis_t rAxis1; - public VRControllerAxis_t rAxis2; - public VRControllerAxis_t rAxis3; - public VRControllerAxis_t rAxis4; - } - // This structure is for backwards binary compatibility on Linux and OSX only - [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct VRControllerState_t_Packed - { - public uint unPacketNum; - public ulong ulButtonPressed; - public ulong ulButtonTouched; - public VRControllerAxis_t rAxis0; // VRControllerAxis_t[5] - public VRControllerAxis_t rAxis1; - public VRControllerAxis_t rAxis2; - public VRControllerAxis_t rAxis3; - public VRControllerAxis_t rAxis4; - public VRControllerState_t_Packed(VRControllerState_t unpacked) - { - this.unPacketNum = unpacked.unPacketNum; - this.ulButtonPressed = unpacked.ulButtonPressed; - this.ulButtonTouched = unpacked.ulButtonTouched; - this.rAxis0 = unpacked.rAxis0; - this.rAxis1 = unpacked.rAxis1; - this.rAxis2 = unpacked.rAxis2; - this.rAxis3 = unpacked.rAxis3; - this.rAxis4 = unpacked.rAxis4; - } - public void Unpack(ref VRControllerState_t unpacked) - { - unpacked.unPacketNum = this.unPacketNum; - unpacked.ulButtonPressed = this.ulButtonPressed; - unpacked.ulButtonTouched = this.ulButtonTouched; - unpacked.rAxis0 = this.rAxis0; - unpacked.rAxis1 = this.rAxis1; - unpacked.rAxis2 = this.rAxis2; - unpacked.rAxis3 = this.rAxis3; - unpacked.rAxis4 = this.rAxis4; - } - } - [StructLayout(LayoutKind.Sequential)] - public struct Compositor_OverlaySettings - { - public uint size; - [MarshalAs(UnmanagedType.I1)] - public bool curved; - [MarshalAs(UnmanagedType.I1)] - public bool antialias; - public float scale; - public float distance; - public float alpha; - public float uOffset; - public float vOffset; - public float uScale; - public float vScale; - public float gridDivs; - public float gridWidth; - public float gridScale; - public HmdMatrix44_t transform; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRBoneTransform_t - { - public HmdVector4_t position; - public HmdQuaternionf_t orientation; - } - [StructLayout(LayoutKind.Sequential)] - public struct CameraVideoStreamFrameHeader_t - { - public EVRTrackedCameraFrameType eFrameType; - public uint nWidth; - public uint nHeight; - public uint nBytesPerPixel; - public uint nFrameSequence; - public TrackedDevicePose_t standingTrackedDevicePose; - public ulong ulFrameExposureTime; - } - [StructLayout(LayoutKind.Sequential)] - public struct DriverDirectMode_FrameTiming - { - public uint m_nSize; - public uint m_nNumFramePresents; - public uint m_nNumMisPresented; - public uint m_nNumDroppedFrames; - public uint m_nReprojectionFlags; - } - [StructLayout(LayoutKind.Sequential)] - public struct ImuSample_t - { - public double fSampleTime; - public HmdVector3d_t vAccel; - public HmdVector3d_t vGyro; - public uint unOffScaleFlags; - } - [StructLayout(LayoutKind.Sequential)] - public struct AppOverrideKeys_t - { - public IntPtr pchKey; // const char * - public IntPtr pchValue; // const char * - } - [StructLayout(LayoutKind.Sequential)] - public struct Compositor_FrameTiming - { - public uint m_nSize; - public uint m_nFrameIndex; - public uint m_nNumFramePresents; - public uint m_nNumMisPresented; - public uint m_nNumDroppedFrames; - public uint m_nReprojectionFlags; - public double m_flSystemTimeInSeconds; - public float m_flPreSubmitGpuMs; - public float m_flPostSubmitGpuMs; - public float m_flTotalRenderGpuMs; - public float m_flCompositorRenderGpuMs; - public float m_flCompositorRenderCpuMs; - public float m_flCompositorIdleCpuMs; - public float m_flClientFrameIntervalMs; - public float m_flPresentCallCpuMs; - public float m_flWaitForPresentCpuMs; - public float m_flSubmitFrameMs; - public float m_flWaitGetPosesCalledMs; - public float m_flNewPosesReadyMs; - public float m_flNewFrameReadyMs; - public float m_flCompositorUpdateStartMs; - public float m_flCompositorUpdateEndMs; - public float m_flCompositorRenderStartMs; - public TrackedDevicePose_t m_HmdPose; - public uint m_nNumVSyncsReadyForUse; - public uint m_nNumVSyncsToFirstView; - } - [StructLayout(LayoutKind.Sequential)] - public struct Compositor_CumulativeStats - { - public uint m_nPid; - public uint m_nNumFramePresents; - public uint m_nNumDroppedFrames; - public uint m_nNumReprojectedFrames; - public uint m_nNumFramePresentsOnStartup; - public uint m_nNumDroppedFramesOnStartup; - public uint m_nNumReprojectedFramesOnStartup; - public uint m_nNumLoading; - public uint m_nNumFramePresentsLoading; - public uint m_nNumDroppedFramesLoading; - public uint m_nNumReprojectedFramesLoading; - public uint m_nNumTimedOut; - public uint m_nNumFramePresentsTimedOut; - public uint m_nNumDroppedFramesTimedOut; - public uint m_nNumReprojectedFramesTimedOut; - } - [StructLayout(LayoutKind.Sequential)] - public struct VROverlayIntersectionParams_t - { - public HmdVector3_t vSource; - public HmdVector3_t vDirection; - public ETrackingUniverseOrigin eOrigin; - } - [StructLayout(LayoutKind.Sequential)] - public struct VROverlayIntersectionResults_t - { - public HmdVector3_t vPoint; - public HmdVector3_t vNormal; - public HmdVector2_t vUVs; - public float fDistance; - } - [StructLayout(LayoutKind.Sequential)] - public struct IntersectionMaskRectangle_t - { - public float m_flTopLeftX; - public float m_flTopLeftY; - public float m_flWidth; - public float m_flHeight; - } - [StructLayout(LayoutKind.Sequential)] - public struct IntersectionMaskCircle_t - { - public float m_flCenterX; - public float m_flCenterY; - public float m_flRadius; - } - [StructLayout(LayoutKind.Sequential)] - public struct VROverlayIntersectionMaskPrimitive_t - { - public EVROverlayIntersectionMaskPrimitiveType m_nPrimitiveType; - public VROverlayIntersectionMaskPrimitive_Data_t m_Primitive; - } - [StructLayout(LayoutKind.Sequential)] - public struct RenderModel_ComponentState_t - { - public HmdMatrix34_t mTrackingToComponentRenderModel; - public HmdMatrix34_t mTrackingToComponentLocal; - public uint uProperties; - } - [StructLayout(LayoutKind.Sequential)] - public struct RenderModel_Vertex_t - { - public HmdVector3_t vPosition; - public HmdVector3_t vNormal; - public float rfTextureCoord0; // float[2] - public float rfTextureCoord1; - } - [StructLayout(LayoutKind.Sequential)] - public struct RenderModel_TextureMap_t - { - public ushort unWidth; - public ushort unHeight; - public IntPtr rubTextureMapData; // const uint8_t * - } - // This structure is for backwards binary compatibility on Linux and OSX only - [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct RenderModel_TextureMap_t_Packed - { - public ushort unWidth; - public ushort unHeight; - public IntPtr rubTextureMapData; // const uint8_t * - public RenderModel_TextureMap_t_Packed(RenderModel_TextureMap_t unpacked) - { - this.unWidth = unpacked.unWidth; - this.unHeight = unpacked.unHeight; - this.rubTextureMapData = unpacked.rubTextureMapData; - } - public void Unpack(ref RenderModel_TextureMap_t unpacked) - { - unpacked.unWidth = this.unWidth; - unpacked.unHeight = this.unHeight; - unpacked.rubTextureMapData = this.rubTextureMapData; - } - } - [StructLayout(LayoutKind.Sequential)] - public struct RenderModel_t - { - public IntPtr rVertexData; // const struct vr::RenderModel_Vertex_t * - public uint unVertexCount; - public IntPtr rIndexData; // const uint16_t * - public uint unTriangleCount; - public int diffuseTextureId; - } - // This structure is for backwards binary compatibility on Linux and OSX only - [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct RenderModel_t_Packed - { - public IntPtr rVertexData; // const struct vr::RenderModel_Vertex_t * - public uint unVertexCount; - public IntPtr rIndexData; // const uint16_t * - public uint unTriangleCount; - public int diffuseTextureId; - public RenderModel_t_Packed(RenderModel_t unpacked) - { - this.rVertexData = unpacked.rVertexData; - this.unVertexCount = unpacked.unVertexCount; - this.rIndexData = unpacked.rIndexData; - this.unTriangleCount = unpacked.unTriangleCount; - this.diffuseTextureId = unpacked.diffuseTextureId; - } - public void Unpack(ref RenderModel_t unpacked) - { - unpacked.rVertexData = this.rVertexData; - unpacked.unVertexCount = this.unVertexCount; - unpacked.rIndexData = this.rIndexData; - unpacked.unTriangleCount = this.unTriangleCount; - unpacked.diffuseTextureId = this.diffuseTextureId; - } - } - [StructLayout(LayoutKind.Sequential)] - public struct RenderModel_ControllerMode_State_t - { - [MarshalAs(UnmanagedType.I1)] - public bool bScrollWheelVisible; - } - [StructLayout(LayoutKind.Sequential)] - public struct NotificationBitmap_t - { - public IntPtr m_pImageData; // void * - public int m_nWidth; - public int m_nHeight; - public int m_nBytesPerPixel; - } - [StructLayout(LayoutKind.Sequential)] - public struct CVRSettingHelper - { - public IntPtr m_pSettings; // class vr::IVRSettings * - } - [StructLayout(LayoutKind.Sequential)] - public struct InputAnalogActionData_t - { - [MarshalAs(UnmanagedType.I1)] - public bool bActive; - public ulong activeOrigin; - public float x; - public float y; - public float z; - public float deltaX; - public float deltaY; - public float deltaZ; - public float fUpdateTime; - } - [StructLayout(LayoutKind.Sequential)] - public struct InputDigitalActionData_t - { - [MarshalAs(UnmanagedType.I1)] - public bool bActive; - public ulong activeOrigin; - [MarshalAs(UnmanagedType.I1)] - public bool bState; - [MarshalAs(UnmanagedType.I1)] - public bool bChanged; - public float fUpdateTime; - } - [StructLayout(LayoutKind.Sequential)] - public struct InputPoseActionData_t - { - [MarshalAs(UnmanagedType.I1)] - public bool bActive; - public ulong activeOrigin; - public TrackedDevicePose_t pose; - } - [StructLayout(LayoutKind.Sequential)] - public struct InputSkeletalActionData_t - { - [MarshalAs(UnmanagedType.I1)] - public bool bActive; - public ulong activeOrigin; - } - [StructLayout(LayoutKind.Sequential)] - public struct InputOriginInfo_t - { - public ulong devicePath; - public uint trackedDeviceIndex; - public byte rchRenderModelComponentName0, rchRenderModelComponentName1, rchRenderModelComponentName2, rchRenderModelComponentName3, rchRenderModelComponentName4, rchRenderModelComponentName5, rchRenderModelComponentName6, rchRenderModelComponentName7, rchRenderModelComponentName8, rchRenderModelComponentName9, rchRenderModelComponentName10, rchRenderModelComponentName11, rchRenderModelComponentName12, rchRenderModelComponentName13, rchRenderModelComponentName14, rchRenderModelComponentName15, rchRenderModelComponentName16, rchRenderModelComponentName17, rchRenderModelComponentName18, rchRenderModelComponentName19, rchRenderModelComponentName20, rchRenderModelComponentName21, rchRenderModelComponentName22, rchRenderModelComponentName23, rchRenderModelComponentName24, rchRenderModelComponentName25, rchRenderModelComponentName26, rchRenderModelComponentName27, rchRenderModelComponentName28, rchRenderModelComponentName29, rchRenderModelComponentName30, rchRenderModelComponentName31, rchRenderModelComponentName32, rchRenderModelComponentName33, rchRenderModelComponentName34, rchRenderModelComponentName35, rchRenderModelComponentName36, rchRenderModelComponentName37, rchRenderModelComponentName38, rchRenderModelComponentName39, rchRenderModelComponentName40, rchRenderModelComponentName41, rchRenderModelComponentName42, rchRenderModelComponentName43, rchRenderModelComponentName44, rchRenderModelComponentName45, rchRenderModelComponentName46, rchRenderModelComponentName47, rchRenderModelComponentName48, rchRenderModelComponentName49, rchRenderModelComponentName50, rchRenderModelComponentName51, rchRenderModelComponentName52, rchRenderModelComponentName53, rchRenderModelComponentName54, rchRenderModelComponentName55, rchRenderModelComponentName56, rchRenderModelComponentName57, rchRenderModelComponentName58, rchRenderModelComponentName59, rchRenderModelComponentName60, rchRenderModelComponentName61, rchRenderModelComponentName62, rchRenderModelComponentName63, rchRenderModelComponentName64, rchRenderModelComponentName65, rchRenderModelComponentName66, rchRenderModelComponentName67, rchRenderModelComponentName68, rchRenderModelComponentName69, rchRenderModelComponentName70, rchRenderModelComponentName71, rchRenderModelComponentName72, rchRenderModelComponentName73, rchRenderModelComponentName74, rchRenderModelComponentName75, rchRenderModelComponentName76, rchRenderModelComponentName77, rchRenderModelComponentName78, rchRenderModelComponentName79, rchRenderModelComponentName80, rchRenderModelComponentName81, rchRenderModelComponentName82, rchRenderModelComponentName83, rchRenderModelComponentName84, rchRenderModelComponentName85, rchRenderModelComponentName86, rchRenderModelComponentName87, rchRenderModelComponentName88, rchRenderModelComponentName89, rchRenderModelComponentName90, rchRenderModelComponentName91, rchRenderModelComponentName92, rchRenderModelComponentName93, rchRenderModelComponentName94, rchRenderModelComponentName95, rchRenderModelComponentName96, rchRenderModelComponentName97, rchRenderModelComponentName98, rchRenderModelComponentName99, rchRenderModelComponentName100, rchRenderModelComponentName101, rchRenderModelComponentName102, rchRenderModelComponentName103, rchRenderModelComponentName104, rchRenderModelComponentName105, rchRenderModelComponentName106, rchRenderModelComponentName107, rchRenderModelComponentName108, rchRenderModelComponentName109, rchRenderModelComponentName110, rchRenderModelComponentName111, rchRenderModelComponentName112, rchRenderModelComponentName113, rchRenderModelComponentName114, rchRenderModelComponentName115, rchRenderModelComponentName116, rchRenderModelComponentName117, rchRenderModelComponentName118, rchRenderModelComponentName119, rchRenderModelComponentName120, rchRenderModelComponentName121, rchRenderModelComponentName122, rchRenderModelComponentName123, rchRenderModelComponentName124, rchRenderModelComponentName125, rchRenderModelComponentName126, rchRenderModelComponentName127; - public string rchRenderModelComponentName - { - get - { - return new string(new char[] { - (char)rchRenderModelComponentName0, - (char)rchRenderModelComponentName1, - (char)rchRenderModelComponentName2, - (char)rchRenderModelComponentName3, - (char)rchRenderModelComponentName4, - (char)rchRenderModelComponentName5, - (char)rchRenderModelComponentName6, - (char)rchRenderModelComponentName7, - (char)rchRenderModelComponentName8, - (char)rchRenderModelComponentName9, - (char)rchRenderModelComponentName10, - (char)rchRenderModelComponentName11, - (char)rchRenderModelComponentName12, - (char)rchRenderModelComponentName13, - (char)rchRenderModelComponentName14, - (char)rchRenderModelComponentName15, - (char)rchRenderModelComponentName16, - (char)rchRenderModelComponentName17, - (char)rchRenderModelComponentName18, - (char)rchRenderModelComponentName19, - (char)rchRenderModelComponentName20, - (char)rchRenderModelComponentName21, - (char)rchRenderModelComponentName22, - (char)rchRenderModelComponentName23, - (char)rchRenderModelComponentName24, - (char)rchRenderModelComponentName25, - (char)rchRenderModelComponentName26, - (char)rchRenderModelComponentName27, - (char)rchRenderModelComponentName28, - (char)rchRenderModelComponentName29, - (char)rchRenderModelComponentName30, - (char)rchRenderModelComponentName31, - (char)rchRenderModelComponentName32, - (char)rchRenderModelComponentName33, - (char)rchRenderModelComponentName34, - (char)rchRenderModelComponentName35, - (char)rchRenderModelComponentName36, - (char)rchRenderModelComponentName37, - (char)rchRenderModelComponentName38, - (char)rchRenderModelComponentName39, - (char)rchRenderModelComponentName40, - (char)rchRenderModelComponentName41, - (char)rchRenderModelComponentName42, - (char)rchRenderModelComponentName43, - (char)rchRenderModelComponentName44, - (char)rchRenderModelComponentName45, - (char)rchRenderModelComponentName46, - (char)rchRenderModelComponentName47, - (char)rchRenderModelComponentName48, - (char)rchRenderModelComponentName49, - (char)rchRenderModelComponentName50, - (char)rchRenderModelComponentName51, - (char)rchRenderModelComponentName52, - (char)rchRenderModelComponentName53, - (char)rchRenderModelComponentName54, - (char)rchRenderModelComponentName55, - (char)rchRenderModelComponentName56, - (char)rchRenderModelComponentName57, - (char)rchRenderModelComponentName58, - (char)rchRenderModelComponentName59, - (char)rchRenderModelComponentName60, - (char)rchRenderModelComponentName61, - (char)rchRenderModelComponentName62, - (char)rchRenderModelComponentName63, - (char)rchRenderModelComponentName64, - (char)rchRenderModelComponentName65, - (char)rchRenderModelComponentName66, - (char)rchRenderModelComponentName67, - (char)rchRenderModelComponentName68, - (char)rchRenderModelComponentName69, - (char)rchRenderModelComponentName70, - (char)rchRenderModelComponentName71, - (char)rchRenderModelComponentName72, - (char)rchRenderModelComponentName73, - (char)rchRenderModelComponentName74, - (char)rchRenderModelComponentName75, - (char)rchRenderModelComponentName76, - (char)rchRenderModelComponentName77, - (char)rchRenderModelComponentName78, - (char)rchRenderModelComponentName79, - (char)rchRenderModelComponentName80, - (char)rchRenderModelComponentName81, - (char)rchRenderModelComponentName82, - (char)rchRenderModelComponentName83, - (char)rchRenderModelComponentName84, - (char)rchRenderModelComponentName85, - (char)rchRenderModelComponentName86, - (char)rchRenderModelComponentName87, - (char)rchRenderModelComponentName88, - (char)rchRenderModelComponentName89, - (char)rchRenderModelComponentName90, - (char)rchRenderModelComponentName91, - (char)rchRenderModelComponentName92, - (char)rchRenderModelComponentName93, - (char)rchRenderModelComponentName94, - (char)rchRenderModelComponentName95, - (char)rchRenderModelComponentName96, - (char)rchRenderModelComponentName97, - (char)rchRenderModelComponentName98, - (char)rchRenderModelComponentName99, - (char)rchRenderModelComponentName100, - (char)rchRenderModelComponentName101, - (char)rchRenderModelComponentName102, - (char)rchRenderModelComponentName103, - (char)rchRenderModelComponentName104, - (char)rchRenderModelComponentName105, - (char)rchRenderModelComponentName106, - (char)rchRenderModelComponentName107, - (char)rchRenderModelComponentName108, - (char)rchRenderModelComponentName109, - (char)rchRenderModelComponentName110, - (char)rchRenderModelComponentName111, - (char)rchRenderModelComponentName112, - (char)rchRenderModelComponentName113, - (char)rchRenderModelComponentName114, - (char)rchRenderModelComponentName115, - (char)rchRenderModelComponentName116, - (char)rchRenderModelComponentName117, - (char)rchRenderModelComponentName118, - (char)rchRenderModelComponentName119, - (char)rchRenderModelComponentName120, - (char)rchRenderModelComponentName121, - (char)rchRenderModelComponentName122, - (char)rchRenderModelComponentName123, - (char)rchRenderModelComponentName124, - (char)rchRenderModelComponentName125, - (char)rchRenderModelComponentName126, - (char)rchRenderModelComponentName127 - }).TrimEnd('\0'); - } - } - } - [StructLayout(LayoutKind.Sequential)] - public struct VRActiveActionSet_t - { - public ulong ulActionSet; - public ulong ulRestrictedToDevice; - public ulong ulSecondaryActionSet; - public uint unPadding; - public int nPriority; - } - [StructLayout(LayoutKind.Sequential)] - public struct VRSkeletalSummaryData_t - { - public float flFingerCurl0; // float[5] - public float flFingerCurl1; - public float flFingerCurl2; - public float flFingerCurl3; - public float flFingerCurl4; - public float flFingerSplay0; // float[4] - public float flFingerSplay1; - public float flFingerSplay2; - public float flFingerSplay3; - } - [StructLayout(LayoutKind.Sequential)] - public struct SpatialAnchorPose_t - { - public HmdMatrix34_t mAnchorToAbsoluteTracking; - } - [StructLayout(LayoutKind.Sequential)] - public struct COpenVRContext - { - public IntPtr m_pVRSystem; // class vr::IVRSystem * - public IntPtr m_pVRChaperone; // class vr::IVRChaperone * - public IntPtr m_pVRChaperoneSetup; // class vr::IVRChaperoneSetup * - public IntPtr m_pVRCompositor; // class vr::IVRCompositor * - public IntPtr m_pVROverlay; // class vr::IVROverlay * - public IntPtr m_pVRResources; // class vr::IVRResources * - public IntPtr m_pVRRenderModels; // class vr::IVRRenderModels * - public IntPtr m_pVRExtendedDisplay; // class vr::IVRExtendedDisplay * - public IntPtr m_pVRSettings; // class vr::IVRSettings * - public IntPtr m_pVRApplications; // class vr::IVRApplications * - public IntPtr m_pVRTrackedCamera; // class vr::IVRTrackedCamera * - public IntPtr m_pVRScreenshots; // class vr::IVRScreenshots * - public IntPtr m_pVRDriverManager; // class vr::IVRDriverManager * - public IntPtr m_pVRInput; // class vr::IVRInput * - public IntPtr m_pVRIOBuffer; // class vr::IVRIOBuffer * - public IntPtr m_pVRSpatialAnchors; // class vr::IVRSpatialAnchors * - } - - public class OpenVR - { - - public static uint InitInternal(ref EVRInitError peError, EVRApplicationType eApplicationType) - { - return OpenVRInterop.InitInternal(ref peError, eApplicationType); - } - - public static uint InitInternal2(ref EVRInitError peError, EVRApplicationType eApplicationType, string pchStartupInfo) - { - return OpenVRInterop.InitInternal2(ref peError, eApplicationType, pchStartupInfo); - } - - public static void ShutdownInternal() - { - OpenVRInterop.ShutdownInternal(); - } - - public static bool IsHmdPresent() - { - return OpenVRInterop.IsHmdPresent(); - } - - public static bool IsRuntimeInstalled() - { - return OpenVRInterop.IsRuntimeInstalled(); - } - - public static string RuntimePath() - { - return OpenVRInterop.RuntimePath(); - } - - public static string GetStringForHmdError(EVRInitError error) - { - return Marshal.PtrToStringAnsi(OpenVRInterop.GetStringForHmdError(error)); - } - - public static IntPtr GetGenericInterface(string pchInterfaceVersion, ref EVRInitError peError) - { - return OpenVRInterop.GetGenericInterface(pchInterfaceVersion, ref peError); - } - - public static bool IsInterfaceVersionValid(string pchInterfaceVersion) - { - return OpenVRInterop.IsInterfaceVersionValid(pchInterfaceVersion); - } - - public static uint GetInitToken() - { - return OpenVRInterop.GetInitToken(); - } - - public const uint k_nDriverNone = 4294967295; - public const uint k_unMaxDriverDebugResponseSize = 32768; - public const uint k_unTrackedDeviceIndex_Hmd = 0; - public const uint k_unMaxTrackedDeviceCount = 64; - public const uint k_unTrackedDeviceIndexOther = 4294967294; - public const uint k_unTrackedDeviceIndexInvalid = 4294967295; - public const ulong k_ulInvalidPropertyContainer = 0; - public const uint k_unInvalidPropertyTag = 0; - public const ulong k_ulInvalidDriverHandle = 0; - public const uint k_unFloatPropertyTag = 1; - public const uint k_unInt32PropertyTag = 2; - public const uint k_unUint64PropertyTag = 3; - public const uint k_unBoolPropertyTag = 4; - public const uint k_unStringPropertyTag = 5; - public const uint k_unHmdMatrix34PropertyTag = 20; - public const uint k_unHmdMatrix44PropertyTag = 21; - public const uint k_unHmdVector3PropertyTag = 22; - public const uint k_unHmdVector4PropertyTag = 23; - public const uint k_unHmdVector2PropertyTag = 24; - public const uint k_unHmdQuadPropertyTag = 25; - public const uint k_unHiddenAreaPropertyTag = 30; - public const uint k_unPathHandleInfoTag = 31; - public const uint k_unActionPropertyTag = 32; - public const uint k_unInputValuePropertyTag = 33; - public const uint k_unWildcardPropertyTag = 34; - public const uint k_unHapticVibrationPropertyTag = 35; - public const uint k_unSkeletonPropertyTag = 36; - public const uint k_unSpatialAnchorPosePropertyTag = 40; - public const uint k_unJsonPropertyTag = 41; - public const uint k_unOpenVRInternalReserved_Start = 1000; - public const uint k_unOpenVRInternalReserved_End = 10000; - public const uint k_unMaxPropertyStringSize = 32768; - public const ulong k_ulInvalidActionHandle = 0; - public const ulong k_ulInvalidActionSetHandle = 0; - public const ulong k_ulInvalidInputValueHandle = 0; - public const uint k_unControllerStateAxisCount = 5; - public const ulong k_ulOverlayHandleInvalid = 0; - public const uint k_unMaxDistortionFunctionParameters = 8; - public const uint k_unScreenshotHandleInvalid = 0; - public const string IVRSystem_Version = "IVRSystem_019"; - public const string IVRExtendedDisplay_Version = "IVRExtendedDisplay_001"; - public const string IVRTrackedCamera_Version = "IVRTrackedCamera_005"; - public const uint k_unMaxApplicationKeyLength = 128; - public const string k_pch_MimeType_HomeApp = "vr/home"; - public const string k_pch_MimeType_GameTheater = "vr/game_theater"; - public const string IVRApplications_Version = "IVRApplications_006"; - public const string IVRChaperone_Version = "IVRChaperone_003"; - public const string IVRChaperoneSetup_Version = "IVRChaperoneSetup_006"; - public const string IVRCompositor_Version = "IVRCompositor_022"; - public const uint k_unVROverlayMaxKeyLength = 128; - public const uint k_unVROverlayMaxNameLength = 128; - public const uint k_unMaxOverlayCount = 64; - public const uint k_unMaxOverlayIntersectionMaskPrimitivesCount = 32; - public const string IVROverlay_Version = "IVROverlay_019"; - public const string k_pch_Controller_Component_GDC2015 = "gdc2015"; - public const string k_pch_Controller_Component_Base = "base"; - public const string k_pch_Controller_Component_Tip = "tip"; - public const string k_pch_Controller_Component_HandGrip = "handgrip"; - public const string k_pch_Controller_Component_Status = "status"; - public const string IVRRenderModels_Version = "IVRRenderModels_006"; - public const uint k_unNotificationTextMaxSize = 256; - public const string IVRNotifications_Version = "IVRNotifications_002"; - public const uint k_unMaxSettingsKeyLength = 128; - public const string IVRSettings_Version = "IVRSettings_002"; - public const string k_pch_SteamVR_Section = "steamvr"; - public const string k_pch_SteamVR_RequireHmd_String = "requireHmd"; - public const string k_pch_SteamVR_ForcedDriverKey_String = "forcedDriver"; - public const string k_pch_SteamVR_ForcedHmdKey_String = "forcedHmd"; - public const string k_pch_SteamVR_DisplayDebug_Bool = "displayDebug"; - public const string k_pch_SteamVR_DebugProcessPipe_String = "debugProcessPipe"; - public const string k_pch_SteamVR_DisplayDebugX_Int32 = "displayDebugX"; - public const string k_pch_SteamVR_DisplayDebugY_Int32 = "displayDebugY"; - public const string k_pch_SteamVR_SendSystemButtonToAllApps_Bool = "sendSystemButtonToAllApps"; - public const string k_pch_SteamVR_LogLevel_Int32 = "loglevel"; - public const string k_pch_SteamVR_IPD_Float = "ipd"; - public const string k_pch_SteamVR_Background_String = "background"; - public const string k_pch_SteamVR_BackgroundUseDomeProjection_Bool = "backgroundUseDomeProjection"; - public const string k_pch_SteamVR_BackgroundCameraHeight_Float = "backgroundCameraHeight"; - public const string k_pch_SteamVR_BackgroundDomeRadius_Float = "backgroundDomeRadius"; - public const string k_pch_SteamVR_GridColor_String = "gridColor"; - public const string k_pch_SteamVR_PlayAreaColor_String = "playAreaColor"; - public const string k_pch_SteamVR_ShowStage_Bool = "showStage"; - public const string k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers"; - public const string k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers"; - public const string k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees"; - public const string k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement"; - public const string k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses"; - public const string k_pch_SteamVR_SupersampleScale_Float = "supersampleScale"; - public const string k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution"; - public const string k_pch_SteamVR_MotionSmoothing_Bool = "motionSmoothing"; - public const string k_pch_SteamVR_MotionSmoothingOverride_Int32 = "motionSmoothingOverride"; - public const string k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking"; - public const string k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView"; - public const string k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView"; - public const string k_pch_SteamVR_MirrorViewGeometry_String = "mirrorViewGeometry"; - public const string k_pch_SteamVR_MirrorViewGeometryMaximized_String = "mirrorViewGeometryMaximized"; - public const string k_pch_SteamVR_StartMonitorFromAppLaunch = "startMonitorFromAppLaunch"; - public const string k_pch_SteamVR_StartCompositorFromAppLaunch_Bool = "startCompositorFromAppLaunch"; - public const string k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch"; - public const string k_pch_SteamVR_StartOverlayAppsFromDashboard_Bool = "startOverlayAppsFromDashboard"; - public const string k_pch_SteamVR_EnableHomeApp = "enableHomeApp"; - public const string k_pch_SteamVR_CycleBackgroundImageTimeSec_Int32 = "CycleBackgroundImageTimeSec"; - public const string k_pch_SteamVR_RetailDemo_Bool = "retailDemo"; - public const string k_pch_SteamVR_IpdOffset_Float = "ipdOffset"; - public const string k_pch_SteamVR_AllowSupersampleFiltering_Bool = "allowSupersampleFiltering"; - public const string k_pch_SteamVR_SupersampleManualOverride_Bool = "supersampleManualOverride"; - public const string k_pch_SteamVR_EnableLinuxVulkanAsync_Bool = "enableLinuxVulkanAsync"; - public const string k_pch_SteamVR_AllowDisplayLockedMode_Bool = "allowDisplayLockedMode"; - public const string k_pch_SteamVR_HaveStartedTutorialForNativeChaperoneDriver_Bool = "haveStartedTutorialForNativeChaperoneDriver"; - public const string k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor"; - public const string k_pch_SteamVR_DebugInput = "debugInput"; - public const string k_pch_SteamVR_LegacyInputRebinding = "legacyInputRebinding"; - public const string k_pch_SteamVR_DebugInputBinding = "debugInputBinding"; - public const string k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI"; - public const string k_pch_SteamVR_RenderCameraMode = "renderCameraMode"; - public const string k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling"; - public const string k_pch_SteamVR_EnableSafeMode = "enableSafeMode"; - public const string k_pch_SteamVR_PreferredRefreshRate = "preferredRefreshRate"; - public const string k_pch_DirectMode_Section = "direct_mode"; - public const string k_pch_DirectMode_Enable_Bool = "enable"; - public const string k_pch_DirectMode_Count_Int32 = "count"; - public const string k_pch_DirectMode_EdidVid_Int32 = "edidVid"; - public const string k_pch_DirectMode_EdidPid_Int32 = "edidPid"; - public const string k_pch_Lighthouse_Section = "driver_lighthouse"; - public const string k_pch_Lighthouse_DisableIMU_Bool = "disableimu"; - public const string k_pch_Lighthouse_DisableIMUExceptHMD_Bool = "disableimuexcepthmd"; - public const string k_pch_Lighthouse_UseDisambiguation_String = "usedisambiguation"; - public const string k_pch_Lighthouse_DisambiguationDebug_Int32 = "disambiguationdebug"; - public const string k_pch_Lighthouse_PrimaryBasestation_Int32 = "primarybasestation"; - public const string k_pch_Lighthouse_DBHistory_Bool = "dbhistory"; - public const string k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth"; - public const string k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations"; - public const string k_pch_Lighthouse_PowerManagedBaseStations2_String = "PowerManagedBaseStations2"; - public const string k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback"; - public const string k_pch_Null_Section = "driver_null"; - public const string k_pch_Null_SerialNumber_String = "serialNumber"; - public const string k_pch_Null_ModelNumber_String = "modelNumber"; - public const string k_pch_Null_WindowX_Int32 = "windowX"; - public const string k_pch_Null_WindowY_Int32 = "windowY"; - public const string k_pch_Null_WindowWidth_Int32 = "windowWidth"; - public const string k_pch_Null_WindowHeight_Int32 = "windowHeight"; - public const string k_pch_Null_RenderWidth_Int32 = "renderWidth"; - public const string k_pch_Null_RenderHeight_Int32 = "renderHeight"; - public const string k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons"; - public const string k_pch_Null_DisplayFrequency_Float = "displayFrequency"; - public const string k_pch_UserInterface_Section = "userinterface"; - public const string k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop"; - public const string k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray"; - public const string k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized"; - public const string k_pch_UserInterface_Screenshots_Bool = "screenshots"; - public const string k_pch_UserInterface_ScreenshotType_Int = "screenshotType"; - public const string k_pch_Notifications_Section = "notifications"; - public const string k_pch_Notifications_DoNotDisturb_Bool = "DoNotDisturb"; - public const string k_pch_Keyboard_Section = "keyboard"; - public const string k_pch_Keyboard_TutorialCompletions = "TutorialCompletions"; - public const string k_pch_Keyboard_ScaleX = "ScaleX"; - public const string k_pch_Keyboard_ScaleY = "ScaleY"; - public const string k_pch_Keyboard_OffsetLeftX = "OffsetLeftX"; - public const string k_pch_Keyboard_OffsetRightX = "OffsetRightX"; - public const string k_pch_Keyboard_OffsetY = "OffsetY"; - public const string k_pch_Keyboard_Smoothing = "Smoothing"; - public const string k_pch_Perf_Section = "perfcheck"; - public const string k_pch_Perf_PerfGraphInHMD_Bool = "perfGraphInHMD"; - public const string k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore"; - public const string k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit"; - public const string k_pch_Perf_TestData_Float = "perfTestData"; - public const string k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling"; - public const string k_pch_CollisionBounds_Section = "collisionBounds"; - public const string k_pch_CollisionBounds_Style_Int32 = "CollisionBoundsStyle"; - public const string k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBoundsGroundPerimeterOn"; - public const string k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn"; - public const string k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn"; - public const string k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance"; - public const string k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR"; - public const string k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG"; - public const string k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB"; - public const string k_pch_CollisionBounds_ColorGammaA_Int32 = "CollisionBoundsColorGammaA"; - public const string k_pch_Camera_Section = "camera"; - public const string k_pch_Camera_EnableCamera_Bool = "enableCamera"; - public const string k_pch_Camera_EnableCameraInDashboard_Bool = "enableCameraInDashboard"; - public const string k_pch_Camera_EnableCameraForCollisionBounds_Bool = "enableCameraForCollisionBounds"; - public const string k_pch_Camera_EnableCameraForRoomView_Bool = "enableCameraForRoomView"; - public const string k_pch_Camera_BoundsColorGammaR_Int32 = "cameraBoundsColorGammaR"; - public const string k_pch_Camera_BoundsColorGammaG_Int32 = "cameraBoundsColorGammaG"; - public const string k_pch_Camera_BoundsColorGammaB_Int32 = "cameraBoundsColorGammaB"; - public const string k_pch_Camera_BoundsColorGammaA_Int32 = "cameraBoundsColorGammaA"; - public const string k_pch_Camera_BoundsStrength_Int32 = "cameraBoundsStrength"; - public const string k_pch_Camera_RoomViewMode_Int32 = "cameraRoomViewMode"; - public const string k_pch_audio_Section = "audio"; - public const string k_pch_audio_OnPlaybackDevice_String = "onPlaybackDevice"; - public const string k_pch_audio_OnRecordDevice_String = "onRecordDevice"; - public const string k_pch_audio_OnPlaybackMirrorDevice_String = "onPlaybackMirrorDevice"; - public const string k_pch_audio_OffPlaybackDevice_String = "offPlaybackDevice"; - public const string k_pch_audio_OffRecordDevice_String = "offRecordDevice"; - public const string k_pch_audio_VIVEHDMIGain = "viveHDMIGain"; - public const string k_pch_Power_Section = "power"; - public const string k_pch_Power_PowerOffOnExit_Bool = "powerOffOnExit"; - public const string k_pch_Power_TurnOffScreensTimeout_Float = "turnOffScreensTimeout"; - public const string k_pch_Power_TurnOffControllersTimeout_Float = "turnOffControllersTimeout"; - public const string k_pch_Power_ReturnToWatchdogTimeout_Float = "returnToWatchdogTimeout"; - public const string k_pch_Power_AutoLaunchSteamVROnButtonPress = "autoLaunchSteamVROnButtonPress"; - public const string k_pch_Power_PauseCompositorOnStandby_Bool = "pauseCompositorOnStandby"; - public const string k_pch_Dashboard_Section = "dashboard"; - public const string k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard"; - public const string k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode"; - public const string k_pch_Dashboard_EnableWebUI = "webUI"; - public const string k_pch_Dashboard_EnableWebUIDevTools = "webUIDevTools"; - public const string k_pch_Dashboard_EnableWebUIDashboardReplacement = "webUIDashboard"; - public const string k_pch_modelskin_Section = "modelskins"; - public const string k_pch_Driver_Enable_Bool = "enable"; - public const string k_pch_WebInterface_Section = "WebInterface"; - public const string k_pch_WebInterface_WebEnable_Bool = "WebEnable"; - public const string k_pch_WebInterface_WebPort_String = "WebPort"; - public const string k_pch_VRWebHelper_Section = "VRWebHelper"; - public const string k_pch_VRWebHelper_DebuggerEnabled_Bool = "DebuggerEnabled"; - public const string k_pch_VRWebHelper_DebuggerPort_Int32 = "DebuggerPort"; - public const string k_pch_TrackingOverride_Section = "TrackingOverrides"; - public const string k_pch_App_BindingAutosaveURLSuffix_String = "AutosaveURL"; - public const string k_pch_App_BindingCurrentURLSuffix_String = "CurrentURL"; - public const string k_pch_App_NeedToUpdateAutosaveSuffix_Bool = "NeedToUpdateAutosave"; - public const string k_pch_App_ActionManifestURL_String = "ActionManifestURL"; - public const string k_pch_Trackers_Section = "trackers"; - public const string k_pch_DesktopUI_Section = "DesktopUI"; - public const string k_pch_LastKnown_Section = "LastKnown"; - public const string k_pch_LastKnown_HMDManufacturer_String = "HMDManufacturer"; - public const string k_pch_LastKnown_HMDModel_String = "HMDModel"; - public const string IVRScreenshots_Version = "IVRScreenshots_001"; - public const string IVRResources_Version = "IVRResources_001"; - public const string IVRDriverManager_Version = "IVRDriverManager_001"; - public const uint k_unMaxActionNameLength = 64; - public const uint k_unMaxActionSetNameLength = 64; - public const uint k_unMaxActionOriginCount = 16; - public const uint k_unMaxBoneNameLength = 32; - public const string IVRInput_Version = "IVRInput_005"; - public const ulong k_ulInvalidIOBufferHandle = 0; - public const string IVRIOBuffer_Version = "IVRIOBuffer_001"; - public const uint k_ulInvalidSpatialAnchorHandle = 0; - public const string IVRSpatialAnchors_Version = "IVRSpatialAnchors_001"; - - static uint VRToken { get; set; } - - const string FnTable_Prefix = "FnTable:"; - - class COpenVRContext - { - public COpenVRContext() { Clear(); } - - public void Clear() - { - m_pVRSystem = null; - m_pVRChaperone = null; - m_pVRChaperoneSetup = null; - m_pVRCompositor = null; - m_pVROverlay = null; - m_pVRRenderModels = null; - m_pVRExtendedDisplay = null; - m_pVRSettings = null; - m_pVRApplications = null; - m_pVRScreenshots = null; - m_pVRTrackedCamera = null; - m_pVRInput = null; - m_pVRSpatialAnchors = null; - } - - void CheckClear() - { - if (VRToken != GetInitToken()) - { - Clear(); - VRToken = GetInitToken(); - } - } - - public CVRSystem VRSystem() - { - CheckClear(); - if (m_pVRSystem == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRSystem_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRSystem = new CVRSystem(pInterface); - } - return m_pVRSystem; - } - - public CVRChaperone VRChaperone() - { - CheckClear(); - if (m_pVRChaperone == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRChaperone_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRChaperone = new CVRChaperone(pInterface); - } - return m_pVRChaperone; - } - - public CVRChaperoneSetup VRChaperoneSetup() - { - CheckClear(); - if (m_pVRChaperoneSetup == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRChaperoneSetup_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRChaperoneSetup = new CVRChaperoneSetup(pInterface); - } - return m_pVRChaperoneSetup; - } - - public CVRCompositor VRCompositor() - { - CheckClear(); - if (m_pVRCompositor == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRCompositor_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRCompositor = new CVRCompositor(pInterface); - } - return m_pVRCompositor; - } - - public CVROverlay VROverlay() - { - CheckClear(); - if (m_pVROverlay == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVROverlay_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVROverlay = new CVROverlay(pInterface); - } - return m_pVROverlay; - } - - public CVRRenderModels VRRenderModels() - { - CheckClear(); - if (m_pVRRenderModels == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRRenderModels_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRRenderModels = new CVRRenderModels(pInterface); - } - return m_pVRRenderModels; - } - - public CVRExtendedDisplay VRExtendedDisplay() - { - CheckClear(); - if (m_pVRExtendedDisplay == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRExtendedDisplay_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRExtendedDisplay = new CVRExtendedDisplay(pInterface); - } - return m_pVRExtendedDisplay; - } - - public CVRSettings VRSettings() - { - CheckClear(); - if (m_pVRSettings == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRSettings_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRSettings = new CVRSettings(pInterface); - } - return m_pVRSettings; - } - - public CVRApplications VRApplications() - { - CheckClear(); - if (m_pVRApplications == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRApplications_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRApplications = new CVRApplications(pInterface); - } - return m_pVRApplications; - } - - public CVRScreenshots VRScreenshots() - { - CheckClear(); - if (m_pVRScreenshots == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRScreenshots_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRScreenshots = new CVRScreenshots(pInterface); - } - return m_pVRScreenshots; - } - - public CVRTrackedCamera VRTrackedCamera() - { - CheckClear(); - if (m_pVRTrackedCamera == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRTrackedCamera_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRTrackedCamera = new CVRTrackedCamera(pInterface); - } - return m_pVRTrackedCamera; - } - - public CVRInput VRInput() - { - CheckClear(); - if (m_pVRInput == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRInput_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRInput = new CVRInput(pInterface); - } - return m_pVRInput; - } - - public CVRSpatialAnchors VRSpatialAnchors() - { - CheckClear(); - if (m_pVRSpatialAnchors == null) - { - var eError = EVRInitError.None; - var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRSpatialAnchors_Version, ref eError); - if (pInterface != IntPtr.Zero && eError == EVRInitError.None) - m_pVRSpatialAnchors = new CVRSpatialAnchors(pInterface); - } - return m_pVRSpatialAnchors; - } - - private CVRSystem m_pVRSystem; - private CVRChaperone m_pVRChaperone; - private CVRChaperoneSetup m_pVRChaperoneSetup; - private CVRCompositor m_pVRCompositor; - private CVROverlay m_pVROverlay; - private CVRRenderModels m_pVRRenderModels; - private CVRExtendedDisplay m_pVRExtendedDisplay; - private CVRSettings m_pVRSettings; - private CVRApplications m_pVRApplications; - private CVRScreenshots m_pVRScreenshots; - private CVRTrackedCamera m_pVRTrackedCamera; - private CVRInput m_pVRInput; - private CVRSpatialAnchors m_pVRSpatialAnchors; - }; - - private static COpenVRContext _OpenVRInternal_ModuleContext = null; - static COpenVRContext OpenVRInternal_ModuleContext - { - get - { - if (_OpenVRInternal_ModuleContext == null) - _OpenVRInternal_ModuleContext = new COpenVRContext(); - return _OpenVRInternal_ModuleContext; - } - } - - public static CVRSystem System { get { return OpenVRInternal_ModuleContext.VRSystem(); } } - public static CVRChaperone Chaperone { get { return OpenVRInternal_ModuleContext.VRChaperone(); } } - public static CVRChaperoneSetup ChaperoneSetup { get { return OpenVRInternal_ModuleContext.VRChaperoneSetup(); } } - public static CVRCompositor Compositor { get { return OpenVRInternal_ModuleContext.VRCompositor(); } } - public static CVROverlay Overlay { get { return OpenVRInternal_ModuleContext.VROverlay(); } } - public static CVRRenderModels RenderModels { get { return OpenVRInternal_ModuleContext.VRRenderModels(); } } - public static CVRExtendedDisplay ExtendedDisplay { get { return OpenVRInternal_ModuleContext.VRExtendedDisplay(); } } - public static CVRSettings Settings { get { return OpenVRInternal_ModuleContext.VRSettings(); } } - public static CVRApplications Applications { get { return OpenVRInternal_ModuleContext.VRApplications(); } } - public static CVRScreenshots Screenshots { get { return OpenVRInternal_ModuleContext.VRScreenshots(); } } - public static CVRTrackedCamera TrackedCamera { get { return OpenVRInternal_ModuleContext.VRTrackedCamera(); } } - public static CVRInput Input { get { return OpenVRInternal_ModuleContext.VRInput(); } } - public static CVRSpatialAnchors SpatialAnchors { get { return OpenVRInternal_ModuleContext.VRSpatialAnchors(); } } - - /** Finds the active installation of vrclient.dll and initializes it */ - public static CVRSystem Init(ref EVRInitError peError, EVRApplicationType eApplicationType = EVRApplicationType.VRApplication_Scene, string pchStartupInfo = "") - { - try - { - VRToken = InitInternal2(ref peError, eApplicationType, pchStartupInfo); - } -#if !ENABLE_DOTNET - catch (EntryPointNotFoundException) -#else - catch (Exception) -#endif - { - VRToken = InitInternal(ref peError, eApplicationType); - } - - OpenVRInternal_ModuleContext.Clear(); - - if (peError != EVRInitError.None) - return null; - - bool bInterfaceValid = IsInterfaceVersionValid(IVRSystem_Version); - if (!bInterfaceValid) - { - ShutdownInternal(); - peError = EVRInitError.Init_InterfaceNotFound; - return null; - } - - return OpenVR.System; - } - - /** unloads vrclient.dll. Any interface pointers from the interface are - * invalid after this point */ - public static void Shutdown() - { - ShutdownInternal(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs.meta deleted file mode 100644 index 167a65d37..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/Headers/openvr_api.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bb2436c915708d344810f86516a94570 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef b/AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef deleted file mode 100644 index be38b7770..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.OpenVR", - "references": [ - "Microsoft.MixedReality.Toolkit" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor", - "LinuxStandalone64", - "macOSStandalone", - "WindowsStandalone32", - "WindowsStandalone64" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef.meta deleted file mode 100644 index f375cb1be..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/MRTK.OpenVR.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 98e59139cb1d58f479acd4770a4c850d -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs deleted file mode 100644 index 91ebf8263..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - [MixedRealityController( - SupportedControllerType.OculusRemote, - new[] { Handedness.None }, - "Textures/OculusRemoteController")] - public class OculusRemoteController : GenericOpenVRController - { - /// - /// Constructor. - /// - public OculusRemoteController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - public override MixedRealityInteractionMapping[] DefaultInteractions => new[] - { - new MixedRealityInteractionMapping(0, "D-Pad Position", AxisType.DualAxis, DeviceInputType.DirectionalPad, ControllerMappingLibrary.AXIS_5, ControllerMappingLibrary.AXIS_6), - new MixedRealityInteractionMapping(1, "Button.One", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton0), - new MixedRealityInteractionMapping(2, "Button.Two", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton1), - }; - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs.meta deleted file mode 100644 index c9bba82f2..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusRemoteController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1cab5500f71448538e2c35c784c073f9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs deleted file mode 100644 index 4cf21f49b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - [MixedRealityController( - SupportedControllerType.OculusTouch, - new[] { Handedness.Left, Handedness.Right }, - "Textures/OculusControllersTouch")] - public class OculusTouchController : GenericOpenVRController - { - /// - /// Constructor. - /// - public OculusTouchController(TrackingState trackingState, Handedness controllerHandedness, - IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) { } - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Axis1D.PrimaryIndexTrigger", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(2, "Axis1D.PrimaryIndexTrigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, KeyCode.JoystickButton14), - new MixedRealityInteractionMapping(3, "Axis1D.PrimaryIndexTrigger Near Touch", AxisType.Digital, DeviceInputType.TriggerNearTouch, ControllerMappingLibrary.AXIS_13), - new MixedRealityInteractionMapping(4, "Axis1D.PrimaryIndexTrigger Press", AxisType.Digital, DeviceInputType.TriggerPress, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(5, "Axis1D.PrimaryHandTrigger Press", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_11), - new MixedRealityInteractionMapping(6, "Axis2D.PrimaryThumbstick", AxisType.DualAxis, DeviceInputType.ThumbStick, ControllerMappingLibrary.AXIS_1, ControllerMappingLibrary.AXIS_2), - new MixedRealityInteractionMapping(7, "Button.PrimaryThumbstick Touch", AxisType.Digital, DeviceInputType.ThumbStickTouch, KeyCode.JoystickButton16), - new MixedRealityInteractionMapping(8, "Button.PrimaryThumbstick Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch, ControllerMappingLibrary.AXIS_15), - new MixedRealityInteractionMapping(9, "Button.PrimaryThumbstick Press", AxisType.Digital, DeviceInputType.ThumbStickPress, KeyCode.JoystickButton8), - new MixedRealityInteractionMapping(10, "Button.Three Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton2), - new MixedRealityInteractionMapping(11, "Button.Four Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton3), - new MixedRealityInteractionMapping(12, "Button.Start Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton6), - new MixedRealityInteractionMapping(13, "Button.Three Touch", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton12), - new MixedRealityInteractionMapping(14, "Button.Four Touch", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton13), - new MixedRealityInteractionMapping(15, "Touch.PrimaryThumbRest Touch", AxisType.Digital, DeviceInputType.ThumbTouch, KeyCode.JoystickButton18), - new MixedRealityInteractionMapping(16, "Touch.PrimaryThumbRest Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch, ControllerMappingLibrary.AXIS_17) - }; - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Axis1D.SecondaryIndexTrigger", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(2, "Axis1D.SecondaryIndexTrigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, KeyCode.JoystickButton15), - new MixedRealityInteractionMapping(3, "Axis1D.SecondaryIndexTrigger Near Touch", AxisType.Digital, DeviceInputType.TriggerNearTouch, ControllerMappingLibrary.AXIS_14), - new MixedRealityInteractionMapping(4, "Axis1D.SecondaryIndexTrigger Press", AxisType.Digital, DeviceInputType.TriggerPress, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(5, "Axis1D.SecondaryHandTrigger Press", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_12), - new MixedRealityInteractionMapping(6, "Axis2D.SecondaryThumbstick", AxisType.DualAxis, DeviceInputType.ThumbStick, ControllerMappingLibrary.AXIS_4, ControllerMappingLibrary.AXIS_5), - new MixedRealityInteractionMapping(7, "Button.SecondaryThumbstick Touch", AxisType.Digital, DeviceInputType.ThumbStickTouch, KeyCode.JoystickButton17), - new MixedRealityInteractionMapping(8, "Button.SecondaryThumbstick Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch, ControllerMappingLibrary.AXIS_16), - new MixedRealityInteractionMapping(9, "Button.SecondaryThumbstick Press", AxisType.Digital, DeviceInputType.ThumbStickPress, KeyCode.JoystickButton9), - new MixedRealityInteractionMapping(10, "Button.One Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton1), - new MixedRealityInteractionMapping(11, "Button.Two Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton0), - new MixedRealityInteractionMapping(12, "Button.One Touch", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton11), - new MixedRealityInteractionMapping(13, "Button.Two Touch", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton10), - new MixedRealityInteractionMapping(14, "Touch.SecondaryThumbRest Touch", AxisType.Digital, DeviceInputType.ThumbTouch, KeyCode.JoystickButton19), - new MixedRealityInteractionMapping(15, "Touch.SecondaryThumbRest Near Touch", AxisType.Digital, DeviceInputType.ThumbNearTouch, ControllerMappingLibrary.AXIS_18) - }; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs.meta deleted file mode 100644 index 91d705501..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OculusTouchController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 35cb59ef2cd745d5beaee7e04b9349f1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs deleted file mode 100644 index 427f67927..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Input.UnityInput; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Runtime.InteropServices; -using Unity.Profiling; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - /// - /// Manages Open VR devices using Unity's input system. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsStandalone | SupportedPlatforms.MacStandalone | SupportedPlatforms.LinuxStandalone, - "OpenVR Device Manager")] - public class OpenVRDeviceManager : UnityJoystickManager, IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public OpenVRDeviceManager( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public OpenVRDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - // The OpenVR platform supports motion controllers. - return (capability == MixedRealityCapability.MotionController); - } - - #region Controller Utilities - - private static readonly ProfilerMarker GetOrAddControllerPerfMarker = new ProfilerMarker("[MRTK] OpenVRDeviceManager.GetOrAddController"); - - /// - protected override GenericJoystickController GetOrAddController(string joystickName) - { - using (GetOrAddControllerPerfMarker.Auto()) - { - // If a device is already registered with the ID provided, just return it. - if (ActiveControllers.ContainsKey(joystickName)) - { - var controller = ActiveControllers[joystickName]; - Debug.Assert(controller != null); - return controller; - } - - Handedness controllingHand; - - if (joystickName.Contains("Left")) - { - controllingHand = Handedness.Left; - } - else if (joystickName.Contains("Right")) - { - controllingHand = Handedness.Right; - } - else - { - controllingHand = Handedness.None; - } - - var currentControllerType = GetCurrentControllerType(joystickName); - Type controllerType; - - switch (currentControllerType) - { - case SupportedControllerType.GenericOpenVR: - controllerType = typeof(GenericOpenVRController); - break; - case SupportedControllerType.ViveWand: - controllerType = typeof(ViveWandController); - break; - case SupportedControllerType.ViveKnuckles: - controllerType = typeof(ViveKnucklesController); - break; - case SupportedControllerType.OculusTouch: - controllerType = typeof(OculusTouchController); - break; - case SupportedControllerType.OculusRemote: - controllerType = typeof(OculusRemoteController); - break; - case SupportedControllerType.WindowsMixedReality: - controllerType = typeof(WindowsMixedRealityOpenVRMotionController); - break; - default: - return null; - } - - IMixedRealityPointer[] pointers = RequestPointers(currentControllerType, controllingHand); - IMixedRealityInputSource inputSource = Service?.RequestNewGenericInputSource($"{currentControllerType} Controller {controllingHand}", pointers, InputSourceType.Controller); - GenericOpenVRController detectedController = Activator.CreateInstance(controllerType, TrackingState.NotTracked, controllingHand, inputSource, null) as GenericOpenVRController; - - if (detectedController == null || !detectedController.Enabled) - { - // Controller failed to be set up correctly. - Debug.LogError($"Failed to create {controllerType.Name} controller"); - - // Return null so we don't raise the source detected. - return null; - } - - for (int i = 0; i < detectedController.InputSource?.Pointers?.Length; i++) - { - detectedController.InputSource.Pointers[i].Controller = detectedController; - } - - ActiveControllers.Add(joystickName, detectedController); - - return detectedController; - } - } - - private static readonly ProfilerMarker RemoveControllerPerfMarker = new ProfilerMarker("[MRTK] OpenVRDeviceManager.RemoveController"); - - /// - protected override void RemoveController(string joystickName) - { - using (RemoveControllerPerfMarker.Auto()) - { - var controller = GetOrAddController(joystickName); - - if (controller != null) - { - RecyclePointers(controller.InputSource); - - if (controller.Visualizer != null && - controller.Visualizer.GameObjectProxy != null) - { - controller.Visualizer.GameObjectProxy.SetActive(false); - } - } - - base.RemoveController(joystickName); - } - } - - /// - protected override SupportedControllerType GetCurrentControllerType(string joystickName) - { - if (string.IsNullOrEmpty(joystickName) || !joystickName.Contains("OpenVR")) - { - return 0; - } - - if (joystickName.Contains("Oculus Rift CV1")) - { - return SupportedControllerType.OculusTouch; - } - - if (joystickName.Contains("Oculus remote")) - { - return SupportedControllerType.OculusRemote; - } - - if (joystickName.Contains("Vive Wand")) - { - return SupportedControllerType.ViveWand; - } - - if (joystickName.Contains("Vive Knuckles")) - { - return SupportedControllerType.ViveKnuckles; - } - - if (joystickName.Contains("WindowsMR")) - { - return SupportedControllerType.WindowsMixedReality; - } - - Debug.Log($"{joystickName} does not have a defined controller type, falling back to generic controller type"); - - return SupportedControllerType.GenericOpenVR; - } - - #endregion Controller Utilities - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs.meta deleted file mode 100644 index b4df150df..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: df38a328c6ca4be4a2bd2dcc60022baf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs deleted file mode 100644 index c88feb39e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs +++ /dev/null @@ -1,446 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -//======= Copyright (c) Valve Corporation, All rights reserved. =============== -// -// Purpose: Render model of associated tracked object -// -//============================================================================= - -using Microsoft.MixedReality.Toolkit.OpenVR.Headers; -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections; -using System.Runtime.InteropServices; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - /// - /// Represents and loads models from the OpenVR APIs. This class is based on the SteamVR_RenderModel class. - /// - [AddComponentMenu("Scripts/MRTK/Providers/OpenVRRenderModel")] - public class OpenVRRenderModel : MonoBehaviour - { - private class RenderModel - { - public RenderModel(Mesh mesh, Material material) - { - Mesh = mesh; - Material = material; - } - public Mesh Mesh { get; private set; } - public Material Material { get; private set; } - } - - private static readonly Hashtable models = new Hashtable(); - private static readonly Hashtable materials = new Hashtable(); - - private string renderModelName = string.Empty; - - internal Shader shader = null; - - /// - /// Attempts to load or reload a controller model based on the passed in handedness. - /// - /// The handedness of the controller model to load. - /// True if the controller model was found and loaded. False otherwise. - public bool LoadModel(Handedness handedness) - { - var system = Headers.OpenVR.System; - if (system == null) - { - return false; - } - - var error = ETrackedPropertyError.TrackedProp_Success; - uint index = system.GetTrackedDeviceIndexForControllerRole(handedness == Handedness.Left ? ETrackedControllerRole.LeftHand : ETrackedControllerRole.RightHand); - var capacity = system.GetStringTrackedDeviceProperty(index, ETrackedDeviceProperty.Prop_RenderModelName_String, null, 0, ref error); - if (capacity <= 1) - { - Debug.LogError("Failed to get render model name for tracked object " + index); - return false; - } - - var buffer = new System.Text.StringBuilder((int)capacity); - system.GetStringTrackedDeviceProperty(index, ETrackedDeviceProperty.Prop_RenderModelName_String, buffer, capacity, ref error); - - var s = buffer.ToString(); - if (renderModelName != s) - { - StartCoroutine(SetModelAsync(s)); - } - - return true; - } - - private IEnumerator SetModelAsync(string newRenderModelName) - { - if (string.IsNullOrEmpty(newRenderModelName)) - { - yield break; - } - - // Pre-load all render models before asking for the data to create meshes. - CVRRenderModels renderModels = Headers.OpenVR.RenderModels; - if (renderModels == null) - { - yield break; - } - - // Gather names of render models to pre-load. - string[] renderModelNames; - - uint count = renderModels.GetComponentCount(newRenderModelName); - if (count > 0) - { - renderModelNames = new string[count]; - - for (int componentIndex = 0; componentIndex < count; componentIndex++) - { - uint capacity = renderModels.GetComponentName(newRenderModelName, (uint)componentIndex, null, 0); - if (capacity == 0) - { - continue; - } - - var componentNameStringBuilder = new System.Text.StringBuilder((int)capacity); - if (renderModels.GetComponentName(newRenderModelName, (uint)componentIndex, componentNameStringBuilder, capacity) == 0) - { - continue; - } - - string componentName = componentNameStringBuilder.ToString(); - - capacity = renderModels.GetComponentRenderModelName(newRenderModelName, componentName, null, 0); - if (capacity == 0) - { - continue; - } - - var nameStringBuilder = new System.Text.StringBuilder((int)capacity); - if (renderModels.GetComponentRenderModelName(newRenderModelName, componentName, nameStringBuilder, capacity) == 0) - { - continue; - } - - var s = nameStringBuilder.ToString(); - - // Only need to pre-load if not already cached. - if (!(models[s] is RenderModel model) || model.Mesh == null) - { - renderModelNames[componentIndex] = s; - } - } - } - else - { - // Only need to pre-load if not already cached. - if (!(models[newRenderModelName] is RenderModel model) || model.Mesh == null) - { - renderModelNames = new string[] { newRenderModelName }; - } - else - { - renderModelNames = System.Array.Empty(); - } - } - - // Keep trying every 100ms until all components finish loading. - while (true) - { - var loading = false; - for (int renderModelNameIndex = 0; renderModelNameIndex < renderModelNames.Length; renderModelNameIndex++) - { - if (string.IsNullOrEmpty(renderModelNames[renderModelNameIndex])) - { - continue; - } - - var pRenderModel = System.IntPtr.Zero; - - var error = renderModels.LoadRenderModel_Async(renderModelNames[renderModelNameIndex], ref pRenderModel); - - if (error == EVRRenderModelError.Loading) - { - loading = true; - } - else if (error == EVRRenderModelError.None) - { - // Pre-load textures as well. - var renderModel = MarshalRenderModel(pRenderModel); - - // Check the cache first. - var material = materials[renderModel.diffuseTextureId] as Material; - if (material == null || material.mainTexture == null) - { - var pDiffuseTexture = System.IntPtr.Zero; - - error = renderModels.LoadTexture_Async(renderModel.diffuseTextureId, ref pDiffuseTexture); - - if (error == EVRRenderModelError.Loading) - { - loading = true; - } - } - } - } - - if (loading) - { - yield return new WaitForSecondsRealtime(0.1f); - } - else - { - break; - } - } - - SetModel(newRenderModelName); - renderModelName = newRenderModelName; - } - - private bool SetModel(string renderModelName) - { - StripMesh(gameObject); - - if (!string.IsNullOrEmpty(renderModelName)) - { - var model = models[renderModelName] as RenderModel; - if (model == null || model.Mesh == null) - { - var renderModels = Headers.OpenVR.RenderModels; - if (renderModels == null) - { - return false; - } - - model = LoadRenderModel(renderModels, renderModelName, renderModelName); - if (model == null) - { - return false; - } - - models[renderModelName] = model; - } - - gameObject.AddComponent().mesh = model.Mesh; - MeshRenderer newRenderer = gameObject.AddComponent(); - newRenderer.sharedMaterial = model.Material; - return true; - } - - return false; - } - - private RenderModel LoadRenderModel(CVRRenderModels renderModels, string renderModelName, string baseName) - { - var pRenderModel = System.IntPtr.Zero; - - EVRRenderModelError error; - while (true) - { - error = renderModels.LoadRenderModel_Async(renderModelName, ref pRenderModel); - if (error != EVRRenderModelError.Loading) - break; - - Sleep(); - } - - if (error != EVRRenderModelError.None) - { - Debug.LogError(string.Format("Failed to load render model {0} - {1}", renderModelName, error.ToString())); - return null; - } - - var renderModel = MarshalRenderModel(pRenderModel); - - var vertices = new Vector3[renderModel.unVertexCount]; - var normals = new Vector3[renderModel.unVertexCount]; - var uv = new Vector2[renderModel.unVertexCount]; - - var type = typeof(RenderModel_Vertex_t); - for (int iVert = 0; iVert < renderModel.unVertexCount; iVert++) - { - var ptr = new System.IntPtr(renderModel.rVertexData.ToInt64() + iVert * Marshal.SizeOf(type)); - var vert = (RenderModel_Vertex_t)Marshal.PtrToStructure(ptr, type); - - vertices[iVert] = new Vector3(vert.vPosition.v0, vert.vPosition.v1, -vert.vPosition.v2); - normals[iVert] = new Vector3(vert.vNormal.v0, vert.vNormal.v1, -vert.vNormal.v2); - uv[iVert] = new Vector2(vert.rfTextureCoord0, vert.rfTextureCoord1); - } - - int indexCount = (int)renderModel.unTriangleCount * 3; - var indices = new short[indexCount]; - Marshal.Copy(renderModel.rIndexData, indices, 0, indices.Length); - - var triangles = new int[indexCount]; - for (int iTri = 0; iTri < renderModel.unTriangleCount; iTri++) - { - triangles[iTri * 3 + 0] = (int)indices[iTri * 3 + 2]; - triangles[iTri * 3 + 1] = (int)indices[iTri * 3 + 1]; - triangles[iTri * 3 + 2] = (int)indices[iTri * 3 + 0]; - } - - var mesh = new Mesh - { - vertices = vertices, - normals = normals, - uv = uv, - triangles = triangles - }; - - // Check cache before loading texture. - var material = materials[renderModel.diffuseTextureId] as Material; - if (material == null || material.mainTexture == null) - { - var pDiffuseTexture = System.IntPtr.Zero; - - while (true) - { - error = renderModels.LoadTexture_Async(renderModel.diffuseTextureId, ref pDiffuseTexture); - if (error != EVRRenderModelError.Loading) - { - break; - } - - Sleep(); - } - - if (error == EVRRenderModelError.None) - { - var diffuseTexture = MarshalRenderModel_TextureMap(pDiffuseTexture); - var texture = new Texture2D(diffuseTexture.unWidth, diffuseTexture.unHeight, TextureFormat.RGBA32, false); - if (SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Direct3D11) - { - texture.Apply(); - System.IntPtr texturePointer = texture.GetNativeTexturePtr(); - while (true) - { - error = renderModels.LoadIntoTextureD3D11_Async(renderModel.diffuseTextureId, texturePointer); - if (error != EVRRenderModelError.Loading) - { - break; - } - - Sleep(); - } - } - else - { - var textureMapData = new byte[diffuseTexture.unWidth * diffuseTexture.unHeight * 4]; // RGBA - Marshal.Copy(diffuseTexture.rubTextureMapData, textureMapData, 0, textureMapData.Length); - - var colors = new Color32[diffuseTexture.unWidth * diffuseTexture.unHeight]; - int iColor = 0; - for (int iHeight = 0; iHeight < diffuseTexture.unHeight; iHeight++) - { - for (int iWidth = 0; iWidth < diffuseTexture.unWidth; iWidth++) - { - var r = textureMapData[iColor++]; - var g = textureMapData[iColor++]; - var b = textureMapData[iColor++]; - var a = textureMapData[iColor++]; - colors[iHeight * diffuseTexture.unWidth + iWidth] = new Color32(r, g, b, a); - } - } - - texture.SetPixels32(colors); - texture.Apply(); - } - - material = new Material(shader != null ? shader : Shader.Find("Mixed Reality Toolkit/Standard")) - { - mainTexture = texture - }; - - materials[renderModel.diffuseTextureId] = material; - - renderModels.FreeTexture(pDiffuseTexture); - } - else - { - Debug.Log("Failed to load render model texture for render model " + renderModelName + ". Error: " + error.ToString()); - } - } - - // Delay freeing when we can since we'll often get multiple requests for the same model right - // after another (e.g. two controllers or two base stations). -#if UNITY_EDITOR - if (!Application.isPlaying) - { - renderModels.FreeRenderModel(pRenderModel); - } - else -#endif - { - StartCoroutine(FreeRenderModel(pRenderModel)); - } - - return new RenderModel(mesh, material); - } - - private IEnumerator FreeRenderModel(System.IntPtr pRenderModel) - { - yield return new WaitForSeconds(1.0f); - Headers.OpenVR.RenderModels.FreeRenderModel(pRenderModel); - } - - private void StripMesh(GameObject go) - { - var meshRenderer = go.GetComponent(); - if (meshRenderer != null) - { - DestroyImmediate(meshRenderer); - } - - var meshFilter = go.GetComponent(); - if (meshFilter != null) - { - DestroyImmediate(meshFilter); - } - } - - private static void Sleep() - { -#if !UNITY_WSA - System.Threading.Thread.Sleep(1); -#endif - } - - private RenderModel_t MarshalRenderModel(System.IntPtr pRenderModel) - { -#if !ENABLE_DOTNET - if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) || - (System.Environment.OSVersion.Platform == System.PlatformID.Unix)) - { - var packedModel = (RenderModel_t_Packed)Marshal.PtrToStructure(pRenderModel, typeof(RenderModel_t_Packed)); - RenderModel_t model = new RenderModel_t(); - packedModel.Unpack(ref model); - return model; - } - else -#endif - { - return (RenderModel_t)Marshal.PtrToStructure(pRenderModel, typeof(RenderModel_t)); - } - } - - private RenderModel_TextureMap_t MarshalRenderModel_TextureMap(System.IntPtr pRenderModel) - { -#if !ENABLE_DOTNET - if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) || - (System.Environment.OSVersion.Platform == System.PlatformID.Unix)) - { - var packedModel = (RenderModel_TextureMap_t_Packed)Marshal.PtrToStructure(pRenderModel, typeof(RenderModel_TextureMap_t_Packed)); - RenderModel_TextureMap_t model = new RenderModel_TextureMap_t(); - packedModel.Unpack(ref model); - return model; - } - else -#endif - { - return (RenderModel_TextureMap_t)Marshal.PtrToStructure(pRenderModel, typeof(RenderModel_TextureMap_t)); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs.meta deleted file mode 100644 index 4c82f2ebb..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/OpenVRRenderModel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 68b6a45b71ceec845bef498f2f6167e6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs deleted file mode 100644 index e67d55af2..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - [MixedRealityController( - SupportedControllerType.ViveKnuckles, - new[] { Handedness.Left, Handedness.Right })] - public class ViveKnucklesController : GenericOpenVRController - { - /// - /// Constructor. - /// - public ViveKnucklesController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(2, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton14), - new MixedRealityInteractionMapping(3, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(4, "Grip Average", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_11), - new MixedRealityInteractionMapping(5, "Trackpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_1, ControllerMappingLibrary.AXIS_2), - new MixedRealityInteractionMapping(6, "Trackpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton16), - new MixedRealityInteractionMapping(7, "Trackpad Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton8), - new MixedRealityInteractionMapping(8, "Inner Face Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton2), - new MixedRealityInteractionMapping(9, "Outer Face Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton3), - new MixedRealityInteractionMapping(10, "Index Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.IndexFinger, ControllerMappingLibrary.AXIS_20), - new MixedRealityInteractionMapping(11, "Middle Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.MiddleFinger, ControllerMappingLibrary.AXIS_22), - new MixedRealityInteractionMapping(12, "Ring Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.RingFinger, ControllerMappingLibrary.AXIS_24), - new MixedRealityInteractionMapping(13, "Pinky Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.PinkyFinger, ControllerMappingLibrary.AXIS_26), - }; - - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(2, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton15), - new MixedRealityInteractionMapping(3, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(4, "Grip Average", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_12), - new MixedRealityInteractionMapping(5, "Trackpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_4, ControllerMappingLibrary.AXIS_5), - new MixedRealityInteractionMapping(6, "Trackpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton17), - new MixedRealityInteractionMapping(7, "Trackpad Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton9), - new MixedRealityInteractionMapping(8, "Inner Face Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton0), - new MixedRealityInteractionMapping(9, "Outer Face Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton1), - new MixedRealityInteractionMapping(10, "Index Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.IndexFinger, ControllerMappingLibrary.AXIS_21), - new MixedRealityInteractionMapping(11, "Middle Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.MiddleFinger, ControllerMappingLibrary.AXIS_23), - new MixedRealityInteractionMapping(12, "Ring Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.RingFinger, ControllerMappingLibrary.AXIS_25), - new MixedRealityInteractionMapping(13, "Pinky Finger Cap Sensor", AxisType.SingleAxis, DeviceInputType.PinkyFinger, ControllerMappingLibrary.AXIS_27), - }; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs.meta deleted file mode 100644 index aab562d1d..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveKnucklesController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 22e8919707854f0885f0a19905ed9566 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs deleted file mode 100644 index 15e9cab1b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - [MixedRealityController( - SupportedControllerType.ViveWand, - new[] { Handedness.Left, Handedness.Right }, - "Textures/ViveWandController")] - public class ViveWandController : GenericOpenVRController - { - /// - /// Constructor. - /// - public ViveWandController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(2, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton14), - new MixedRealityInteractionMapping(3, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(4, "Grip Press", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_11), - new MixedRealityInteractionMapping(5, "Trackpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_1, ControllerMappingLibrary.AXIS_2), - new MixedRealityInteractionMapping(6, "Trackpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton16), - new MixedRealityInteractionMapping(7, "Trackpad Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton8), - new MixedRealityInteractionMapping(8, "Menu Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton2), - }; - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(2, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton15), - new MixedRealityInteractionMapping(3, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(4, "Grip Press", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_12), - new MixedRealityInteractionMapping(5, "Trackpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_4, ControllerMappingLibrary.AXIS_5), - new MixedRealityInteractionMapping(6, "Trackpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton17), - new MixedRealityInteractionMapping(7, "Trackpad Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton9), - new MixedRealityInteractionMapping(8, "Menu Button", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton0), - }; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs.meta deleted file mode 100644 index fab791ba3..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/ViveWandController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 99411dd5318a4cfc97258de0a74beffe -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs b/AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs deleted file mode 100644 index 2738910e1..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; -using UnityEngine.Assertions; - -namespace Microsoft.MixedReality.Toolkit.OpenVR.Input -{ - /// - /// Open VR Implementation of the Windows Mixed Reality Motion Controllers. - /// - [MixedRealityController( - SupportedControllerType.WindowsMixedReality, - new[] { Handedness.Left, Handedness.Right }, - "Textures/MotionController")] - public class WindowsMixedRealityOpenVRMotionController : GenericOpenVRController - { - /// - /// Constructor. - /// - public WindowsMixedRealityOpenVRMotionController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - public override float PointerOffsetAngle { get; protected set; } = -30f; - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Spatial Grip", AxisType.SixDof, DeviceInputType.SpatialGrip), - new MixedRealityInteractionMapping(2, "Grip Press", AxisType.SingleAxis, DeviceInputType.TriggerPress, ControllerMappingLibrary.AXIS_11), - new MixedRealityInteractionMapping(3, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(4, "Trigger Touch", AxisType.SingleAxis, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_9), - new MixedRealityInteractionMapping(5, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton14), - new MixedRealityInteractionMapping(6, "Touchpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_17, ControllerMappingLibrary.AXIS_18, false, true), - new MixedRealityInteractionMapping(7, "Touchpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton16), - new MixedRealityInteractionMapping(8, "Touchpad Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton8), - new MixedRealityInteractionMapping(9, "Menu Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton2), - new MixedRealityInteractionMapping(10, "Thumbstick Position", AxisType.DualAxis, DeviceInputType.ThumbStick, ControllerMappingLibrary.AXIS_1, ControllerMappingLibrary.AXIS_2, false, true), - new MixedRealityInteractionMapping(11, "Thumbstick Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton18), - }; - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Spatial Grip", AxisType.SixDof, DeviceInputType.SpatialGrip), - new MixedRealityInteractionMapping(2, "Grip Press", AxisType.SingleAxis, DeviceInputType.TriggerPress, ControllerMappingLibrary.AXIS_12), - new MixedRealityInteractionMapping(3, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(4, "Trigger Touch", AxisType.SingleAxis, DeviceInputType.TriggerTouch, ControllerMappingLibrary.AXIS_10), - new MixedRealityInteractionMapping(5, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select, KeyCode.JoystickButton15), - new MixedRealityInteractionMapping(6, "Touchpad Position", AxisType.DualAxis, DeviceInputType.Touchpad, ControllerMappingLibrary.AXIS_19, ControllerMappingLibrary.AXIS_20, false, true), - new MixedRealityInteractionMapping(7, "Touchpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch, KeyCode.JoystickButton17), - new MixedRealityInteractionMapping(8, "Touchpad Press", AxisType.Digital, DeviceInputType.TouchpadPress, KeyCode.JoystickButton9), - new MixedRealityInteractionMapping(9, "Menu Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton0), - new MixedRealityInteractionMapping(10, "Thumbstick Position", AxisType.DualAxis, DeviceInputType.ThumbStick, ControllerMappingLibrary.AXIS_4, ControllerMappingLibrary.AXIS_5, false, true), - new MixedRealityInteractionMapping(11, "Thumbstick Press", AxisType.Digital, DeviceInputType.ButtonPress, KeyCode.JoystickButton19), - }; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs.meta b/AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs.meta deleted file mode 100644 index d960fc2d1..000000000 --- a/AR-ROS/Assets/MRTK/Providers/OpenVR/WindowsMixedRealityOpenVRMotionController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 14c2c21c69604655826582fd07f27623 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR.meta deleted file mode 100644 index 627ffe8bc..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 595455c3bbbcccb459a43af00cf5b65a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs.meta deleted file mode 100644 index 11a7c11b0..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c2f20bde983582040b5197e683c07a41 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions.meta deleted file mode 100644 index 60e7bb6a3..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e851df09b8349de4faadc0cb97522fa2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs deleted file mode 100644 index c5f6aa430..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - /// - /// Enumeration indicating the available types of augmented reality tracking poses. - /// - public enum ArTrackedPose - { - /// - /// The left eye of a head mounted device. - /// - LeftEye = 0, - - /// - /// The left eye of a head mounted device. - /// - RightEye = 1, - - /// - /// The center eye of a head mounted device, this is typically the default for most such devices. - /// - Center = 2, - - /// - /// The "head" eye of a head mounted device, this location is often slightly above the center eye for most such devices. - /// - Head = 3, - - /// - /// The left hand controller pose. - /// - LeftPose = 4, - - /// - /// The right hand controller pose. - /// - RightPose = 5, - - /// - /// The color camera of a mobile (ex: phone) device. - /// - ColorCamera = 6 - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs.meta deleted file mode 100644 index 4b1d04593..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackedPose.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ccb98fd25cd1e99448e209a5d1d0fdac -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs deleted file mode 100644 index 87f850592..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - /// - /// Enumeration indicating the portion of the pose that will be used when tracking. - /// - public enum ArTrackingType - { - /// - /// The pose rotation and position will be used. - /// - RotationAndPosition = 0, - - /// - /// The pose rotation will be used. - /// - Rotation = 1, - - /// - /// The pose rotation will be used. - /// - Position = 2 - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs.meta deleted file mode 100644 index 73280deb5..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArTrackingType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8096e2b7e0ee42e4cad97a537c472e71 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs deleted file mode 100644 index 1aac1dc03..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - /// - /// Enumeration defining when, during frame processing, the tracked pose will be sampled. - /// - public enum ArUpdateType - { - /// - /// Sampling occurs during update and just before rendering. This is the recommended value for smooth tracking. - /// - UpdateAndBeforeRender = 0, - - /// - /// Sampling occurs during update. - /// - Update = 1, - - /// - /// Sampling occurs just before rendering. - /// - BeforeRender = 2 - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs.meta deleted file mode 100644 index 96f1dd4db..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Definitions/ArUpdateType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 80d97eacf441aa540b4845744354d125 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor.meta deleted file mode 100644 index 984b196da..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 77ed400cab42b4d46b3bd4010afe219e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index 51e12e2d5..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b601185f6b1d29044adef89b59177028 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef deleted file mode 100644 index 5b69316dc..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.UnityAR.Editor", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.Editor.Utilities", - "Microsoft.MixedReality.Toolkit.Providers.UnityAR" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef.meta deleted file mode 100644 index e57447dbe..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/MRTK.UnityAR.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5b08a31356dff9e47a5a1a6b89a9f99c -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs deleted file mode 100644 index b62c8550a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - [CustomEditor(typeof(UnityARCameraSettingsProfile))] - public class UnityARCameraSettingsProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private const string ProfileTitle = "Unity AR Foundation Camera Settings"; - private const string ProfileDescription = ""; - - // Tracking settings - private SerializedProperty poseSource; - private SerializedProperty trackingType; - private SerializedProperty updateType; - - protected override void OnEnable() - { - base.OnEnable(); - - // Tracking settings - poseSource = serializedObject.FindProperty("poseSource"); - trackingType = serializedObject.FindProperty("trackingType"); - updateType = serializedObject.FindProperty("updateType"); - } - - public override void OnInspectorGUI() - { - RenderProfileHeader(ProfileTitle, ProfileDescription, target); - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Tracking Settings", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(poseSource); - EditorGUILayout.PropertyField(trackingType); - EditorGUILayout.PropertyField(updateType); - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.CameraProfile != null && - MixedRealityToolkit.Instance.ActiveProfile.CameraProfile.SettingsConfigurations != null && - MixedRealityToolkit.Instance.ActiveProfile.CameraProfile.SettingsConfigurations.Any(s => s.SettingsProfile == profile); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs.meta deleted file mode 100644 index 00823aef3..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARCameraSettingsProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ed2b2235965d0a24fa5017cd28ac72c6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs deleted file mode 100644 index 3cc9f0829..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.IO; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - /// - /// Class to perform checks for configuration checks for the UnityAR provider. - /// - /// - /// Note that the checks that this class runs are fairly expensive and are only done manually by the user - /// as part of their setup steps described here: - /// https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/CrossPlatform/UsingARFoundation.html - /// - static class UnityARConfigurationChecker - { - private const string FileName = "Unity.XR.ARFoundation.asmdef"; - private static readonly string[] definitions = { "ARFOUNDATION_PRESENT" }; - - /// - /// Ensures that the appropriate symbolic constant is defined based on the presence of the AR Foundation package. - /// - /// True if the define was added, false otherwise. - [MenuItem("Mixed Reality Toolkit/Utilities/UnityAR/Update Scripting Defines")] - private static bool ReconcileArFoundationDefine() - { - FileInfo[] files = FileUtilities.FindFilesInPackageCache(FileName); - if (files.Length > 0) - { - ScriptUtilities.AppendScriptingDefinitions(BuildTargetGroup.Android, definitions); - ScriptUtilities.AppendScriptingDefinitions(BuildTargetGroup.iOS, definitions); - return true; - } - else - { - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.Android, definitions); - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.iOS, definitions); - return false; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs.meta deleted file mode 100644 index 5479e74e5..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Editor/UnityARConfigurationChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 16f23364511263f40964bc2d07a3383b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef b/AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef deleted file mode 100644 index 243be2a8b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.UnityAR", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Async", - "Unity.XR.ARFoundation", - "UnityEngine.SpatialTracking" - ], - "includePlatforms": [ - "Android", - "Editor", - "iOS" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef.meta deleted file mode 100644 index 20f81ff25..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/MRTK.UnityAR.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 1c63f3ad9186bf34ea0c39e08504d5d0 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec b/AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec deleted file mode 100644 index c28cd86ff..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec +++ /dev/null @@ -1,32 +0,0 @@ - - - - Microsoft.MixedReality.Toolkit.Providers.UnityAR - $version$ - Microsoft - Microsoft,MixedReality - https://github.com/Microsoft/MixedRealityToolkit-Unity/blob/mrtk_development/License.txt - https://aka.ms/MRTK - https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Images/MRTK_Logo_NuGet.png - true - Mixed Reality Toolkit provider adding support for mobile (phones and tablets) AR devices. NOTE: This package requires Unity's Package Manager AR Foundation as well as AR Core and/or AR Kit packages. - © Microsoft Corporation. All rights reserved. - $releaseNotes$ - Unity MixedReality MixedRealityToolkit MRTK - - - - - - - - - - - - - - - - - diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec.meta deleted file mode 100644 index 63bcbb53f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/MixedReality.Toolkit.Providers.UnityAR.nuspec.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2e1b798e5241494429d7e80970c39419 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles.meta deleted file mode 100644 index e8d56e9aa..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f37acc45427a073469fc609b78f8076a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset b/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset deleted file mode 100644 index b86cde7eb..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset +++ /dev/null @@ -1,18 +0,0 @@ -%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: 11500000, guid: 2e01fc6a1b35d11479ff7f4b632b33d2, type: 3} - m_Name: DefaultUnityARCameraSettingsProfile - m_EditorClassIdentifier: - isCustomProfile: 0 - poseSource: 6 - trackingType: 0 - updateType: 0 diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset.meta deleted file mode 100644 index 469cb8833..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a8af4c5deb4155b479e4e2d2b0bca103 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/README.md b/AR-ROS/Assets/MRTK/Providers/UnityAR/README.md deleted file mode 100644 index a0232f85a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Microsoft.MixedReality.Toolkit.Providers.UnityAR - -This folder contains the code to enable mobile AR, via Unity AR Foundation, on MRTK. diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/README.md.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/README.md.meta deleted file mode 100644 index d9e965159..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/README.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a999e8abc8fe6c84ea10439ef9d012aa -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs deleted file mode 100644 index dd2687063..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Copyright(c) 2019 Takahiro Miyaura -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -#if ARFOUNDATION_PRESENT -using UnityEngine.SpatialTracking; -using UnityEngine.XR; -using UnityEngine.XR.ARFoundation; -#endif // ARFOUNDATION_PRESENT - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - /// - /// Camera settings provider for use with the Unity AR Foundation system. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityCameraSystem), - SupportedPlatforms.Android | SupportedPlatforms.IOS, - "Unity AR Foundation Camera Settings", - "UnityAR/Profiles/DefaultUnityARCameraSettingsProfile.asset", - "MixedRealityToolkit.Providers")] - public class UnityARCameraSettings : BaseCameraSettingsProvider - { - /// - /// Constructor. - /// - /// The instance of the camera system which is managing this provider. - /// Friendly name of the provider. - /// Provider priority. Used to determine order of instantiation. - /// The provider's configuration profile. - public UnityARCameraSettings( - IMixedRealityCameraSystem cameraSystem, - string name = null, - uint priority = DefaultPriority, - BaseCameraSettingsProfile profile = null) : base(cameraSystem, name, priority, profile) - { - ReadProfile(); - } - - private ArTrackedPose poseSource = ArTrackedPose.ColorCamera; - private ArTrackingType trackingType = ArTrackingType.RotationAndPosition; - private ArUpdateType updateType = ArUpdateType.UpdateAndBeforeRender; - - private void ReadProfile() - { - if (SettingsProfile == null) - { - Debug.LogWarning("A profile was not specified for the Unity AR Camera Settings provider.\nUsing Microsoft Mixed Reality Toolkit default options."); - return; - } - - poseSource = SettingsProfile.PoseSource; - trackingType = SettingsProfile.TrackingType; - updateType = SettingsProfile.UpdateType; - } - - #region IMixedRealityCameraSettings - - /// - public override bool IsOpaque => poseSource != ArTrackedPose.ColorCamera; - - #endregion IMixedRealityCameraSettings - - /// - /// The profile used to configure the camera. - /// - public UnityARCameraSettingsProfile SettingsProfile => ConfigurationProfile as UnityARCameraSettingsProfile; - -#if ARFOUNDATION_PRESENT - private bool isSupportedArConfiguration = true; - private bool isInitialized = false; - - private GameObject arSessionObject = null; - private bool preExistingArSessionObject = false; - private ARSession arSession = null; - - private GameObject arSessionOriginObject = null; - private bool preExistingArSessionOriginObject = false; - private ARSessionOrigin arSessionOrigin = null; - - private ARCameraManager arCameraManager = null; - private ARCameraBackground arCameraBackground = null; - private ARInputManager arInputManager = null; - private TrackedPoseDriver trackedPoseDriver = null; - - /// - /// Examines the scene to determine if AR Foundation components are present. - /// - private void FindARFoundationComponents() - { - arSessionObject = GameObject.Find("AR Session"); - preExistingArSessionObject = (arSessionObject != null); - arSessionOriginObject = GameObject.Find("AR Session Origin"); - preExistingArSessionOriginObject = (arSessionOriginObject != null); - } - - /// - public override void Initialize() - { - base.Initialize(); - - // Android platforms support both AR Foundation and VR. - // AR Foundation does not use the player's XR Settings. - // If the loaded device name is not an empty string, then a VR - // SDK is in use (not using AR Foundation). - if (Application.platform == RuntimePlatform.Android) - { - isSupportedArConfiguration = string.IsNullOrWhiteSpace(XRSettings.loadedDeviceName); - } - } - - /// - public override void Enable() - { - base.Enable(); - - if (!isInitialized) - { - InitializeARFoundation(); - } - } - - /// - public override void Destroy() - { - UninitializeARFoundation(); - - base.Destroy(); - } - - /// - /// Initialize AR Foundation components. - /// - /// - /// This method ensures AR Foundation required components (ex: AR Session, Tracked Pose Driver, etc) are - /// exist or are added to the appropriate scene objects. These components are used by AR Foundation to - /// communicate with the underlying AR platform (ex: AR Core), track the device and perform other necessary tasks. - /// - private void InitializeARFoundation() - { - if (!isSupportedArConfiguration) { return; } - - if (isInitialized) { return; } - - FindARFoundationComponents(); - - if (arSessionObject == null) - { - arSessionObject = new GameObject("AR Session"); - arSessionObject.transform.parent = null; - } - arSession = arSessionObject.EnsureComponent(); - arInputManager = arSessionObject.EnsureComponent(); - - if (arSessionOriginObject == null) - { - arSessionOriginObject = MixedRealityPlayspace.Transform.gameObject; - } - CameraCache.Main.transform.parent = arSessionOriginObject.transform; - - arSessionOrigin = arSessionOriginObject.EnsureComponent(); - arSessionOrigin.camera = CameraCache.Main; - - GameObject cameraObject = arSessionOrigin.camera.gameObject; - - arCameraManager = cameraObject.EnsureComponent(); - arCameraBackground = cameraObject.EnsureComponent(); - trackedPoseDriver = cameraObject.EnsureComponent(); - - trackedPoseDriver.SetPoseSource( - TrackedPoseDriver.DeviceType.GenericXRDevice, - ArEnumConversion.ToUnityTrackedPose(poseSource)); - trackedPoseDriver.trackingType = ArEnumConversion.ToUnityTrackingType(trackingType); - trackedPoseDriver.updateType = ArEnumConversion.ToUnityUpdateType(updateType); - trackedPoseDriver.UseRelativeTransform = false; - - isInitialized = true; - } - - /// - /// Uninitialize and clean up AR Foundation components. - /// - private void UninitializeARFoundation() - { - if (!isInitialized) { return; } - - if (!preExistingArSessionOriginObject && - (arSessionOriginObject != null)) - { - UnityObjectExtensions.DestroyObject(trackedPoseDriver); - trackedPoseDriver = null; - UnityObjectExtensions.DestroyObject(arCameraBackground); - arCameraBackground = null; - UnityObjectExtensions.DestroyObject(arCameraManager); - arCameraManager = null; - UnityObjectExtensions.DestroyObject(arSessionOrigin); - arSessionOrigin = null; - } - - if (!preExistingArSessionObject && - (arSessionObject != null)) - { - UnityObjectExtensions.DestroyObject(arInputManager); - arInputManager = null; - UnityObjectExtensions.DestroyObject(arSession); - arSession = null; - UnityObjectExtensions.DestroyObject(arSessionObject); - arSessionObject = null; - } - - isInitialized = false; - } -#endif // ARFOUNDATION_PRESENT - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs.meta deleted file mode 100644 index 917ce936e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: dac804d8adb3cdc4d856b5b6a7d5484a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs deleted file mode 100644 index 9f1431a31..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - /// - /// Configuration profile for the XR camera settings provider. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Providers/Unity AR/Unity AR Foundation Camera Settings Profile", fileName = "DefaultUnityARCameraSettingsProfile", order = 100)] - [MixedRealityServiceProfile(typeof(UnityARCameraSettings))] - public class UnityARCameraSettingsProfile : BaseCameraSettingsProfile - { - #region Tracked Pose Driver settings - - [SerializeField] - [Tooltip("The portion of the device (ex: color camera) from which to read the pose.")] - private ArTrackedPose poseSource = ArTrackedPose.ColorCamera; - - /// - /// The portion of the device (ex: color camera) from which to read the pose. - /// - public ArTrackedPose PoseSource => poseSource; - - [SerializeField] - [Tooltip("The type of tracking (position and/or rotation) to apply.")] - private ArTrackingType trackingType = ArTrackingType.RotationAndPosition; - - /// - /// The type of tracking (position and/or rotation) to apply. - /// - public ArTrackingType TrackingType => trackingType; - - [SerializeField] - [Tooltip("Specifies when (during Update and/or just before rendering) to update the tracking of the pose.")] - private ArUpdateType updateType = ArUpdateType.UpdateAndBeforeRender; - - /// - /// Specifies when (during Update and/or just before rendering) to update the tracking of the pose. - /// - public ArUpdateType UpdateType => updateType; - - #endregion Tracked Pose Driver settings - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs.meta deleted file mode 100644 index 2061fd18a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/UnityARCameraSettingsProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2e01fc6a1b35d11479ff7f4b632b33d2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities.meta deleted file mode 100644 index c14c99d72..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8314766f1eddf314ba644b73c91096c3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs b/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs deleted file mode 100644 index c46ddc091..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if ARFOUNDATION_PRESENT -using UnityEngine.SpatialTracking; -#endif // ARFOUNDATION_PRESENT - -namespace Microsoft.MixedReality.Toolkit.Experimental.UnityAR -{ - /// - /// Class that performs conversions between Unity's AR enum values and the provider's - /// custom enums. - /// - public static class ArEnumConversion - { -#if ARFOUNDATION_PRESENT - /// - /// Converts from an to a Unity tracked pose value. - /// - /// Value to convert. - /// - /// Unity tracked pose equivalent of the . - /// - public static TrackedPoseDriver.TrackedPose ToUnityTrackedPose(ArTrackedPose pose) - { - switch (pose) - { - case ArTrackedPose.Center: - return TrackedPoseDriver.TrackedPose.Center; - case ArTrackedPose.ColorCamera: - return TrackedPoseDriver.TrackedPose.ColorCamera; - case ArTrackedPose.Head: - return TrackedPoseDriver.TrackedPose.Head; - case ArTrackedPose.LeftEye: - return TrackedPoseDriver.TrackedPose.LeftEye; - case ArTrackedPose.LeftPose: - return TrackedPoseDriver.TrackedPose.LeftPose; - case ArTrackedPose.RightEye: - return TrackedPoseDriver.TrackedPose.RightEye; - case ArTrackedPose.RightPose: - return TrackedPoseDriver.TrackedPose.RightPose; - default: - // Unknown pose, pass the value through. - return (TrackedPoseDriver.TrackedPose)((int)pose); - } - } - - /// - /// Converts from an to a Unity tracking type value. - /// - /// Value to convert. - /// - /// Unity tracking type equivalent of the . - /// - public static TrackedPoseDriver.TrackingType ToUnityTrackingType(ArTrackingType trackingType) - { - switch (trackingType) - { - case ArTrackingType.Position: - return TrackedPoseDriver.TrackingType.PositionOnly; - case ArTrackingType.Rotation: - return TrackedPoseDriver.TrackingType.RotationOnly; - case ArTrackingType.RotationAndPosition: - return TrackedPoseDriver.TrackingType.RotationAndPosition; - default: - // Unknown type, pass the value through. - return (TrackedPoseDriver.TrackingType)((int)trackingType); - } - } - - /// - /// Converts from an to a Unity update type value. - /// - /// Value to convert. - /// - /// Unity update type equivalent of the . - /// - public static TrackedPoseDriver.UpdateType ToUnityUpdateType(ArUpdateType updateType) - { - switch (updateType) - { - case ArUpdateType.BeforeRender: - return TrackedPoseDriver.UpdateType.BeforeRender; - case ArUpdateType.Update: - return TrackedPoseDriver.UpdateType.Update; - case ArUpdateType.UpdateAndBeforeRender: - return TrackedPoseDriver.UpdateType.UpdateAndBeforeRender; - default: - // Unknown type, pass the value through. - return (TrackedPoseDriver.UpdateType)((int)updateType); - } - } -#endif // ARFOUNDATION_PRESENT - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs.meta b/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs.meta deleted file mode 100644 index 30c27e329..000000000 --- a/AR-ROS/Assets/MRTK/Providers/UnityAR/Utilities/ArEnumConversion.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a38b65f12fea3714f9bba8bf40764364 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Version.txt b/AR-ROS/Assets/MRTK/Providers/Version.txt deleted file mode 100644 index 50d05c701..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Version.txt +++ /dev/null @@ -1 +0,0 @@ -Microsoft Mixed Reality Toolkit 2.5.0 diff --git a/AR-ROS/Assets/MRTK/Providers/Version.txt.meta b/AR-ROS/Assets/MRTK/Providers/Version.txt.meta deleted file mode 100644 index 8aa391c70..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Version.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 315fcf9fe91ccb3458e16bee7fcf1dcb -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Windows.meta b/AR-ROS/Assets/MRTK/Providers/Windows.meta deleted file mode 100644 index 731c2a72f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7363453dcc25d864884f65d3d7b10733 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs.meta deleted file mode 100644 index 05ce7490e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0f46faec48d370d4ab9e453791766421 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef b/AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef deleted file mode 100644 index 5e4ce1f74..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.WindowsVoiceInput", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Async" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor", - "WSA", - "WindowsStandalone32", - "WindowsStandalone64" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef.meta deleted file mode 100644 index 4e1d0c599..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/MRTK.WindowsVoice.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 6f2a087266881b2468fca7f267d83fcc -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs b/AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs deleted file mode 100644 index edf6f2164..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs +++ /dev/null @@ -1,431 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Threading.Tasks; -using Unity.Profiling; -using UnityEngine; - -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN -using System.Text; -using UnityEngine.Windows.Speech; -#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - -namespace Microsoft.MixedReality.Toolkit.Windows.Input -{ - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsStandalone | SupportedPlatforms.WindowsUniversal | SupportedPlatforms.WindowsEditor, - "Windows Dictation Input")] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Dictation.html")] - public class WindowsDictationInputProvider : BaseInputDeviceManager, IMixedRealityDictationSystem, IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public WindowsDictationInputProvider( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public WindowsDictationInputProvider( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - /// - public bool IsListening { get; private set; } = false; - - #region IMixedRealityCapabilityCheck Implementation - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - return (capability == MixedRealityCapability.VoiceDictation); - } - - #endregion IMixedRealityCapabilityCheck Implementation - - /// - public async void StartRecording(GameObject listener, float initialSilenceTimeout = 5, float autoSilenceTimeout = 20, int recordingTime = 10, string micDeviceName = "") - { - await StartRecordingAsync(listener, initialSilenceTimeout, autoSilenceTimeout, recordingTime, micDeviceName); - } - - /// - public async void StopRecording() - { - await StopRecordingAsync(); - } - - private static readonly ProfilerMarker StartRecordingAsyncPerfMarker = new ProfilerMarker("[MRTK] WindowsDictationInputProvider.StartRecordingAsync"); - - /// - public async Task StartRecordingAsync(GameObject listener = null, float initialSilenceTimeout = 5f, float autoSilenceTimeout = 20f, int recordingTime = 10, string micDeviceName = "") - { - using (StartRecordingAsyncPerfMarker.Auto()) - { -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - if (IsListening || isTransitioning || Service == null || !Application.isPlaying) - { - Debug.LogWarning("Unable to start recording"); - return; - } - - if (dictationRecognizer == null && InputSystemProfile.SpeechCommandsProfile.SpeechRecognizerStartBehavior == AutoStartBehavior.ManualStart) - { - InitializeDictationRecognizer(); - } - - hasFailed = false; - IsListening = true; - isTransitioning = true; - - if (listener != null) - { - hasListener = true; - Service.PushModalInputHandler(listener); - } - - if (PhraseRecognitionSystem.Status == SpeechSystemStatus.Running) - { - PhraseRecognitionSystem.Shutdown(); - } - - await waitUntilPhraseRecognitionSystemHasStopped; - Debug.Assert(PhraseRecognitionSystem.Status == SpeechSystemStatus.Stopped); - - // Query the maximum frequency of the default microphone. - int minSamplingRate; // Not used. - deviceName = micDeviceName; - Microphone.GetDeviceCaps(deviceName, out minSamplingRate, out samplingRate); - - dictationRecognizer.InitialSilenceTimeoutSeconds = initialSilenceTimeout; - dictationRecognizer.AutoSilenceTimeoutSeconds = autoSilenceTimeout; - dictationRecognizer.Start(); - - await waitUntilDictationRecognizerHasStarted; - Debug.Assert(dictationRecognizer.Status == SpeechSystemStatus.Running); - - if (dictationRecognizer.Status == SpeechSystemStatus.Failed) - { - Service.RaiseDictationError(inputSource, "Dictation recognizer failed to start!"); - return; - } - - // Start recording from the microphone. - dictationAudioClip = Microphone.Start(deviceName, false, recordingTime, samplingRate); - textSoFar = new StringBuilder(); - isTransitioning = false; -#else - await Task.CompletedTask; -#endif - } - } - - private static readonly ProfilerMarker StopRecordingAsyncPerfMarker = new ProfilerMarker("[MRTK] WindowsDictationInputProvider.StopRecordingAsync"); - - /// - public async Task StopRecordingAsync() - { - using (StopRecordingAsyncPerfMarker.Auto()) - { -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - if (!IsListening || isTransitioning || !Application.isPlaying) - { - Debug.LogWarning("Unable to stop recording"); - return null; - } - - IsListening = false; - isTransitioning = true; - - if (hasListener) - { - Service?.PopModalInputHandler(); - hasListener = false; - } - - Microphone.End(deviceName); - - if (dictationRecognizer.Status == SpeechSystemStatus.Running) - { - dictationRecognizer.Stop(); - } - - await waitUntilDictationRecognizerHasStopped; - Debug.Assert(dictationRecognizer.Status == SpeechSystemStatus.Stopped); - - PhraseRecognitionSystem.Restart(); - - await waitUntilPhraseRecognitionSystemHasStarted; - Debug.Assert(PhraseRecognitionSystem.Status == SpeechSystemStatus.Running); - - isTransitioning = false; - - return dictationAudioClip; -#else - await Task.CompletedTask; - - return null; -#endif - } - } - -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - private bool hasFailed; - private bool hasListener; - private bool isTransitioning; - - private IMixedRealityInputSource inputSource = null; - - /// - /// Caches the text currently being displayed in dictation display text. - /// - private StringBuilder textSoFar; - - private string deviceName = string.Empty; - - /// - /// The device audio sampling rate. - /// - /// Set by UnityEngine.Microphone. - private int samplingRate; - - /// - /// String result of the current dictation. - /// - private string dictationResult; - - /// - /// Audio clip of the last dictation session. - /// - private AudioClip dictationAudioClip; - - private static DictationRecognizer dictationRecognizer; - - private readonly WaitUntil waitUntilPhraseRecognitionSystemHasStarted = new WaitUntil(() => PhraseRecognitionSystem.Status != SpeechSystemStatus.Stopped); - private readonly WaitUntil waitUntilPhraseRecognitionSystemHasStopped = new WaitUntil(() => PhraseRecognitionSystem.Status != SpeechSystemStatus.Running); - - private readonly WaitUntil waitUntilDictationRecognizerHasStarted = new WaitUntil(() => dictationRecognizer.Status != SpeechSystemStatus.Stopped); - private readonly WaitUntil waitUntilDictationRecognizerHasStopped = new WaitUntil(() => dictationRecognizer.Status != SpeechSystemStatus.Running); - -#if UNITY_EDITOR && UNITY_WSA - /// - public override void Initialize() - { - Toolkit.Utilities.Editor.UWPCapabilityUtility.RequireCapability( - UnityEditor.PlayerSettings.WSACapability.InternetClient, - this.GetType()); - - Toolkit.Utilities.Editor.UWPCapabilityUtility.RequireCapability( - UnityEditor.PlayerSettings.WSACapability.Microphone, - this.GetType()); - } -#endif - - /// - public override void Enable() - { - if (!Application.isPlaying) { return; } - - if (Service == null) - { - Debug.LogError($"Unable to start {Name}. An Input System is required for this feature."); - return; - } - - inputSource = Service.RequestNewGenericInputSource(Name, sourceType: InputSourceType.Voice); - dictationResult = string.Empty; - - if (dictationRecognizer == null && InputSystemProfile.SpeechCommandsProfile.SpeechRecognizerStartBehavior == AutoStartBehavior.AutoStart) - { - InitializeDictationRecognizer(); - } - } - - private void InitializeDictationRecognizer() - { - try - { - if (dictationRecognizer == null) - { - dictationRecognizer = new DictationRecognizer(); - - dictationRecognizer.DictationHypothesis += DictationRecognizer_DictationHypothesis; - dictationRecognizer.DictationResult += DictationRecognizer_DictationResult; - dictationRecognizer.DictationComplete += DictationRecognizer_DictationComplete; - dictationRecognizer.DictationError += DictationRecognizer_DictationError; - } - } - catch (System.Exception ex) - { - Debug.LogWarning($"Failed to start dictation recognizer. Are microphone permissions granted? Exception: {ex}"); - Disable(); - dictationRecognizer = null; - } - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] WindowsDictationInputProvider.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - if (!Application.isPlaying || Service == null || dictationRecognizer == null) { return; } - - if (!isTransitioning && IsListening && !Microphone.IsRecording(deviceName) && dictationRecognizer.Status == SpeechSystemStatus.Running) - { - // If the microphone stops as a result of timing out, make sure to manually stop the dictation recognizer. - StopRecording(); - } - - if (!hasFailed && dictationRecognizer.Status == SpeechSystemStatus.Failed) - { - hasFailed = true; - Service.RaiseDictationError(inputSource, "Dictation recognizer has failed!"); - } - } - } - - /// - public override async void Disable() - { - if (Application.isPlaying && dictationRecognizer != null) - { - if (!isTransitioning && IsListening) { await StopRecordingAsync(); } - - dictationRecognizer.DictationHypothesis -= DictationRecognizer_DictationHypothesis; - dictationRecognizer.DictationResult -= DictationRecognizer_DictationResult; - dictationRecognizer.DictationComplete -= DictationRecognizer_DictationComplete; - dictationRecognizer.DictationError -= DictationRecognizer_DictationError; - - dictationRecognizer.Dispose(); - } - } - - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - dictationRecognizer?.Dispose(); - } - } - - private static readonly ProfilerMarker DictationHypothesisPerfMarker = new ProfilerMarker("[MRTK] WindowsDictationInputProvider.DictationRecognizer_DictationHypothesis"); - - /// - /// This event is fired while the user is talking. As the recognizer listens, it provides text of what it's heard so far. - /// - /// The currently hypothesized recognition. - private void DictationRecognizer_DictationHypothesis(string text) - { - using (DictationHypothesisPerfMarker.Auto()) - { - // We don't want to append to textSoFar yet, because the hypothesis may have changed on the next event. - dictationResult = $"{textSoFar} {text}..."; - - Service?.RaiseDictationHypothesis(inputSource, dictationResult); - } - } - - private static readonly ProfilerMarker DictationResultPerfMarker = new ProfilerMarker("[MRTK] WindowsDictationInputProvider.DictationRecognizer_DictationResult"); - - /// - /// This event is fired after the user pauses, typically at the end of a sentence. The full recognized string is returned here. - /// - /// The text that was heard by the recognizer. - /// A representation of how confident (rejected, low, medium, high) the recognizer is of this recognition. - private void DictationRecognizer_DictationResult(string text, ConfidenceLevel confidence) - { - using (DictationResultPerfMarker.Auto()) - { - textSoFar.Append($"{text}. "); - - dictationResult = textSoFar.ToString(); - - Service?.RaiseDictationResult(inputSource, dictationResult); - } - } - - private static readonly ProfilerMarker DictationCompletePerfMarker = new ProfilerMarker("[MRTK] WindowsDictationInputProvider.DictationRecognizer_DictationComplete"); - - /// - /// This event is fired when the recognizer stops, whether from StartRecording() being called, a timeout occurring, or some other error. - /// Typically, this will simply return "Complete". In this case, we check to see if the recognizer timed out. - /// - /// An enumerated reason for the session completing. - private void DictationRecognizer_DictationComplete(DictationCompletionCause cause) - { - using (DictationCompletePerfMarker.Auto()) - { - // If Timeout occurs, the user has been silent for too long. - if (cause == DictationCompletionCause.TimeoutExceeded) - { - Microphone.End(deviceName); - - dictationResult = "Dictation has timed out. Please try again."; - } - - Service?.RaiseDictationComplete(inputSource, dictationResult, dictationAudioClip); - textSoFar = null; - dictationResult = string.Empty; - } - } - - private static readonly ProfilerMarker DictationErrorPerfMarker = new ProfilerMarker("[MRTK] WindowsDictationInputProvider.DictationRecognizer_DictationError"); - - /// - /// This event is fired when an error occurs. - /// - /// The string representation of the error reason. - /// The int representation of the hresult. - private void DictationRecognizer_DictationError(string error, int hresult) - { - using (DictationErrorPerfMarker.Auto()) - { - dictationResult = $"{error}\nHRESULT: {hresult}"; - - Service?.RaiseDictationError(inputSource, dictationResult); - textSoFar = null; - dictationResult = string.Empty; - } - } -#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - - /// - public AudioClip AudioClip - { - get - { -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - return dictationAudioClip; -#else - return null; -#endif - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs.meta b/AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs.meta deleted file mode 100644 index d08bde4f7..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsDictationInputProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 77eb2a06f1b96c246b540538a642cbbe -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs b/AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs deleted file mode 100644 index 024f0d355..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs +++ /dev/null @@ -1,242 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using Unity.Profiling; -using UnityEngine; - -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN -using UnityEngine.Windows.Speech; -using UInput = UnityEngine.Input; -#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - -namespace Microsoft.MixedReality.Toolkit.Windows.Input -{ - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsStandalone | SupportedPlatforms.WindowsUniversal | SupportedPlatforms.WindowsEditor, - "Windows Speech Input")] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Speech.html")] - public class WindowsSpeechInputProvider : BaseInputDeviceManager, IMixedRealitySpeechSystem, IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public WindowsSpeechInputProvider( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public WindowsSpeechInputProvider( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - /// - /// The keywords to be recognized and optional keyboard shortcuts. - /// - private SpeechCommands[] Commands => InputSystemProfile.SpeechCommandsProfile.SpeechCommands; - - /// - /// The Input Source for Windows Speech Input. - /// - public IMixedRealityInputSource InputSource = null; - - /// - /// The minimum confidence level for the recognizer to fire an event. - /// - public RecognitionConfidenceLevel RecognitionConfidenceLevel { get; set; } - - /// - public bool IsRecognitionActive => -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - keywordRecognizer?.IsRunning ?? -#endif - false; - - #region IMixedRealityCapabilityCheck Implementation - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - return capability == MixedRealityCapability.VoiceCommand; - } - - #endregion IMixedRealityCapabilityCheck Implementation - - /// - public void StartRecognition() - { -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - // try to initialize the keyword recognizer if it is null - if (keywordRecognizer == null && InputSystemProfile.SpeechCommandsProfile.SpeechRecognizerStartBehavior == AutoStartBehavior.ManualStart) - { - InitializeKeywordRecognizer(); - } - - if (keywordRecognizer != null && !keywordRecognizer.IsRunning) - { - keywordRecognizer.Start(); - } -#endif - } - - /// - public void StopRecognition() - { -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - if (keywordRecognizer != null && keywordRecognizer.IsRunning) - { - keywordRecognizer.Stop(); - } -#endif - } - -#if UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - private KeywordRecognizer keywordRecognizer; - -#if UNITY_EDITOR && UNITY_WSA - /// - public override void Initialize() - { - Toolkit.Utilities.Editor.UWPCapabilityUtility.RequireCapability( - UnityEditor.PlayerSettings.WSACapability.Microphone, - this.GetType()); - } -#endif - - /// - public override void Enable() - { - if (InputSystemProfile.SpeechCommandsProfile.SpeechRecognizerStartBehavior == AutoStartBehavior.AutoStart) - { - InitializeKeywordRecognizer(); - StartRecognition(); - } - } - - private void InitializeKeywordRecognizer() - { - if (!Application.isPlaying || - (Commands == null) || - (Commands.Length == 0) || - InputSystemProfile == null || - keywordRecognizer != null - ) - { - return; - } - - InputSource = Service?.RequestNewGenericInputSource("Windows Speech Input Source", sourceType: InputSourceType.Voice); - - var newKeywords = new string[Commands.Length]; - - for (int i = 0; i < Commands.Length; i++) - { - newKeywords[i] = Commands[i].LocalizedKeyword; - } - - RecognitionConfidenceLevel = InputSystemProfile.SpeechCommandsProfile.SpeechRecognitionConfidenceLevel; - - try - { - keywordRecognizer = new KeywordRecognizer(newKeywords, (ConfidenceLevel)RecognitionConfidenceLevel); - } - catch (Exception ex) - { - Debug.LogWarning($"Failed to start keyword recognizer. Are microphone permissions granted? Exception: {ex}"); - keywordRecognizer = null; - return; - } - - keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized; - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] WindowsSpeechInputProvider.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - if (keywordRecognizer != null && keywordRecognizer.IsRunning) - { - for (int i = 0; i < Commands.Length; i++) - { - if (UInput.GetKeyDown(Commands[i].KeyCode)) - { - OnPhraseRecognized((ConfidenceLevel)RecognitionConfidenceLevel, TimeSpan.Zero, DateTime.UtcNow, Commands[i].LocalizedKeyword); - } - } - } - } - } - - /// - public override void Disable() - { - if (keywordRecognizer != null) - { - StopRecognition(); - keywordRecognizer.OnPhraseRecognized -= KeywordRecognizer_OnPhraseRecognized; - - keywordRecognizer.Dispose(); - } - - keywordRecognizer = null; - } - - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - keywordRecognizer?.Dispose(); - } - } - - private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args) - { - OnPhraseRecognized(args.confidence, args.phraseDuration, args.phraseStartTime, args.text); - } - - private static readonly ProfilerMarker OnPhraseRecognizedPerfMarker = new ProfilerMarker("[MRTK] WindowsSpeechInputProvider.OnPhraseRecognized"); - - private void OnPhraseRecognized(ConfidenceLevel confidence, TimeSpan phraseDuration, DateTime phraseStartTime, string text) - { - using (OnPhraseRecognizedPerfMarker.Auto()) - { - for (int i = 0; i < Commands?.Length; i++) - { - if (Commands[i].LocalizedKeyword == text) - { - Service?.RaiseSpeechCommandRecognized(InputSource, (RecognitionConfidenceLevel)confidence, phraseDuration, phraseStartTime, Commands[i]); - break; - } - } - } - } -#endif // UNITY_STANDALONE_WIN || UNITY_WSA || UNITY_EDITOR_WIN - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs.meta b/AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs.meta deleted file mode 100644 index d4b592458..000000000 --- a/AR-ROS/Assets/MRTK/Providers/Windows/WindowsSpeechInputProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9693f50976a47744ea222e74422f4075 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality.meta deleted file mode 100644 index f112f41c6..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3084894863a0416382ea790c6f166a0c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared.meta deleted file mode 100644 index 829c6f3e2..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cd8d49a94fcd2844da0a7a3d1de13252 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs.meta deleted file mode 100644 index 3a0eb14ea..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4c0b2369c62b2404eb8433db197e54ab -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs deleted file mode 100644 index 20fb7d88c..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Camera settings provider for use with Windows Mixed Reality. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityCameraSystem), - SupportedPlatforms.WindowsUniversal, - "Windows Mixed Reality Camera Settings", - "WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset", - "MixedRealityToolkit.Providers")] - public abstract class BaseWindowsMixedRealityCameraSettings : BaseCameraSettingsProvider - { - /// - /// Constructor. - /// - /// The instance of the camera system which is managing this provider. - /// Friendly name of the provider. - /// Provider priority. Used to determine order of instantiation. - /// The provider's configuration profile. - protected BaseWindowsMixedRealityCameraSettings( - IMixedRealityCameraSystem cameraSystem, - string name = null, - uint priority = DefaultPriority, - BaseCameraSettingsProfile profile = null) : base(cameraSystem, name, priority, profile) - { } - - /// - public override void Enable() - { - base.Enable(); - InitializeReprojectionUpdater(); - } - - /// - public override void Disable() - { - UninitializeReprojectionUpdater(); - base.Disable(); - } - - #region IMixedRealityCameraSettings - - private WindowsMixedRealityCameraSettingsProfile Profile => ConfigurationProfile as WindowsMixedRealityCameraSettingsProfile; - -#if WINDOWS_UWP - private static readonly bool isTryGetViewConfigurationSupported = Windows.Utilities.WindowsApiChecker.IsMethodAvailable( - "Windows.Graphics.Holographic", - "HolographicDisplay", - "TryGetViewConfiguration"); -#endif // WINDOWS_UWP - - private WindowsMixedRealityReprojectionUpdater reprojectionUpdater = null; - - public override void ApplyConfiguration() - { - base.ApplyConfiguration(); - -#if WINDOWS_UWP - if (Profile != null - && Profile.RenderFromPVCameraForMixedRealityCapture - && isTryGetViewConfigurationSupported) - { - // If the default display has configuration for a PhotoVideoCamera, we want to enable it - global::Windows.Graphics.Holographic.HolographicViewConfiguration viewConfiguration = global::Windows.Graphics.Holographic.HolographicDisplay.GetDefault()?.TryGetViewConfiguration(global::Windows.Graphics.Holographic.HolographicViewConfigurationKind.PhotoVideoCamera); - if (viewConfiguration != null) - { - viewConfiguration.IsEnabled = true; - } - } -#endif // WINDOWS_UWP - } - - /// - /// Adds and initializes the reprojection updater component. - /// - private void InitializeReprojectionUpdater() - { - if (reprojectionUpdater == null && Profile != null) - { - reprojectionUpdater = CameraCache.Main.EnsureComponent(); - reprojectionUpdater.ReprojectionMethod = Profile.ReprojectionMethod; - } - } - - /// - /// Uninitializes and removes the reprojection updater component. - /// - private void UninitializeReprojectionUpdater() - { - if (reprojectionUpdater != null) - { - UnityObjectExtensions.DestroyObject(reprojectionUpdater); - reprojectionUpdater = null; - } - } - - #endregion IMixedRealityCameraSettings - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs.meta deleted file mode 100644 index 0c01b2822..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/BaseWindowsMixedRealityCameraSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e643b8fb8328d7b498c993514cb7ca8f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions.meta deleted file mode 100644 index 5c9d24404..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 46d73f0f79f34ae42b2698ea2b8173b5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs deleted file mode 100644 index a664c2e03..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Enumeration defining how holograms are stabilized during reprojection. - /// - public enum HolographicDepthReprojectionMethod - { - /// - /// Use the depth buffer. - /// - DepthReprojection = 0, - - /// - /// Automatically placed plane. - /// - AutoPlanar = 1 - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs.meta deleted file mode 100644 index b974a2d45..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/HolographicDepthReprojectionMethod.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c674d0fe3e45c8240b3950cba333bbb8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs deleted file mode 100644 index 9389647ac..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Defines a set of IntPtr properties that are used by the static - /// to provide access to specific underlying native objects relevant to Windows Mixed Reality. - /// - /// - /// This is intended to be used to support both XR SDK and Unity's legacy XR pipeline, which provide - /// different APIs to access these native objects. - /// - public interface IWindowsMixedRealityUtilitiesProvider - { - /// - /// The current native root ISpatialCoordinateSystem. - /// - IntPtr ISpatialCoordinateSystemPtr { get; } - - /// - /// The current native IHolographicFrame. - /// - IntPtr IHolographicFramePtr { get; } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs.meta deleted file mode 100644 index 9f1c2d033..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Definitions/IWindowsMixedRealityUtilitiesProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3c27e01a5992ead4cbb39a13bdcc798a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor.meta deleted file mode 100644 index 1611fc712..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 353ad08d551b37148bdb67acc7676edc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index e94fa8d1f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9e2991db4b1a11b429ede7d3b4a5cf6a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef deleted file mode 100644 index 71d1a4815..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.Editor", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality", - "Microsoft.MixedReality.Toolkit.Editor.Utilities", - "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.Shared" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef.meta deleted file mode 100644 index ebdfa8c33..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/MRTK.WMR.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 16119e5c4e629c74386bcf170cf58d35 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs deleted file mode 100644 index 3ed94735e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Editor; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.Editor -{ - [CustomEditor(typeof(WindowsMixedRealityCameraSettingsProfile))] - public class WindowsMixedRealityCameraSettingsProfileInspector : BaseMixedRealityToolkitConfigurationProfileInspector - { - private const string ProfileTitle = "Windows Mixed Reality Camera Settings"; - private const string ProfileDescription = ""; - - private SerializedProperty renderFromPVCameraForMixedRealityCapture; - private SerializedProperty reprojectionMethod; - - private readonly GUIContent pvCameraRenderingTitle = new GUIContent("Render from PV Camera (Align holograms)"); - private readonly GUIContent reprojectionMethodTitle = new GUIContent("HoloLens 2 Reprojection Method"); - - private const string MRCDocURL = "https://docs.microsoft.com/windows/mixed-reality/mixed-reality-capture-for-developers#render-from-the-pv-camera-opt-in"; - private const string DepthReprojectionDocURL = "https://docs.microsoft.com/windows/mixed-reality/hologram-stability#reprojection"; - - protected override void OnEnable() - { - base.OnEnable(); - - renderFromPVCameraForMixedRealityCapture = serializedObject.FindProperty("renderFromPVCameraForMixedRealityCapture"); - reprojectionMethod = serializedObject.FindProperty("reprojectionMethod"); - } - - public override void OnInspectorGUI() - { - RenderProfileHeader(ProfileTitle, ProfileDescription, target); - - using (new EditorGUI.DisabledGroupScope(IsProfileLock((BaseMixedRealityProfile)target))) - { - serializedObject.Update(); - - EditorGUILayout.Space(); - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField("Mixed Reality Capture Settings (Experimental)", EditorStyles.boldLabel); - InspectorUIUtility.RenderDocumentationButton(MRCDocURL); - } - EditorGUILayout.HelpBox("Render from PV Camera is supported on Unity 2018.4.13f1 or newer and 2019.3.0f1 or newer. Enabling the feature on other versions may result in incorrect capture behavior.", MessageType.Info); - EditorGUILayout.PropertyField(renderFromPVCameraForMixedRealityCapture, pvCameraRenderingTitle); - - EditorGUILayout.Space(); - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField("Depth Reprojection Settings", EditorStyles.boldLabel); - InspectorUIUtility.RenderDocumentationButton(DepthReprojectionDocURL); - } - EditorGUILayout.PropertyField(reprojectionMethod, reprojectionMethodTitle); - - serializedObject.ApplyModifiedProperties(); - } - } - - protected override bool IsProfileInActiveInstance() - { - var profile = target as BaseMixedRealityProfile; - - return MixedRealityToolkit.IsInitialized && profile != null && - MixedRealityToolkit.Instance.HasActiveProfile && - MixedRealityToolkit.Instance.ActiveProfile.CameraProfile != null && - MixedRealityToolkit.Instance.ActiveProfile.CameraProfile.SettingsConfigurations != null && - MixedRealityToolkit.Instance.ActiveProfile.CameraProfile.SettingsConfigurations.Any(s => s.SettingsProfile == profile); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs.meta deleted file mode 100644 index c0b4748d6..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityCameraSettingsProfileInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 404ce47d387e3694ab6e1b6ba4ee213e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs deleted file mode 100644 index c2d1a4739..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.IO; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Class to perform checks for configuration checks for the Windows Mixed Reality provider. - /// - static class WindowsMixedRealityConfigurationChecker - { - private const string FileName = "Microsoft.Windows.MixedReality.DotNetWinRT.dll"; - private static readonly string[] definitions = { "DOTNETWINRT_PRESENT" }; - - /// - /// Ensures that the appropriate symbolic constant is defined based on the presence of the DotNetWinRT binary. - /// - [MenuItem("Mixed Reality Toolkit/Utilities/Windows Mixed Reality/Check Configuration")] - private static void ReconcileDotNetWinRTDefine() - { - FileInfo[] files = FileUtilities.FindFilesInAssets(FileName); - if (files.Length > 0) - { - ScriptUtilities.AppendScriptingDefinitions(BuildTargetGroup.WSA, definitions); - } - else - { - ScriptUtilities.RemoveScriptingDefinitions(BuildTargetGroup.WSA, definitions); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs.meta deleted file mode 100644 index d7779d0e1..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Editor/WindowsMixedRealityConfigurationChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8a89925f215503d40b5c4ac4b2415105 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions.meta deleted file mode 100644 index 1b2ca83ba..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 285ff88ae34c0e24fa5b5cbc5d4f0294 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs deleted file mode 100644 index 4d49ac29f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP -using Microsoft.MixedReality.Toolkit.Utilities; -#if WINDOWS_UWP -using Windows.UI.Input.Spatial; -#elif DOTNETWINRT_PRESENT -using Microsoft.Windows.UI.Input.Spatial; -#endif -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Provides useful extensions for Windows-defined types. - /// - public static class WindowsExtensions - { -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - /// - /// Converts a platform into - /// the equivalent value in MRTK's defined . - /// - /// The handedness value to convert. - /// The converted value in the new type. - public static Handedness ToMRTKHandedness(this SpatialInteractionSourceHandedness handedness) - { - switch (handedness) - { - case SpatialInteractionSourceHandedness.Left: - return Handedness.Left; - case SpatialInteractionSourceHandedness.Right: - return Handedness.Right; - case SpatialInteractionSourceHandedness.Unspecified: - default: - return Handedness.None; - } - } -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs.meta deleted file mode 100644 index 8ac9d6bb5..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Extensions/WindowsExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d62f0bc84e456254fa2386df50b7bac9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef deleted file mode 100644 index 634a60cf4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.Shared", - "references": [ - "Microsoft.MixedReality.Toolkit" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor", - "WSA", - "WindowsStandalone32", - "WindowsStandalone64" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef.meta deleted file mode 100644 index 0deae6642..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/MRTK.WMR.Shared.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a37fab06e2e557e46930b8f918e51980 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles.meta deleted file mode 100644 index 66d88d4f4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a0b8800b02d4ebd4fbd46775df15cfcf -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset deleted file mode 100644 index c5903b51a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset +++ /dev/null @@ -1,17 +0,0 @@ -%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: 11500000, guid: a794cc45c30a79b4da55bfd426876503, type: 3} - m_Name: DefaultWindowsMixedRealityCameraSettingsProfile - m_EditorClassIdentifier: - isCustomProfile: 0 - renderFromPVCameraForMixedRealityCapture: 0 - reprojectionMethod: 0 diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset.meta deleted file mode 100644 index f7eeb8568..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b8be5b71c8e0a254c83b691d62a79ff5 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs deleted file mode 100644 index ec41634ef..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; - -#if WINDOWS_UWP -using System.Threading.Tasks; -using Unity.Profiling; -using UnityEngine; -using Windows.Perception.People; -using Windows.UI.Input.Spatial; -#endif // WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Defines the additional data, like hand mesh, that an articulated hand on HoloLens 2 can provide. - /// - /// This class is deprecated. Use WindowsMixedRealityHandMeshProvider instead. - [Obsolete("This class is deprecated. Use WindowsMixedRealityHandMeshProvider instead.")] - public class WindowsMixedRealityArticulatedHandDefinition : ArticulatedHandDefinition - { - [Obsolete("This class is deprecated. Use WindowsMixedRealityHandMeshProvider instead.")] - public WindowsMixedRealityArticulatedHandDefinition(IMixedRealityInputSource source, Handedness handedness) : base(source, handedness) { } - -#if WINDOWS_UWP - private HandMeshObserver handMeshObserver = null; - - private ushort[] handMeshTriangleIndices = null; - private HandMeshVertex[] vertexAndNormals = null; - - private Vector3[] handMeshVerticesUnity = null; - private Vector3[] handMeshNormalsUnity = null; - private int[] handMeshTriangleIndicesUnity = null; - private Vector2[] handMeshUVsUnity = null; - - private bool hasRequestedHandMeshObserver = false; - - private async void SetHandMeshObserver(SpatialInteractionSourceState sourceState) - { - handMeshObserver = await sourceState.Source.TryCreateHandMeshObserverAsync(); - } - - private void InitializeUVs(Vector3[] neutralPoseVertices) - { - if (neutralPoseVertices.Length == 0) - { - Debug.LogError("Loaded 0 verts for neutralPoseVertices"); - } - - float minY = neutralPoseVertices[0].y; - float maxY = minY; - - for (int ix = 1; ix < neutralPoseVertices.Length; ix++) - { - Vector3 p = neutralPoseVertices[ix]; - - if (p.y < minY) - { - minY = p.y; - } - else if (p.y > maxY) - { - maxY = p.y; - } - } - - float scale = 1.0f / (maxY - minY); - - handMeshUVsUnity = new Vector2[neutralPoseVertices.Length]; - - for (int ix = 0; ix < neutralPoseVertices.Length; ix++) - { - Vector3 p = neutralPoseVertices[ix]; - - handMeshUVsUnity[ix] = new Vector2(p.x * scale + 0.5f, (p.y - minY) * scale); - } - } - - private static readonly ProfilerMarker UpdateHandMeshPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityArticulatedHandDefinition.UpdateHandMesh"); - - /// - /// Updates the current hand mesh based on the passed in state of the hand. - /// - /// The current hand state. - [Obsolete("This class is deprecated. Use WindowsMixedRealityHandMeshProvider.UpdateHandMesh instead.")] - public void UpdateHandMesh(SpatialInteractionSourceState sourceState) - { - using (UpdateHandMeshPerfMarker.Auto()) - { - MixedRealityHandTrackingProfile handTrackingProfile = null; - MixedRealityInputSystemProfile inputSystemProfile = CoreServices.InputSystem?.InputSystemProfile; - if (inputSystemProfile != null) - { - handTrackingProfile = inputSystemProfile.HandTrackingProfile; - } - - if (handTrackingProfile == null || !handTrackingProfile.EnableHandMeshVisualization) - { - // If hand mesh visualization is disabled make sure to destroy our hand mesh observer if it has already been created - if (handMeshObserver != null) - { - // Notify that hand mesh has been updated (cleared) - HandMeshInfo handMeshInfo = new HandMeshInfo(); - CoreServices.InputSystem?.RaiseHandMeshUpdated(inputSource, handedness, handMeshInfo); - hasRequestedHandMeshObserver = false; - handMeshObserver = null; - } - return; - } - - HandPose handPose = sourceState.TryGetHandPose(); - - // Accessing the hand mesh data involves copying quite a bit of data, so only do it if application requests it. - if (handMeshObserver == null && !hasRequestedHandMeshObserver) - { - SetHandMeshObserver(sourceState); - hasRequestedHandMeshObserver = true; - } - - if (handMeshObserver != null && handPose != null) - { - if (handMeshTriangleIndices == null) - { - handMeshTriangleIndices = new ushort[handMeshObserver.TriangleIndexCount]; - handMeshTriangleIndicesUnity = new int[handMeshObserver.TriangleIndexCount]; - handMeshObserver.GetTriangleIndices(handMeshTriangleIndices); - - Array.Copy(handMeshTriangleIndices, handMeshTriangleIndicesUnity, (int)handMeshObserver.TriangleIndexCount); - - // Compute neutral pose - Vector3[] neutralPoseVertices = new Vector3[handMeshObserver.VertexCount]; - HandPose neutralPose = handMeshObserver.NeutralPose; - var neutralVertexAndNormals = new HandMeshVertex[handMeshObserver.VertexCount]; - HandMeshVertexState handMeshVertexState = handMeshObserver.GetVertexStateForPose(neutralPose); - handMeshVertexState.GetVertices(neutralVertexAndNormals); - - Parallel.For(0, handMeshObserver.VertexCount, i => - { - neutralVertexAndNormals[i].Position.ConvertToUnityVector3(ref neutralPoseVertices[i]); - }); - - // Compute UV mapping - InitializeUVs(neutralPoseVertices); - } - - if (vertexAndNormals == null) - { - vertexAndNormals = new HandMeshVertex[handMeshObserver.VertexCount]; - handMeshVerticesUnity = new Vector3[handMeshObserver.VertexCount]; - handMeshNormalsUnity = new Vector3[handMeshObserver.VertexCount]; - } - - if (vertexAndNormals != null && handMeshTriangleIndices != null) - { - var handMeshVertexState = handMeshObserver.GetVertexStateForPose(handPose); - handMeshVertexState.GetVertices(vertexAndNormals); - - var meshTransform = handMeshVertexState.CoordinateSystem.TryGetTransformTo(WindowsMixedRealityUtilities.SpatialCoordinateSystem); - if (meshTransform.HasValue) - { - System.Numerics.Matrix4x4.Decompose(meshTransform.Value, - out System.Numerics.Vector3 scale, - out System.Numerics.Quaternion rotation, - out System.Numerics.Vector3 translation); - - Parallel.For(0, handMeshObserver.VertexCount, i => - { - vertexAndNormals[i].Position.ConvertToUnityVector3(ref handMeshVerticesUnity[i]); - vertexAndNormals[i].Normal.ConvertToUnityVector3(ref handMeshNormalsUnity[i]); - }); - - /// Hands should follow the Playspace to accommodate teleporting, so fold in the Playspace transform. - Vector3 positionUnity = MixedRealityPlayspace.TransformPoint(translation.ToUnityVector3()); - Quaternion rotationUnity = MixedRealityPlayspace.Rotation * rotation.ToUnityQuaternion(); - - HandMeshInfo handMeshInfo = new HandMeshInfo - { - vertices = handMeshVerticesUnity, - normals = handMeshNormalsUnity, - triangles = handMeshTriangleIndicesUnity, - uvs = handMeshUVsUnity, - position = positionUnity, - rotation = rotationUnity - }; - - CoreServices.InputSystem?.RaiseHandMeshUpdated(inputSource, handedness, handMeshInfo); - } - } - } - } - } -#endif // WINDOWS_UWP - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs.meta deleted file mode 100644 index bb5aca9d0..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityArticulatedHandDefinition.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2ed31dfb20949274d9033b9ca0a7bb3d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs deleted file mode 100644 index 88ca3ff10..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Configuration profile for the Windows Mixed Reality camera settings provider. - /// - [CreateAssetMenu(menuName = "Mixed Reality Toolkit/Providers/Windows Mixed Reality/Windows Mixed Reality Camera Settings Profile", fileName = "WindowsMixedRealityCameraSettingsProfile", order = 100)] - [MixedRealityServiceProfile(typeof(BaseWindowsMixedRealityCameraSettings))] - public class WindowsMixedRealityCameraSettingsProfile : BaseCameraSettingsProfile - { - [SerializeField] - [Tooltip("If enabled, will render scene from PV camera projection matrix while MRC is active. This will ensure that holograms, such as hand meshes, remain visibly aligned in the video output.")] - private bool renderFromPVCameraForMixedRealityCapture = false; - - /// - /// Whether to use photo/video camera rendering for Mixed Reality Capture on Windows. - /// - /// - /// If true, the platform will provide an additional HolographicCamera to the app when a mixed reality capture photo or video is taken. - /// This HolographicCamera provides view matrices corresponding to the photo/video camera location, and it provides projection matrices using the photo/video camera field of view. - /// - public bool RenderFromPVCameraForMixedRealityCapture => renderFromPVCameraForMixedRealityCapture; - - [SerializeField] - [Tooltip("Specifies the default reprojection method for HoloLens 2. Note: AutoPlanar requires the DotNetWinRT adapter. DepthReprojection is the default if the adapter isn't present.")] - private HolographicDepthReprojectionMethod reprojectionMethod = HolographicDepthReprojectionMethod.DepthReprojection; - - /// - /// Specifies the default reprojection method for HoloLens 2. - /// - /// AutoPlanar requires the DotNetWinRT adapter. DepthReprojection is the default if the adapter isn't present. - public HolographicDepthReprojectionMethod ReprojectionMethod => reprojectionMethod; - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs.meta deleted file mode 100644 index 456ba25be..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityCameraSettingsProfile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a794cc45c30a79b4da55bfd426876503 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 4f9f54f9478441228dea18a2c828cfc6, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs deleted file mode 100644 index 22718ae67..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; - -#if WINDOWS_UWP -using System; -using System.Threading.Tasks; -using Unity.Profiling; -using UnityEngine; -using Windows.Perception.People; -using Windows.UI.Input.Spatial; -#endif // WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Queries the hand mesh data that an articulated hand on HoloLens 2 can provide. - /// - public class WindowsMixedRealityHandMeshProvider - { - public WindowsMixedRealityHandMeshProvider(IMixedRealityController controller) => this.controller = controller; - - private readonly IMixedRealityController controller; - private IMixedRealityInputSource InputSource => controller.InputSource; - private Handedness Handedness => controller.ControllerHandedness; - -#if WINDOWS_UWP - private HandMeshObserver handMeshObserver = null; - - private ushort[] handMeshTriangleIndices = null; - private HandMeshVertex[] vertexAndNormals = null; - - private Vector3[] handMeshVerticesUnity = null; - private Vector3[] handMeshNormalsUnity = null; - private int[] handMeshTriangleIndicesUnity = null; - private Vector2[] handMeshUVsUnity = null; - - private bool hasRequestedHandMeshObserver = false; - - private async void SetHandMeshObserver(SpatialInteractionSourceState sourceState) - { - handMeshObserver = await sourceState.Source.TryCreateHandMeshObserverAsync(); - } - - private void InitializeUVs(Vector3[] neutralPoseVertices) - { - if (neutralPoseVertices.Length == 0) - { - Debug.LogError("Loaded 0 verts for neutralPoseVertices"); - } - - float minY = neutralPoseVertices[0].y; - float maxY = minY; - - for (int ix = 1; ix < neutralPoseVertices.Length; ix++) - { - Vector3 p = neutralPoseVertices[ix]; - - if (p.y < minY) - { - minY = p.y; - } - else if (p.y > maxY) - { - maxY = p.y; - } - } - - float scale = 1.0f / (maxY - minY); - - handMeshUVsUnity = new Vector2[neutralPoseVertices.Length]; - - for (int ix = 0; ix < neutralPoseVertices.Length; ix++) - { - Vector3 p = neutralPoseVertices[ix]; - - handMeshUVsUnity[ix] = new Vector2(p.x * scale + 0.5f, (p.y - minY) * scale); - } - } - - private static readonly ProfilerMarker UpdateHandMeshPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityArticulatedHandDefinition.UpdateHandMesh"); - - /// - /// Updates the current hand mesh based on the passed in state of the hand. - /// - /// The current hand state. - public void UpdateHandMesh(SpatialInteractionSourceState sourceState) - { - using (UpdateHandMeshPerfMarker.Auto()) - { - MixedRealityHandTrackingProfile handTrackingProfile = null; - MixedRealityInputSystemProfile inputSystemProfile = CoreServices.InputSystem?.InputSystemProfile; - if (inputSystemProfile != null) - { - handTrackingProfile = inputSystemProfile.HandTrackingProfile; - } - - if (handTrackingProfile == null || !handTrackingProfile.EnableHandMeshVisualization) - { - // If hand mesh visualization is disabled make sure to destroy our hand mesh observer if it has already been created - if (handMeshObserver != null) - { - // Notify that hand mesh has been updated (cleared) - HandMeshInfo handMeshInfo = new HandMeshInfo(); - CoreServices.InputSystem?.RaiseHandMeshUpdated(InputSource, Handedness, handMeshInfo); - hasRequestedHandMeshObserver = false; - handMeshObserver = null; - } - return; - } - - HandPose handPose = sourceState.TryGetHandPose(); - - // Accessing the hand mesh data involves copying quite a bit of data, so only do it if application requests it. - if (handMeshObserver == null && !hasRequestedHandMeshObserver) - { - SetHandMeshObserver(sourceState); - hasRequestedHandMeshObserver = true; - } - - if (handMeshObserver != null && handPose != null) - { - if (handMeshTriangleIndices == null) - { - handMeshTriangleIndices = new ushort[handMeshObserver.TriangleIndexCount]; - handMeshTriangleIndicesUnity = new int[handMeshObserver.TriangleIndexCount]; - handMeshObserver.GetTriangleIndices(handMeshTriangleIndices); - - Array.Copy(handMeshTriangleIndices, handMeshTriangleIndicesUnity, (int)handMeshObserver.TriangleIndexCount); - - // Compute neutral pose - Vector3[] neutralPoseVertices = new Vector3[handMeshObserver.VertexCount]; - HandPose neutralPose = handMeshObserver.NeutralPose; - var neutralVertexAndNormals = new HandMeshVertex[handMeshObserver.VertexCount]; - HandMeshVertexState handMeshVertexState = handMeshObserver.GetVertexStateForPose(neutralPose); - handMeshVertexState.GetVertices(neutralVertexAndNormals); - - Parallel.For(0, handMeshObserver.VertexCount, i => - { - neutralVertexAndNormals[i].Position.ConvertToUnityVector3(ref neutralPoseVertices[i]); - }); - - // Compute UV mapping - InitializeUVs(neutralPoseVertices); - } - - if (vertexAndNormals == null) - { - vertexAndNormals = new HandMeshVertex[handMeshObserver.VertexCount]; - handMeshVerticesUnity = new Vector3[handMeshObserver.VertexCount]; - handMeshNormalsUnity = new Vector3[handMeshObserver.VertexCount]; - } - - if (vertexAndNormals != null && handMeshTriangleIndices != null) - { - var handMeshVertexState = handMeshObserver.GetVertexStateForPose(handPose); - handMeshVertexState.GetVertices(vertexAndNormals); - - var meshTransform = handMeshVertexState.CoordinateSystem.TryGetTransformTo(WindowsMixedRealityUtilities.SpatialCoordinateSystem); - if (meshTransform.HasValue) - { - System.Numerics.Matrix4x4.Decompose(meshTransform.Value, - out System.Numerics.Vector3 scale, - out System.Numerics.Quaternion rotation, - out System.Numerics.Vector3 translation); - - Parallel.For(0, handMeshObserver.VertexCount, i => - { - vertexAndNormals[i].Position.ConvertToUnityVector3(ref handMeshVerticesUnity[i]); - vertexAndNormals[i].Normal.ConvertToUnityVector3(ref handMeshNormalsUnity[i]); - }); - - /// Hands should follow the Playspace to accommodate teleporting, so fold in the Playspace transform. - Vector3 positionUnity = MixedRealityPlayspace.TransformPoint(translation.ToUnityVector3()); - Quaternion rotationUnity = MixedRealityPlayspace.Rotation * rotation.ToUnityQuaternion(); - - HandMeshInfo handMeshInfo = new HandMeshInfo - { - vertices = handMeshVerticesUnity, - normals = handMeshNormalsUnity, - triangles = handMeshTriangleIndicesUnity, - uvs = handMeshUVsUnity, - position = positionUnity, - rotation = rotationUnity - }; - - CoreServices.InputSystem?.RaiseHandMeshUpdated(InputSource, Handedness, handMeshInfo); - } - } - } - } - } -#endif // WINDOWS_UWP - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs.meta deleted file mode 100644 index 0f9bfea63..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandMeshProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e81d6dc376fdd8349b0576d112375ef8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs deleted file mode 100644 index ad334ffbe..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -#if WINDOWS_UWP -using System.IO; -#endif - -namespace Microsoft.MixedReality.Toolkit.Input -{ - /// - /// Record joint positions of a hand and log them for use in simulated hands. - /// - [AddComponentMenu("Scripts/MRTK/Providers/WindowsMixedRealityHandRecorder")] - public class WindowsMixedRealityHandRecorder : MonoBehaviour - { - private static readonly int jointCount = Enum.GetNames(typeof(TrackedHandJoint)).Length; - - /// - /// The joint positioned at the origin at the start of the recording. - /// - /// - /// If the reference joint moves between start and stop of recording then final position is used as an offset. - /// Example: A "poke" gesture can be simulated by moving the index finger forward between start and stop, - /// giving an offset that creates a poking motion when interpolated. - /// - public TrackedHandJoint ReferenceJoint { get; set; } = TrackedHandJoint.IndexTip; - - /// - /// Default output filename for saving the recorded pose. - /// - public string OutputFileName { get; } = "ArticulatedHandPose"; - - private Vector3 offset = Vector3.zero; - private Handedness recordingHand = Handedness.None; - - public void RecordLeftHandStart() - { - RecordHandStart(Handedness.Left); - } - - public void RecordRightHandStart() - { - RecordHandStart(Handedness.Right); - } - - private void RecordHandStart(Handedness handedness) - { - HandJointUtils.TryGetJointPose(ReferenceJoint, handedness, out MixedRealityPose joint); - offset = joint.Position; - recordingHand = handedness; - } - - public void RecordHandStop() - { - MixedRealityPose[] jointPoses = new MixedRealityPose[jointCount]; - for (int i = 0; i < jointCount; ++i) - { - HandJointUtils.TryGetJointPose((TrackedHandJoint)i, recordingHand, out jointPoses[i]); - } - - ArticulatedHandPose pose = new ArticulatedHandPose(); - pose.ParseFromJointPoses(jointPoses, recordingHand, Quaternion.identity, offset); - - recordingHand = Handedness.None; - - var filename = String.Format("{0}-{1}.json", OutputFileName, DateTime.UtcNow.ToString("yyyyMMdd-HHmmss")); - StoreRecordedHandPose(pose.ToJson(), filename); - } - - private static void StoreRecordedHandPose(string data, string filename) - { -#if WINDOWS_UWP - string path = Path.Combine(Application.persistentDataPath, filename); - using (TextWriter writer = File.CreateText(path)) - { - writer.Write(data); - } -#else - Debug.Log($"{filename}: {data}"); -#endif - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs.meta deleted file mode 100644 index 5da2e148b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityHandRecorder.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ccabe4fb25df0f94babb85f213610a6c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs deleted file mode 100644 index b7a8bf0bc..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Windows.Utilities; -using UnityEngine; - -#if UNITY_WSA && DOTNETWINRT_PRESENT -using System.Collections.Generic; -#endif // UNITY_WSA && DOTNETWINRT_PRESENT - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Script used to update the reprojection method for Windows Mixed Reality devices. - /// - public class WindowsMixedRealityReprojectionUpdater : MonoBehaviour - { - /// - /// Gets or sets the reprojection method used by Windows Mixed Reality. - /// - public HolographicDepthReprojectionMethod ReprojectionMethod { get; set; } - -#if UNITY_WSA && DOTNETWINRT_PRESENT - private readonly Dictionary cameraIdToSupportsAutoPlanar = new Dictionary(); - - private static readonly bool isDepthReprojectionModeSupported = WindowsApiChecker.IsPropertyAvailable( - "Windows.Graphics.Holographic", - "HolographicCameraRenderingParameters", - "DepthReprojectionMethod"); - - private void OnPostRender() - { - // The reprojection method needs to be set each frame. - if (isDepthReprojectionModeSupported && - (ReprojectionMethod == HolographicDepthReprojectionMethod.AutoPlanar)) - { - Microsoft.Windows.Graphics.Holographic.HolographicFrame frame = WindowsMixedRealityUtilities.CurrentHolographicFrame; - foreach (var cameraPose in frame?.CurrentPrediction.CameraPoses) - { - if (CameraSupportsAutoPlanar(cameraPose.HolographicCamera)) - { - Microsoft.Windows.Graphics.Holographic.HolographicCameraRenderingParameters renderingParams = frame.GetRenderingParameters(cameraPose); - renderingParams.DepthReprojectionMethod = Microsoft.Windows.Graphics.Holographic.HolographicDepthReprojectionMethod.AutoPlanar; - } - } - } - } - - /// - /// Checks the Holographic camera to see if it supports auto-planar reprojection. - /// - /// The camera to be queried. - /// - /// True if the camera supports auto-planar reprojection, false otherwise. - /// - private bool CameraSupportsAutoPlanar(Microsoft.Windows.Graphics.Holographic.HolographicCamera camera) - { - bool supportsAutoPlanar = false; - - if (!cameraIdToSupportsAutoPlanar.TryGetValue(camera.Id, out supportsAutoPlanar)) - { - foreach (var method in camera.ViewConfiguration.SupportedDepthReprojectionMethods) - { - if (method == Microsoft.Windows.Graphics.Holographic.HolographicDepthReprojectionMethod.AutoPlanar) - { - supportsAutoPlanar = true; - break; - } - } - cameraIdToSupportsAutoPlanar.Add(camera.Id, supportsAutoPlanar); - } - - return supportsAutoPlanar; - } -#endif // UNITY_WSA && DOTNETWINRT_PRESENT - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs.meta deleted file mode 100644 index 51f10b0b4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityReprojectionUpdater.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 86cea81997dfbc04c87bddb4b8ce69d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs deleted file mode 100644 index 6eb4755c4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP -using System.Runtime.InteropServices; -#if WINDOWS_UWP -using Windows.Perception.Spatial; -#if DOTNETWINRT_PRESENT -using Microsoft.Windows.Graphics.Holographic; -#else -using Windows.Graphics.Holographic; -#endif -#elif DOTNETWINRT_PRESENT -using Microsoft.Windows.Graphics.Holographic; -using Microsoft.Windows.Perception.Spatial; -#endif -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - public static class WindowsMixedRealityUtilities - { - /// - /// The provider that should be used for the corresponding utilities. - /// - /// - /// This is intended to be used to support both XR SDK and Unity's legacy XR pipeline, which provide - /// different APIs to access these native objects. - /// - public static IWindowsMixedRealityUtilitiesProvider UtilitiesProvider { get; set; } = null; - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP -#if ENABLE_DOTNET - [DllImport("DotNetNativeWorkaround.dll", EntryPoint = "MarshalIInspectable")] - private static extern void GetSpatialCoordinateSystem(IntPtr nativePtr, out SpatialCoordinateSystem coordinateSystem); - - /// - /// Helps marshal WinRT IInspectable objects that have been passed to managed code as an IntPtr. - /// - /// - /// On .NET Native, IInspectable pointers cannot be marshaled from native to managed code using Marshal.GetObjectForIUnknown. - /// This class calls into a native method that specifically marshals the type as a specific WinRT interface, which - /// is supported by the marshaller on both .NET Core and .NET Native. - /// Please see https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/HandTracking.html#net-native for more info. - /// - private static SpatialCoordinateSystem GetSpatialCoordinateSystem(IntPtr nativePtr) - { - try - { - SpatialCoordinateSystem coordinateSystem; - GetSpatialCoordinateSystem(nativePtr, out coordinateSystem); - return coordinateSystem; - } - catch - { - UnityEngine.Debug.LogError("Call to the DotNetNativeWorkaround plug-in failed. The plug-in is required for correct behavior when using .NET Native compilation"); - return Marshal.GetObjectForIUnknown(nativePtr) as SpatialCoordinateSystem; - } - } -#endif // ENABLE_DOTNET - - /// - /// Access the underlying native spatial coordinate system. - /// - /// - /// Changing the state of the native objects received via this API may cause unpredictable - /// behaviour and rendering artifacts, especially if Unity also reasons about that same state. - /// - public static SpatialCoordinateSystem SpatialCoordinateSystem - { - get - { - if (UtilitiesProvider != null) - { - IntPtr newSpatialCoordinateSystemPtr = UtilitiesProvider.ISpatialCoordinateSystemPtr; - if (newSpatialCoordinateSystemPtr != currentSpatialCoordinateSystemPtr && newSpatialCoordinateSystemPtr != IntPtr.Zero) - { -#if ENABLE_DOTNET - spatialCoordinateSystem = GetSpatialCoordinateSystem(newSpatialCoordinateSystemPtr); -#elif WINDOWS_UWP - spatialCoordinateSystem = Marshal.GetObjectForIUnknown(newSpatialCoordinateSystemPtr) as SpatialCoordinateSystem; -#elif DOTNETWINRT_PRESENT - spatialCoordinateSystem = SpatialCoordinateSystem.FromNativePtr(newSpatialCoordinateSystemPtr); -#endif - currentSpatialCoordinateSystemPtr = newSpatialCoordinateSystemPtr; - } - } - return spatialCoordinateSystem; - } - } - - private static IntPtr currentSpatialCoordinateSystemPtr = IntPtr.Zero; - - /// - /// Access the underlying native current holographic frame. - /// - /// - /// Changing the state of the native objects received via this API may cause unpredictable - /// behavior and rendering artifacts, especially if Unity also reasons about that same state. - /// - public static HolographicFrame CurrentHolographicFrame - { - get - { - if (UtilitiesProvider == null || UtilitiesProvider.IHolographicFramePtr == IntPtr.Zero) - { - return null; - } - -#if DOTNETWINRT_PRESENT - return HolographicFrame.FromNativePtr(UtilitiesProvider.IHolographicFramePtr); -#elif WINDOWS_UWP - return Marshal.GetObjectForIUnknown(UtilitiesProvider.IHolographicFramePtr) as HolographicFrame; -#else - return null; -#endif - } - } - - private static SpatialCoordinateSystem spatialCoordinateSystem = null; -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - - [Obsolete("Use the System.Numerics.Vector3 extension method ToUnityVector3 instead.")] - public static UnityEngine.Vector3 SystemVector3ToUnity(System.Numerics.Vector3 vector) - { - return vector.ToUnityVector3(); - } - - [Obsolete("Use the System.Numerics.Quaternion extension method ToUnityQuaternion instead.")] - public static UnityEngine.Quaternion SystemQuaternionToUnity(System.Numerics.Quaternion quaternion) - { - return quaternion.ToUnityQuaternion(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs.meta deleted file mode 100644 index 349609c9b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4eb2716594d65cd47bebeaeb20c3fb7d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018.meta deleted file mode 100644 index b896e6508..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2d71ddef13603a04ba68d0f90645b1a5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs.meta deleted file mode 100644 index f1957a9b7..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 86a0c54842daedc40ac1e8ef5aded8cb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers.meta deleted file mode 100644 index 8e29c56fa..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1e1e4bb08c969f54e830d0e43f29a5fc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs deleted file mode 100644 index b72596196..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs +++ /dev/null @@ -1,387 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; - -#if UNITY_WSA -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR.WSA.Input; -#endif - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input -{ - /// - /// A Windows Mixed Reality Source Instance. - /// - public abstract class BaseWindowsMixedRealitySource : BaseController - { - /// - /// Constructor. - /// - protected BaseWindowsMixedRealitySource(TrackingState trackingState, Handedness sourceHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, sourceHandedness, inputSource, interactions) - { - } - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => DefaultInteractions; - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => DefaultInteractions; - -#if UNITY_WSA - /// - /// The last updated source state reading for this Windows Mixed Reality Source. - /// - public InteractionSourceState LastSourceStateReading { get; protected set; } - - private Vector3 currentSourcePosition = Vector3.zero; - private Quaternion currentSourceRotation = Quaternion.identity; - private MixedRealityPose lastSourcePose = MixedRealityPose.ZeroIdentity; - private MixedRealityPose currentSourcePose = MixedRealityPose.ZeroIdentity; - - private Vector3 currentPointerPosition = Vector3.zero; - private Quaternion currentPointerRotation = Quaternion.identity; - private MixedRealityPose currentPointerPose = MixedRealityPose.ZeroIdentity; - - private MixedRealityPose currentGripPose = MixedRealityPose.ZeroIdentity; - - #region Update data functions - - private static readonly ProfilerMarker UpdateControllerPerfMarker = new ProfilerMarker("[MRTK] BaseWindowsMixedRealitySource.UpdateController"); - - /// - /// Update the source data from the provided platform state. - /// - /// The InteractionSourceState retrieved from the platform. - public virtual void UpdateController(InteractionSourceState interactionSourceState) - { - using (UpdateControllerPerfMarker.Auto()) - { - if (!Enabled) { return; } - - UpdateSourceData(interactionSourceState); - UpdateVelocity(interactionSourceState); - - if (Interactions == null) - { - Debug.LogError($"No interaction configuration for Windows Mixed Reality {ControllerHandedness} Source"); - Enabled = false; - } - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.None: - break; - case DeviceInputType.SpatialPointer: - UpdatePointerData(interactionSourceState, Interactions[i]); - break; - case DeviceInputType.Select: - case DeviceInputType.Trigger: - case DeviceInputType.TriggerTouch: - case DeviceInputType.TriggerPress: - UpdateTriggerData(interactionSourceState, Interactions[i]); - break; - case DeviceInputType.SpatialGrip: - UpdateGripData(interactionSourceState, Interactions[i]); - break; - } - } - - LastSourceStateReading = interactionSourceState; - } - } - - private static readonly ProfilerMarker UpdateVelocityPerfMarker = new ProfilerMarker("[MRTK] BaseWindowsMixedRealitySource.UpdateVelocity"); - - public void UpdateVelocity(InteractionSourceState interactionSourceState) - { - using (UpdateVelocityPerfMarker.Auto()) - { - Vector3 newVelocity; - if (interactionSourceState.sourcePose.TryGetVelocity(out newVelocity)) - { - Velocity = newVelocity; - } - Vector3 newAngularVelocity; - if (interactionSourceState.sourcePose.TryGetAngularVelocity(out newAngularVelocity)) - { - AngularVelocity = newAngularVelocity; - } - } - } - - private static readonly ProfilerMarker UpdateSourceDataPerfMarker = new ProfilerMarker("[MRTK] BaseWindowsMixedRealitySource.UpdateSourceData"); - - /// - /// Update the source input from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateSourceData(InteractionSourceState interactionSourceState) - { - using (UpdateSourceDataPerfMarker.Auto()) - { - var lastState = TrackingState; - var sourceKind = interactionSourceState.source.kind; - - lastSourcePose = currentSourcePose; - - if (sourceKind == InteractionSourceKind.Hand || - (sourceKind == InteractionSourceKind.Controller && interactionSourceState.source.supportsPointing)) - { - // The source is either a hand or a controller that supports pointing. - // We can now check for position and rotation. - IsPositionAvailable = interactionSourceState.sourcePose.TryGetPosition(out currentSourcePosition); - - if (IsPositionAvailable) - { - IsPositionApproximate = (interactionSourceState.sourcePose.positionAccuracy == InteractionSourcePositionAccuracy.Approximate); - } - else - { - IsPositionApproximate = false; - } - - IsRotationAvailable = interactionSourceState.sourcePose.TryGetRotation(out currentSourceRotation); - - // We want the source to follow the Playspace, so fold in the playspace transform here to - // put the source pose into world space. - currentSourcePosition = MixedRealityPlayspace.TransformPoint(currentSourcePosition); - currentSourceRotation = MixedRealityPlayspace.Rotation * currentSourceRotation; - - // Devices are considered tracked if we receive position OR rotation data from the sensors. - TrackingState = (IsPositionAvailable || IsRotationAvailable) ? TrackingState.Tracked : TrackingState.NotTracked; - } - else - { - // The input source does not support tracking. - TrackingState = TrackingState.NotApplicable; - } - - currentSourcePose.Position = currentSourcePosition; - currentSourcePose.Rotation = currentSourceRotation; - - // Raise input system events if it is enabled. - if (lastState != TrackingState) - { - CoreServices.InputSystem?.RaiseSourceTrackingStateChanged(InputSource, this, TrackingState); - } - - if (TrackingState == TrackingState.Tracked && lastSourcePose != currentSourcePose) - { - if (IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePoseChanged(InputSource, this, currentSourcePose); - } - else if (IsPositionAvailable && !IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePositionChanged(InputSource, this, currentSourcePosition); - } - else if (!IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourceRotationChanged(InputSource, this, currentSourceRotation); - } - } - } - } - - private static readonly ProfilerMarker UpdatePointerDataPerfMarker = new ProfilerMarker("[MRTK] BaseWindowsMixedRealitySource.UpdatePointerData"); - - /// - /// Update the spatial pointer input from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdatePointerData(InteractionSourceState interactionSourceState, MixedRealityInteractionMapping interactionMapping) - { - using (UpdatePointerDataPerfMarker.Auto()) - { - if (interactionSourceState.source.supportsPointing) - { - interactionSourceState.sourcePose.TryGetPosition(out currentPointerPosition, InteractionSourceNode.Pointer); - interactionSourceState.sourcePose.TryGetRotation(out currentPointerRotation, InteractionSourceNode.Pointer); - - // We want the source to follow the Playspace, so fold in the playspace transform here to - // put the source pose into world space. - currentPointerPose.Position = MixedRealityPlayspace.TransformPoint(currentPointerPosition); - currentPointerPose.Rotation = MixedRealityPlayspace.Rotation * currentPointerRotation; - } - - // Update the interaction data source - interactionMapping.PoseData = currentPointerPose; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, currentPointerPose); - } - } - } - - private static readonly ProfilerMarker UpdateGripDataPerfMarker = new ProfilerMarker("[MRTK] BaseWindowsMixedRealitySource.UpdateGripData"); - - /// - /// Update the spatial grip input from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateGripData(InteractionSourceState interactionSourceState, MixedRealityInteractionMapping interactionMapping) - { - using (UpdateGripDataPerfMarker.Auto()) - { - switch (interactionMapping.AxisType) - { - case AxisType.SixDof: - { - // The data queried in UpdateSourceData is the grip pose. - // Reuse that data to save two method calls and transforms. - currentGripPose.Position = currentSourcePosition; - currentGripPose.Rotation = currentSourceRotation; - - // Update the interaction data source - interactionMapping.PoseData = currentGripPose; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, currentGripPose); - } - } - break; - } - } - } - - private static readonly ProfilerMarker UpdateTriggerDataPerfMarker = new ProfilerMarker("[MRTK] BaseWindowsMixedRealitySource.UpdateTriggerData"); - - /// - /// Update the trigger and grasped input from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateTriggerData(InteractionSourceState interactionSourceState, MixedRealityInteractionMapping interactionMapping) - { - using (UpdateTriggerDataPerfMarker.Auto()) - { - switch (interactionMapping.InputType) - { - case DeviceInputType.TriggerPress: - { - // Update the interaction data source - interactionMapping.BoolData = interactionSourceState.grasped; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - break; - } - case DeviceInputType.Select: - { - // Get the select pressed state, factoring in a workaround for Unity issue #1033526. - // When that issue is fixed, it should be possible change the line below to: - // interactionMapping.BoolData = interactionSourceState.selectPressed; - interactionMapping.BoolData = GetSelectPressedWorkaround(interactionSourceState); - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - break; - } - case DeviceInputType.Trigger: - { - // Update the interaction data source - interactionMapping.FloatData = interactionSourceState.selectPressedAmount; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaiseFloatInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionSourceState.selectPressedAmount); - } - break; - } - case DeviceInputType.TriggerTouch: - { - // Update the interaction data source - interactionMapping.BoolData = interactionSourceState.selectPressedAmount > 0; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionSourceState.selectPressedAmount > 0) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - break; - } - } - } - } - - /// - /// Gets whether or not 'select' has been pressed. - /// - /// - /// This includes a workaround to fix air-tap gestures in HoloLens 1 remoting, to work around the following Unity issue: - /// https://issuetracker.unity3d.com/issues/hololens-interactionsourcestate-dot-selectpressed-is-false-when-air-tap-and-hold - /// Bug was discovered May 2018 and still exists as of May 2019 in version 2018.3.11f1. This workaround is scoped to only - /// cases where remoting is active. - /// - private bool GetSelectPressedWorkaround(InteractionSourceState interactionSourceState) - { - bool selectPressed = interactionSourceState.selectPressed; - // Only do this workaround inside the Unity editor (in holographic remoting scenarios). - // When this is invoked on device, this will display an error attempting to load the - // remoting binaries. -#if UNITY_EDITOR - if (interactionSourceState.source.kind == InteractionSourceKind.Hand && - UnityEngine.XR.WSA.HolographicRemoting.ConnectionState == UnityEngine.XR.WSA.HolographicStreamerConnectionState.Connected && - !interactionSourceState.source.supportsGrasp) // Check that we're not remoting to a HoloLens 2 - { - // This workaround is safe as long as all these assumptions hold: - Debug.Assert(!interactionSourceState.selectPressed, "Unity issue #1033526 seems to have been resolved. Please remove this workaround!"); - Debug.Assert(!interactionSourceState.source.supportsGrasp); - Debug.Assert(!interactionSourceState.source.supportsMenu); - Debug.Assert(!interactionSourceState.source.supportsPointing); - Debug.Assert(!interactionSourceState.source.supportsThumbstick); - Debug.Assert(!interactionSourceState.source.supportsTouchpad); - - selectPressed = interactionSourceState.anyPressed; - } -#endif // UNITY_EDITOR - return selectPressed; - } - - #endregion Update data functions -#endif // UNITY_WSA - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs.meta deleted file mode 100644 index 6377288e2..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/BaseWindowsMixedRealitySource.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cc9989273a70bb946b5a475e02a5c530 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs deleted file mode 100644 index 80f9ba98b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs +++ /dev/null @@ -1,264 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Windows.Utilities; -using System.Collections.Generic; - -#if UNITY_WSA -using Unity.Profiling; -using UnityEngine.XR.WSA.Input; -#if WINDOWS_UWP || DOTNETWINRT_PRESENT -using System; -using UnityEngine; -#if WINDOWS_UWP -using Windows.Perception; -using Windows.Perception.People; -using Windows.UI.Input.Spatial; -#elif DOTNETWINRT_PRESENT -using Microsoft.Windows.Perception; -using Microsoft.Windows.Perception.People; -using Microsoft.Windows.UI.Input.Spatial; -#endif -#endif // WINDOWS_UWP || DOTNETWINRT_PRESENT -#endif // UNITY_WSA - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input -{ - /// - /// A Windows Mixed Reality articulated hand instance. - /// - [MixedRealityController( - SupportedControllerType.ArticulatedHand, - new[] { Handedness.Left, Handedness.Right })] - public class WindowsMixedRealityArticulatedHand : BaseWindowsMixedRealitySource, IMixedRealityHand - { - /// - /// Constructor. - /// - public WindowsMixedRealityArticulatedHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - handDefinition = new ArticulatedHandDefinition(inputSource, controllerHandedness); - handMeshProvider = new WindowsMixedRealityHandMeshProvider(this); - articulatedHandApiAvailable = WindowsApiChecker.IsMethodAvailable( - "Windows.UI.Input.Spatial", - "SpatialInteractionSourceState", - "TryGetHandPose"); - } - - /// - /// The Windows Mixed Reality articulated hands default interactions. - /// - /// A single interaction mapping works for both left and right articulated hands. - public override MixedRealityInteractionMapping[] DefaultInteractions => handDefinition?.DefaultInteractions; - - private readonly Dictionary unityJointPoses = new Dictionary(); - private readonly ArticulatedHandDefinition handDefinition; - private readonly WindowsMixedRealityHandMeshProvider handMeshProvider; - private readonly bool articulatedHandApiAvailable = false; - - #region IMixedRealityHand Implementation - - /// - public bool TryGetJoint(TrackedHandJoint joint, out MixedRealityPose pose) => unityJointPoses.TryGetValue(joint, out pose); - - #endregion IMixedRealityHand Implementation - - /// - public override bool IsInPointingPose => handDefinition.IsInPointingPose; - -#if UNITY_WSA -#if WINDOWS_UWP || DOTNETWINRT_PRESENT - private SpatialInteractionManager spatialInteractionManager = null; - private SpatialInteractionManager SpatialInteractionManager - { - get - { - if (spatialInteractionManager == null) - { - UnityEngine.WSA.Application.InvokeOnUIThread(() => - { - spatialInteractionManager = SpatialInteractionManager.GetForCurrentView(); - }, true); - } - - return spatialInteractionManager; - } - } - -#endif // WINDOWS_UWP || DOTNETWINRT_PRESENT - - #region Update data functions - - private static readonly ProfilerMarker UpdateControllerPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityArticulatedHand.UpdateController"); - - /// - public override void UpdateController(InteractionSourceState interactionSourceState) - { - using (UpdateControllerPerfMarker.Auto()) - { - if (!Enabled) { return; } - - base.UpdateController(interactionSourceState); - - UpdateHandData(interactionSourceState); - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.IndexFinger: - handDefinition?.UpdateCurrentIndexPose(Interactions[i]); - break; - } - } - } - } - -#if WINDOWS_UWP || DOTNETWINRT_PRESENT - private static readonly ProfilerMarker UpdateHandDataPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityArticulatedHand.UpdateHandData"); -#endif // WINDOWS_UWP || DOTNETWINRT_PRESENT - - /// - /// Update the hand data from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateHandData(InteractionSourceState interactionSourceState) - { -#if WINDOWS_UWP || DOTNETWINRT_PRESENT - using (UpdateHandDataPerfMarker.Auto()) - { - // Articulated hand support is only present in the 18362 version and beyond Windows - // SDK (which contains the V8 drop of the Universal API Contract). In particular, - // the HandPose related APIs are only present on this version and above. - if (!articulatedHandApiAvailable) - { - return; - } - - PerceptionTimestamp perceptionTimestamp = PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now); - IReadOnlyList sources = SpatialInteractionManager?.GetDetectedSourcesAtTimestamp(perceptionTimestamp); - foreach (SpatialInteractionSourceState sourceState in sources) - { - if (sourceState.Source.Id.Equals(interactionSourceState.source.id)) - { -#if WINDOWS_UWP - handMeshProvider?.UpdateHandMesh(sourceState); -#endif // WINDOWS_UWP - - HandPose handPose = sourceState.TryGetHandPose(); - - if (handPose != null && handPose.TryGetJoints(WindowsMixedRealityUtilities.SpatialCoordinateSystem, jointIndices, jointPoses)) - { - for (int i = 0; i < jointPoses.Length; i++) - { - Vector3 jointPosition = jointPoses[i].Position.ToUnityVector3(); - Quaternion jointOrientation = jointPoses[i].Orientation.ToUnityQuaternion(); - - // We want the joints to follow the playspace, so fold in the playspace transform here to - // put the joint pose into world space. - jointPosition = MixedRealityPlayspace.TransformPoint(jointPosition); - jointOrientation = MixedRealityPlayspace.Rotation * jointOrientation; - - TrackedHandJoint handJoint = ConvertHandJointKindToTrackedHandJoint(jointIndices[i]); - - if (handJoint == TrackedHandJoint.IndexTip) - { - lastIndexTipRadius = jointPoses[i].Radius; - } - - unityJointPoses[handJoint] = new MixedRealityPose(jointPosition, jointOrientation); - } - - handDefinition?.UpdateHandJoints(unityJointPoses); - } - break; - } - } - } -#endif // WINDOWS_UWP || DOTNETWINRT_PRESENT - } - - #endregion Update data functions - -#if WINDOWS_UWP || DOTNETWINRT_PRESENT - private static readonly HandJointKind[] jointIndices = new HandJointKind[] - { - HandJointKind.Palm, - HandJointKind.Wrist, - HandJointKind.ThumbMetacarpal, - HandJointKind.ThumbProximal, - HandJointKind.ThumbDistal, - HandJointKind.ThumbTip, - HandJointKind.IndexMetacarpal, - HandJointKind.IndexProximal, - HandJointKind.IndexIntermediate, - HandJointKind.IndexDistal, - HandJointKind.IndexTip, - HandJointKind.MiddleMetacarpal, - HandJointKind.MiddleProximal, - HandJointKind.MiddleIntermediate, - HandJointKind.MiddleDistal, - HandJointKind.MiddleTip, - HandJointKind.RingMetacarpal, - HandJointKind.RingProximal, - HandJointKind.RingIntermediate, - HandJointKind.RingDistal, - HandJointKind.RingTip, - HandJointKind.LittleMetacarpal, - HandJointKind.LittleProximal, - HandJointKind.LittleIntermediate, - HandJointKind.LittleDistal, - HandJointKind.LittleTip - }; - - private readonly JointPose[] jointPoses = new JointPose[jointIndices.Length]; - private float lastIndexTipRadius = 0; - - private TrackedHandJoint ConvertHandJointKindToTrackedHandJoint(HandJointKind handJointKind) - { - switch (handJointKind) - { - case HandJointKind.Palm: return TrackedHandJoint.Palm; - - case HandJointKind.Wrist: return TrackedHandJoint.Wrist; - - case HandJointKind.ThumbMetacarpal: return TrackedHandJoint.ThumbMetacarpalJoint; - case HandJointKind.ThumbProximal: return TrackedHandJoint.ThumbProximalJoint; - case HandJointKind.ThumbDistal: return TrackedHandJoint.ThumbDistalJoint; - case HandJointKind.ThumbTip: return TrackedHandJoint.ThumbTip; - - case HandJointKind.IndexMetacarpal: return TrackedHandJoint.IndexMetacarpal; - case HandJointKind.IndexProximal: return TrackedHandJoint.IndexKnuckle; - case HandJointKind.IndexIntermediate: return TrackedHandJoint.IndexMiddleJoint; - case HandJointKind.IndexDistal: return TrackedHandJoint.IndexDistalJoint; - case HandJointKind.IndexTip: return TrackedHandJoint.IndexTip; - - case HandJointKind.MiddleMetacarpal: return TrackedHandJoint.MiddleMetacarpal; - case HandJointKind.MiddleProximal: return TrackedHandJoint.MiddleKnuckle; - case HandJointKind.MiddleIntermediate: return TrackedHandJoint.MiddleMiddleJoint; - case HandJointKind.MiddleDistal: return TrackedHandJoint.MiddleDistalJoint; - case HandJointKind.MiddleTip: return TrackedHandJoint.MiddleTip; - - case HandJointKind.RingMetacarpal: return TrackedHandJoint.RingMetacarpal; - case HandJointKind.RingProximal: return TrackedHandJoint.RingKnuckle; - case HandJointKind.RingIntermediate: return TrackedHandJoint.RingMiddleJoint; - case HandJointKind.RingDistal: return TrackedHandJoint.RingDistalJoint; - case HandJointKind.RingTip: return TrackedHandJoint.RingTip; - - case HandJointKind.LittleMetacarpal: return TrackedHandJoint.PinkyMetacarpal; - case HandJointKind.LittleProximal: return TrackedHandJoint.PinkyKnuckle; - case HandJointKind.LittleIntermediate: return TrackedHandJoint.PinkyMiddleJoint; - case HandJointKind.LittleDistal: return TrackedHandJoint.PinkyDistalJoint; - case HandJointKind.LittleTip: return TrackedHandJoint.PinkyTip; - - default: return TrackedHandJoint.None; - } - } - -#endif // WINDOWS_UWP || DOTNETWINRT_PRESENT -#endif // UNITY_WSA - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs.meta deleted file mode 100644 index c695776b1..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3bec0603cbe90af40a8fc6fb3f469892 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs deleted file mode 100644 index be6d309b4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs +++ /dev/null @@ -1,379 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Gltf.Serialization; -using System; - -#if UNITY_WSA -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR.WSA.Input; -#endif - -#if WINDOWS_UWP -using Microsoft.MixedReality.Toolkit.Windows.Input; -using Windows.Storage.Streams; -#endif - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input -{ - /// - /// A Windows Mixed Reality Controller Instance. - /// - [MixedRealityController( - SupportedControllerType.WindowsMixedReality, - new[] { Handedness.Left, Handedness.Right }, - "Textures/MotionController")] - public class WindowsMixedRealityController : BaseWindowsMixedRealitySource - { - /// - /// Constructor. - /// - public WindowsMixedRealityController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - /// The Windows Mixed Reality Controller default interactions. - /// - /// A single interaction mapping works for both left and right controllers. - public override MixedRealityInteractionMapping[] DefaultInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Spatial Grip", AxisType.SixDof, DeviceInputType.SpatialGrip), - new MixedRealityInteractionMapping(2, "Grip Press", AxisType.SingleAxis, DeviceInputType.TriggerPress), - new MixedRealityInteractionMapping(3, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger), - new MixedRealityInteractionMapping(4, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch), - new MixedRealityInteractionMapping(5, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select), - new MixedRealityInteractionMapping(6, "Touchpad Position", AxisType.DualAxis, DeviceInputType.Touchpad), - new MixedRealityInteractionMapping(7, "Touchpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch), - new MixedRealityInteractionMapping(8, "Touchpad Press", AxisType.Digital, DeviceInputType.TouchpadPress), - new MixedRealityInteractionMapping(9, "Menu Press", AxisType.Digital, DeviceInputType.Menu), - new MixedRealityInteractionMapping(10, "Thumbstick Position", AxisType.DualAxis, DeviceInputType.ThumbStick), - new MixedRealityInteractionMapping(11, "Thumbstick Press", AxisType.Digital, DeviceInputType.ThumbStickPress), - }; - -#if UNITY_WSA - private bool controllerModelInitialized = false; - private bool failedToObtainControllerModel = false; - - private static readonly Dictionary controllerDictionary = new Dictionary(0); - - #region Update data functions - - private static readonly ProfilerMarker UpdateControllerPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityController.UpdateController"); - - /// - /// Update the controller data from the provided platform state. - /// - /// The InteractionSourceState retrieved from the platform - public override void UpdateController(InteractionSourceState interactionSourceState) - { - if (!Enabled) { return; } - - using (UpdateControllerPerfMarker.Auto()) - { - base.UpdateController(interactionSourceState); - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.None: - break; - case DeviceInputType.ThumbStick: - case DeviceInputType.ThumbStickPress: - UpdateThumbstickData(interactionSourceState, Interactions[i]); - break; - case DeviceInputType.Touchpad: - case DeviceInputType.TouchpadTouch: - case DeviceInputType.TouchpadPress: - UpdateTouchpadData(interactionSourceState, Interactions[i]); - break; - case DeviceInputType.Menu: - UpdateMenuData(interactionSourceState, Interactions[i]); - break; - } - } - } - } - - private static readonly ProfilerMarker UpdateTouchpadDataPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityController.UpdateTouchpadData"); - - /// - /// Update the touchpad input from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateTouchpadData(InteractionSourceState interactionSourceState, MixedRealityInteractionMapping interactionMapping) - { - using (UpdateTouchpadDataPerfMarker.Auto()) - { - switch (interactionMapping.InputType) - { - case DeviceInputType.TouchpadTouch: - { - // Update the interaction data source - interactionMapping.BoolData = interactionSourceState.touchpadTouched; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionSourceState.touchpadTouched) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - break; - } - case DeviceInputType.TouchpadPress: - { - // Update the interaction data source - interactionMapping.BoolData = interactionSourceState.touchpadPressed; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionSourceState.touchpadPressed) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - break; - } - case DeviceInputType.Touchpad: - { - // Update the interaction data source - interactionMapping.Vector2Data = interactionSourceState.touchpadPosition; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionSourceState.touchpadPosition); - } - break; - } - } - } - } - - private static readonly ProfilerMarker UpdateThumbstickDataPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityController.UpdateThumbstickData"); - - /// - /// Update the thumbstick input from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateThumbstickData(InteractionSourceState interactionSourceState, MixedRealityInteractionMapping interactionMapping) - { - using (UpdateThumbstickDataPerfMarker.Auto()) - { - switch (interactionMapping.InputType) - { - case DeviceInputType.ThumbStickPress: - { - // Update the interaction data source - interactionMapping.BoolData = interactionSourceState.thumbstickPressed; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionSourceState.thumbstickPressed) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - break; - } - case DeviceInputType.ThumbStick: - { - // Update the interaction data source - interactionMapping.Vector2Data = interactionSourceState.thumbstickPosition; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionSourceState.thumbstickPosition); - } - break; - } - } - } - } - - private static readonly ProfilerMarker UpdateMenuDataPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityController.UpdateMenuData"); - - /// - /// Update the menu button state. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateMenuData(InteractionSourceState interactionSourceState, MixedRealityInteractionMapping interactionMapping) - { - using (UpdateMenuDataPerfMarker.Auto()) - { - // Update the interaction data source - interactionMapping.BoolData = interactionSourceState.menuPressed; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionSourceState.menuPressed) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - } - } - - #endregion Update data functions - - #region Controller model functions - - /// - /// Ensure that if a controller model was desired that we have attempted initialization. - /// - /// The InteractionSourceState retrieved from the platform. - internal void EnsureControllerModel(InteractionSource interactionSource) - { - GameObject controllerModel; - - if (controllerModelInitialized || - GetControllerVisualizationProfile() == null || - !GetControllerVisualizationProfile().GetUseDefaultModelsOverride(GetType(), ControllerHandedness)) - { - controllerModelInitialized = true; - return; - } - else if (controllerDictionary.TryGetValue(GenerateKey(interactionSource), out controllerModel)) - { - controllerModelInitialized = true; - TryAddControllerModelToSceneHierarchy(controllerModel); - controllerModel.SetActive(true); - return; - } - - controllerModelInitialized = true; - CreateControllerModelFromPlatformSDK(interactionSource); - } - - /// - protected override bool TryRenderControllerModel(Type controllerType, InputSourceType inputSourceType) - { - // Intercept this call if we are using the default driver provided models. - // Note: Obtaining models from the driver will require access to the InteractionSource. - // It's unclear whether the interaction source will be available during setup, so we attempt to create - // the controller model on an input update - if (failedToObtainControllerModel || - GetControllerVisualizationProfile() == null || - !GetControllerVisualizationProfile().GetUseDefaultModelsOverride(GetType(), ControllerHandedness)) - { - controllerModelInitialized = true; - return base.TryRenderControllerModel(controllerType, inputSourceType); - } - - return false; - } - - private async void CreateControllerModelFromPlatformSDK(InteractionSource interactionSource) - { - Debug.Log("Trying to load controller model from platform SDK"); - byte[] fileBytes = null; - -#if WINDOWS_UWP - var controllerModelStream = await interactionSource.TryGetRenderableModelAsync(); - if (controllerModelStream == null || - controllerModelStream.Size == 0) - { - Debug.LogError("Failed to obtain controller model from driver"); - } - else - { - fileBytes = new byte[controllerModelStream.Size]; - using (DataReader reader = new DataReader(controllerModelStream)) - { - await reader.LoadAsync((uint)controllerModelStream.Size); - reader.ReadBytes(fileBytes); - } - } -#endif - - GameObject gltfGameObject = null; - if (fileBytes != null) - { - var gltfObject = GltfUtility.GetGltfObjectFromGlb(fileBytes); - gltfGameObject = await gltfObject.ConstructAsync(); - if (gltfGameObject != null) - { - var visualizationProfile = GetControllerVisualizationProfile(); - if (visualizationProfile != null) - { - var visualizationType = visualizationProfile.GetControllerVisualizationTypeOverride(GetType(), ControllerHandedness); - if (visualizationType != null) - { - // Set the platform controller model to not be destroyed when the source is lost. It'll be disabled instead, - // and re-enabled when the same controller is re-detected. - if (gltfGameObject.AddComponent(visualizationType.Type) is IMixedRealityControllerPoseSynchronizer visualizer) - { - visualizer.DestroyOnSourceLost = false; - } - - TryAddControllerModelToSceneHierarchy(gltfGameObject); - controllerDictionary.Add(GenerateKey(interactionSource), gltfGameObject); - } - else - { - Debug.LogError("Controller visualization type not defined for controller visualization profile"); - UnityEngine.Object.Destroy(gltfGameObject); - gltfGameObject = null; - } - } - else - { - Debug.LogError("Failed to obtain a controller visualization profile"); - } - } - } - - - failedToObtainControllerModel = (gltfGameObject == null); - if (failedToObtainControllerModel) - { - Debug.LogWarning("Failed to create controller model from driver, defaulting to BaseController behavior"); - TryRenderControllerModel(GetType(), InputSourceType.Controller); - } - } - - private string GenerateKey(InteractionSource source) - { - return source.vendorId + "/" + source.productId + "/" + source.productVersion + "/" + source.handedness; - } - - #endregion Controller model functions - -#endif // UNITY_WSA - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs.meta deleted file mode 100644 index 5a5ea3e73..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fedccee8d4d642fe9e4d0114e5776941 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs deleted file mode 100644 index bb074f0ce..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input -{ - /// - /// A Windows Mixed Reality GGV (Gaze, Gesture, and Voice) hand instance. - /// - [MixedRealityController( - SupportedControllerType.GGVHand, - new[] { Handedness.Left, Handedness.Right, Handedness.None })] - public class WindowsMixedRealityGGVHand : BaseWindowsMixedRealitySource - { - public WindowsMixedRealityGGVHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) { } - - /// - /// The GGV hand default interactions. - /// - /// A single interaction mapping works for both left and right controllers. - public override MixedRealityInteractionMapping[] DefaultInteractions { get; } = new[] - { - new MixedRealityInteractionMapping(0, "Select", AxisType.Digital, DeviceInputType.Select), - new MixedRealityInteractionMapping(1, "Grip Pose", AxisType.SixDof, DeviceInputType.SpatialGrip), - }; - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs.meta deleted file mode 100644 index 0467bc17f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityGGVHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 129b7539efacd2c49be1a1226bdd13f3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions.meta deleted file mode 100644 index ab0108c02..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1c1f59824e07e454e8d7e210cd2ee929 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs deleted file mode 100644 index 2bac9dd82..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Runtime.InteropServices; - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// A representation of Windows Mixed Reality native data, provided as an IntPtr from Unity's UnityEngine.XR.XRDevice.GetNativePtr(). - /// - /// See for more info. - [StructLayout(LayoutKind.Sequential)] - public struct HolographicFrameNativeData - { - /// - /// The version number of this native data. - /// - public uint VersionNumber; - - /// - /// The number of cameras present in the IHolographicCameraPtr array. - /// - public uint MaxNumberOfCameras; - - /// - /// The current native root ISpatialCoordinateSystem. - /// - public IntPtr ISpatialCoordinateSystemPtr; - - /// - /// The current native IHolographicFrame. - /// - public IntPtr IHolographicFramePtr; - - /// - /// An array of IntPtr (to IHolographicCamera) marshaled as UnmanagedType.ByValArray with a length equal to MaxNumberOfCameras. - /// - public IntPtr IHolographicCameraPtr; - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs.meta deleted file mode 100644 index 063232154..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Definitions/HolographicFrameNativeData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a3bf4385488bcad4e966f930a19149e8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions.meta deleted file mode 100644 index 99a3d8d72..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7a975291e20fd214c9bd2e14a783d5fd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs deleted file mode 100644 index c184ae50a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Windows.Input -{ -#if UNITY_WSA - public static class GestureRecognizerExtensions - { - public static void UpdateAndResetGestures(this UnityEngine.XR.WSA.Input.GestureRecognizer recognizer, UnityEngine.XR.WSA.Input.GestureSettings gestureSettings) - { - bool reset = recognizer.IsCapturingGestures(); - - if (reset) - { - recognizer.CancelGestures(); - } - - recognizer.SetRecognizableGestures(gestureSettings); - - if (reset) - { - recognizer.StartCapturingGestures(); - } - } - } -#endif -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs.meta deleted file mode 100644 index 725caacde..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/GestureRecognizerExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 055004330c384ad9b4c9959bd7b6fc00 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs deleted file mode 100644 index 0de096e6d..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -#if WINDOWS_UWP -using Microsoft.MixedReality.Toolkit.Windows.Utilities; -using System; -using System.Collections.Generic; -using UnityEngine.XR.WSA.Input; -using Windows.Foundation; -using Windows.Perception; -using Windows.Storage.Streams; -using Windows.UI.Input.Spatial; -#endif - -namespace Microsoft.MixedReality.Toolkit.Windows.Input -{ - /// - /// Extensions for the InteractionSource class to expose the renderable model. - /// - public static class InteractionSourceExtensions - { -#if WINDOWS_UWP - public static IAsyncOperation TryGetRenderableModelAsync(this InteractionSource interactionSource) - { - IAsyncOperation returnValue = null; - - // GetForCurrentView and GetDetectedSourcesAtTimestamp were both introduced in the same Windows version. - // We need only check for one of them. - if (WindowsApiChecker.IsMethodAvailable( - "Windows.UI.Input.Spatial", - "SpatialInteractionManager", - "GetForCurrentView")) - { - IReadOnlyList sources = null; - - UnityEngine.WSA.Application.InvokeOnUIThread(() => - { - sources = SpatialInteractionManager.GetForCurrentView()?.GetDetectedSourcesAtTimestamp(PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); - }, true); - - for (var i = 0; i < sources?.Count; i++) - { - if (sources[i].Source.Id.Equals(interactionSource.id)) - { - returnValue = sources[i].Source.Controller.TryGetRenderableModelAsync(); - } - } - } - - return returnValue; - } -#endif // WINDOWS_UWP - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs.meta deleted file mode 100644 index 4c516d656..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/Extensions/InteractionSourceExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 04e57e5504124f20997539e2ef901504 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef deleted file mode 100644 index 5da62c95c..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Gltf", - "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.Shared" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor", - "WSA" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [ - "!UNITY_2020_1_OR_NEWER" - ] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef.meta deleted file mode 100644 index 6a205b14e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/MRTK.WMR.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 75eff2907371dbc429b3bb4089044dc1 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs deleted file mode 100644 index f642171cf..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Utilities; - -#if UNITY_WSA -using UnityEngine.XR.WSA; -#endif // UNITY_WSA - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// Camera settings provider for use with Windows Mixed Reality. - /// - public class WindowsMixedRealityCameraSettings : BaseWindowsMixedRealityCameraSettings - { - /// - /// Constructor. - /// - /// The instance of the camera system which is managing this provider. - /// Friendly name of the provider. - /// Provider priority. Used to determine order of instantiation. - /// The provider's configuration profile. - public WindowsMixedRealityCameraSettings( - IMixedRealityCameraSystem cameraSystem, - string name = null, - uint priority = DefaultPriority, - BaseCameraSettingsProfile profile = null) : base(cameraSystem, name, priority, profile) - { } - - #region IMixedRealityCameraSettings - - /// - public override bool IsOpaque => -#if UNITY_WSA - HolographicSettings.IsDisplayOpaque; -#else - false; -#endif - - #endregion IMixedRealityCameraSettings - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs.meta deleted file mode 100644 index 1306963f4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityCameraSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: eb074595e52a5db40896a9e7df6e3a0a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs deleted file mode 100644 index 2673fca73..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs +++ /dev/null @@ -1,977 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Windows.Input; -using Microsoft.MixedReality.Toolkit.Windows.Utilities; -using System; -using UnityEngine; - -#if UNITY_WSA -using System.Collections.Generic; -using System.Linq; -using Unity.Profiling; -using UnityEngine.XR.WSA.Input; -using WsaGestureSettings = UnityEngine.XR.WSA.Input.GestureSettings; -#endif // UNITY_WSA - -#if WINDOWS_UWP -using Windows.Perception; -using Windows.Perception.People; -using Windows.UI.Input.Spatial; -#elif UNITY_WSA && DOTNETWINRT_PRESENT -using Microsoft.Windows.Perception; -using Microsoft.Windows.Perception.People; -using Microsoft.Windows.UI.Input.Spatial; -#endif - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input -{ - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsUniversal, - "Windows Mixed Reality Device Manager")] - public class WindowsMixedRealityDeviceManager : BaseInputDeviceManager, IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public WindowsMixedRealityDeviceManager( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public WindowsMixedRealityDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - #region IMixedRealityCapabilityCheck Implementation - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - if (WindowsApiChecker.IsMethodAvailable( - "Windows.UI.Input.Spatial", - "SpatialInteractionManager", - "IsSourceKindSupported")) - { -#if WINDOWS_UWP - switch (capability) - { - case MixedRealityCapability.ArticulatedHand: - case MixedRealityCapability.GGVHand: - return SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Hand); - - case MixedRealityCapability.MotionController: - return SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Controller); - } -#endif // WINDOWS_UWP - } - else - { - if (!UnityEngine.XR.WSA.HolographicSettings.IsDisplayOpaque) - { - // HoloLens supports GGV hands - return (capability == MixedRealityCapability.GGVHand); - } - else - { - // Windows Mixed Reality immersive devices support motion controllers - return (capability == MixedRealityCapability.MotionController); - } - } - - return false; - } - - #endregion IMixedRealityCapabilityCheck Implementation - -#if UNITY_WSA - /// - /// The initial size of interactionmanagerStates. - /// - /// - /// This value is arbitrary but chosen to be a number larger than the typical expected number (to avoid - /// having to do further allocations). - /// - public const int MaxInteractionSourceStates = 20; - - /// - /// This number controls how much the interactionmanagerStates array should grow by each time it must - /// be resized (larger) in order to accommodate more InteractionSourceState values. - /// - /// - /// This must be a value greater than 1. - /// - private const int InteractionManagerStatesGrowthFactor = 2; - - /// - /// Dictionary to capture all active controllers detected - /// - private readonly Dictionary activeControllers = new Dictionary(); - - /// - /// Cache of the states captured from the Unity InteractionManager for UWP - /// - InteractionSourceState[] interactionManagerStates = new InteractionSourceState[MaxInteractionSourceStates]; - - /// - /// The number of states captured most recently - /// - private int numInteractionManagerStates; - - /// - /// The current source state reading for the Unity InteractionManager for UWP - /// - public InteractionSourceState[] LastInteractionManagerStateReading { get; protected set; } - - /// - public override IMixedRealityController[] GetActiveControllers() - { - return activeControllers.Values.ToArray(); - } - - #region Gesture Settings - - private static bool gestureRecognizerEnabled; - - /// - /// Enables or disables the gesture recognizer. - /// - /// - /// Automatically disabled navigation recognizer if enabled. - /// - public static bool GestureRecognizerEnabled - { - get - { - return gestureRecognizerEnabled; - } - set - { - if (gestureRecognizer == null) - { - gestureRecognizerEnabled = false; - return; - } - gestureRecognizerEnabled = value; - if (!Application.isPlaying) { return; } - - if (!gestureRecognizer.IsCapturingGestures() && gestureRecognizerEnabled) - { - NavigationRecognizerEnabled = false; - gestureRecognizer.StartCapturingGestures(); - } - - if (gestureRecognizer.IsCapturingGestures() && !gestureRecognizerEnabled) - { - gestureRecognizer.CancelGestures(); - } - } - } - - private static bool navigationRecognizerEnabled; - - /// - /// Enables or disables the navigation recognizer. - /// - /// - /// Automatically disables the gesture recognizer if enabled. - /// - public static bool NavigationRecognizerEnabled - { - get - { - return navigationRecognizerEnabled; - } - set - { - if (navigationGestureRecognizer == null) - { - navigationRecognizerEnabled = false; - return; - } - - navigationRecognizerEnabled = value; - - if (!Application.isPlaying) { return; } - - if (!navigationGestureRecognizer.IsCapturingGestures() && navigationRecognizerEnabled) - { - GestureRecognizerEnabled = false; - navigationGestureRecognizer.StartCapturingGestures(); - } - - if (navigationGestureRecognizer.IsCapturingGestures() && !navigationRecognizerEnabled) - { - navigationGestureRecognizer.CancelGestures(); - } - } - } - - private static WindowsGestureSettings gestureSettings = WindowsGestureSettings.Hold | WindowsGestureSettings.ManipulationTranslate; - - /// - /// Current Gesture Settings for the GestureRecognizer - /// - public static WindowsGestureSettings GestureSettings - { - get { return gestureSettings; } - set - { - gestureSettings = value; - - if (Application.isPlaying) - { - gestureRecognizer?.UpdateAndResetGestures(WSAGestureSettings); - } - } - } - - private static WindowsGestureSettings navigationSettings = WindowsGestureSettings.NavigationX | WindowsGestureSettings.NavigationY | WindowsGestureSettings.NavigationZ; - - /// - /// Current Navigation Gesture Recognizer Settings. - /// - public static WindowsGestureSettings NavigationSettings - { - get { return navigationSettings; } - set - { - navigationSettings = value; - - if (Application.isPlaying && !useRailsNavigation) - { - navigationGestureRecognizer?.UpdateAndResetGestures(WSANavigationSettings); - } - } - } - - private static WindowsGestureSettings railsNavigationSettings = WindowsGestureSettings.NavigationRailsX | WindowsGestureSettings.NavigationRailsY | WindowsGestureSettings.NavigationRailsZ; - - /// - /// Current Navigation Gesture Recognizer Rails Settings. - /// - public static WindowsGestureSettings RailsNavigationSettings - { - get { return railsNavigationSettings; } - set - { - railsNavigationSettings = value; - - if (Application.isPlaying && useRailsNavigation) - { - navigationGestureRecognizer?.UpdateAndResetGestures(WSARailsNavigationSettings); - } - } - } - - private static bool useRailsNavigation = true; - - /// - /// Should the Navigation Gesture Recognizer use Rails? - /// - public static bool UseRailsNavigation - { - get { return useRailsNavigation; } - set - { - useRailsNavigation = value; - - if (Application.isPlaying) - { - navigationGestureRecognizer?.UpdateAndResetGestures(useRailsNavigation ? WSARailsNavigationSettings : WSANavigationSettings); - } - } - } - - private MixedRealityInputAction holdAction = MixedRealityInputAction.None; - private MixedRealityInputAction navigationAction = MixedRealityInputAction.None; - private MixedRealityInputAction manipulationAction = MixedRealityInputAction.None; - private MixedRealityInputAction selectAction = MixedRealityInputAction.None; - - private static GestureRecognizer gestureRecognizer; - private static WsaGestureSettings WSAGestureSettings => (WsaGestureSettings)gestureSettings; - - private static GestureRecognizer navigationGestureRecognizer; - private static WsaGestureSettings WSANavigationSettings => (WsaGestureSettings)navigationSettings; - private static WsaGestureSettings WSARailsNavigationSettings => (WsaGestureSettings)railsNavigationSettings; - - #endregion Gesture Settings - - #region IMixedRealityDeviceManager Interface - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - private IMixedRealityGazeProviderHeadOverride mixedRealityGazeProviderHeadOverride = null; -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - - /// - public override void Enable() - { - if (!Application.isPlaying) { return; } - - if (InputSystemProfile == null) { return; } - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - if (WindowsMixedRealityUtilities.UtilitiesProvider == null) - { - WindowsMixedRealityUtilities.UtilitiesProvider = new WindowsMixedRealityUtilitiesProvider(); - } - - mixedRealityGazeProviderHeadOverride = Service?.GazeProvider as IMixedRealityGazeProviderHeadOverride; -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - - if (InputSystemProfile.GesturesProfile != null) - { - var gestureProfile = InputSystemProfile.GesturesProfile; - GestureSettings = gestureProfile.ManipulationGestures; - NavigationSettings = gestureProfile.NavigationGestures; - RailsNavigationSettings = gestureProfile.RailsNavigationGestures; - UseRailsNavigation = gestureProfile.UseRailsNavigation; - - for (int i = 0; i < gestureProfile.Gestures.Length; i++) - { - var gesture = gestureProfile.Gestures[i]; - - switch (gesture.GestureType) - { - case GestureInputType.Hold: - holdAction = gesture.Action; - break; - case GestureInputType.Manipulation: - manipulationAction = gesture.Action; - break; - case GestureInputType.Navigation: - navigationAction = gesture.Action; - break; - case GestureInputType.Select: - selectAction = gesture.Action; - break; - } - } - } - - RegisterGestureEvents(); - RegisterNavigationEvents(); - - InteractionManager.InteractionSourceDetected += InteractionManager_InteractionSourceDetected; - InteractionManager.InteractionSourceLost += InteractionManager_InteractionSourceLost; - InteractionManager.InteractionSourcePressed += InteractionManager_InteractionSourcePressed; - InteractionManager.InteractionSourceReleased += InteractionManager_InteractionSourceReleased; - - UpdateInteractionManagerReading(); - - // NOTE: We update the source state data, in case an app wants to query it on source detected. - for (var i = 0; i < numInteractionManagerStates; i++) - { - GetOrAddController(interactionManagerStates[i]); - } - - if (InputSystemProfile.GesturesProfile != null && - InputSystemProfile.GesturesProfile.WindowsGestureAutoStart == AutoStartBehavior.AutoStart) - { - GestureRecognizerEnabled = true; - } - } - - private static readonly ProfilerMarker GetOrAddControllerPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityDeviceManager.GetOrAddController"); - - private void GetOrAddController(InteractionSourceState interactionSourceState) - { - using (GetOrAddControllerPerfMarker.Auto()) - { - // If this is a new detected controller, raise source detected event with input system - // check needs to be here because GetOrAddController adds it to the activeControllers Dictionary - // this could be cleaned up because that's not clear - bool raiseSourceDetected = !activeControllers.ContainsKey(interactionSourceState.source.id); - - var controller = GetOrAddController(interactionSourceState.source); - - if (controller != null) - { - var mrtkController = controller as WindowsMixedRealityController; - - if (mrtkController != null) - { - mrtkController.EnsureControllerModel(interactionSourceState.source); - } - - // Does the controller still exist after we loaded the controller model? - if (GetOrAddController(interactionSourceState.source, false) != null) - { - if (raiseSourceDetected) - { - Service?.RaiseSourceDetected(controller.InputSource, controller); - } - - controller.UpdateController(interactionSourceState); - } - } - } - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityDeviceManager.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - base.Update(); - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - if (mixedRealityGazeProviderHeadOverride != null && mixedRealityGazeProviderHeadOverride.UseHeadGazeOverride && WindowsMixedRealityUtilities.SpatialCoordinateSystem != null) - { - SpatialPointerPose pointerPose = SpatialPointerPose.TryGetAtTimestamp(WindowsMixedRealityUtilities.SpatialCoordinateSystem, PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); - if (pointerPose != null) - { - HeadPose head = pointerPose.Head; - if (head != null) - { - mixedRealityGazeProviderHeadOverride.OverrideHeadGaze(head.Position.ToUnityVector3(), head.ForwardDirection.ToUnityVector3()); - } - } - } -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - - UpdateInteractionManagerReading(); - - for (var i = 0; i < numInteractionManagerStates; i++) - { - // SourceDetected gets raised when a new controller is detected and, if previously present, - // when OnEnable is called. Do not create a new controller here. - var controller = GetOrAddController(interactionManagerStates[i].source, false); - - if (controller != null) - { - controller.UpdateController(interactionManagerStates[i]); - } - } - - LastInteractionManagerStateReading = interactionManagerStates; - } - } - - private void RegisterGestureEvents() - { - if (holdAction != MixedRealityInputAction.None || - manipulationAction != MixedRealityInputAction.None || - selectAction != MixedRealityInputAction.None) - { - if (gestureRecognizer == null) - { - try - { - gestureRecognizer = new GestureRecognizer(); - } - catch (Exception ex) - { - Debug.LogWarning($"Failed to create gesture recognizer. OS version might not support it. Exception: {ex}"); - gestureRecognizer = null; - return; - } - gestureRecognizer.SetRecognizableGestures(WSAGestureSettings); - } - - if (holdAction != MixedRealityInputAction.None) - { - gestureRecognizer.HoldStarted += GestureRecognizer_HoldStarted; - gestureRecognizer.HoldCompleted += GestureRecognizer_HoldCompleted; - gestureRecognizer.HoldCanceled += GestureRecognizer_HoldCanceled; - } - - if (manipulationAction != MixedRealityInputAction.None) - { - gestureRecognizer.ManipulationStarted += GestureRecognizer_ManipulationStarted; - gestureRecognizer.ManipulationUpdated += GestureRecognizer_ManipulationUpdated; - gestureRecognizer.ManipulationCompleted += GestureRecognizer_ManipulationCompleted; - gestureRecognizer.ManipulationCanceled += GestureRecognizer_ManipulationCanceled; - } - - if (selectAction != MixedRealityInputAction.None) - { - gestureRecognizer.Tapped += GestureRecognizer_Tapped; - } - } - } - - private void UnregisterGestureEvents() - { - if (gestureRecognizer == null) { return; } - - if (holdAction != MixedRealityInputAction.None) - { - gestureRecognizer.HoldStarted -= GestureRecognizer_HoldStarted; - gestureRecognizer.HoldCompleted -= GestureRecognizer_HoldCompleted; - gestureRecognizer.HoldCanceled -= GestureRecognizer_HoldCanceled; - } - - if (manipulationAction != MixedRealityInputAction.None) - { - gestureRecognizer.ManipulationStarted -= GestureRecognizer_ManipulationStarted; - gestureRecognizer.ManipulationUpdated -= GestureRecognizer_ManipulationUpdated; - gestureRecognizer.ManipulationCompleted -= GestureRecognizer_ManipulationCompleted; - gestureRecognizer.ManipulationCanceled -= GestureRecognizer_ManipulationCanceled; - } - - if (selectAction != MixedRealityInputAction.None) - { - gestureRecognizer.Tapped -= GestureRecognizer_Tapped; - } - } - - private void RegisterNavigationEvents() - { - if (navigationAction != MixedRealityInputAction.None) - { - if (navigationGestureRecognizer == null) - { - try - { - navigationGestureRecognizer = new GestureRecognizer(); - } - catch (Exception ex) - { - Debug.LogWarning($"Failed to create gesture recognizer. OS version might not support it. Exception: {ex}"); - navigationGestureRecognizer = null; - return; - } - navigationGestureRecognizer.SetRecognizableGestures(useRailsNavigation ? WSARailsNavigationSettings : WSANavigationSettings); - } - - navigationGestureRecognizer.NavigationStarted += NavigationGestureRecognizer_NavigationStarted; - navigationGestureRecognizer.NavigationUpdated += NavigationGestureRecognizer_NavigationUpdated; - navigationGestureRecognizer.NavigationCompleted += NavigationGestureRecognizer_NavigationCompleted; - navigationGestureRecognizer.NavigationCanceled += NavigationGestureRecognizer_NavigationCanceled; - } - } - - private void UnregisterNavigationEvents() - { - if (navigationGestureRecognizer == null) { return; } - navigationGestureRecognizer.NavigationStarted -= NavigationGestureRecognizer_NavigationStarted; - navigationGestureRecognizer.NavigationUpdated -= NavigationGestureRecognizer_NavigationUpdated; - navigationGestureRecognizer.NavigationCompleted -= NavigationGestureRecognizer_NavigationCompleted; - navigationGestureRecognizer.NavigationCanceled -= NavigationGestureRecognizer_NavigationCanceled; - } - - /// - public override void Disable() - { - UnregisterGestureEvents(); - gestureRecognizer?.Dispose(); - gestureRecognizer = null; - - UnregisterNavigationEvents(); - navigationGestureRecognizer?.Dispose(); - navigationGestureRecognizer = null; - - InteractionManager.InteractionSourceDetected -= InteractionManager_InteractionSourceDetected; - InteractionManager.InteractionSourceLost -= InteractionManager_InteractionSourceLost; - InteractionManager.InteractionSourcePressed -= InteractionManager_InteractionSourcePressed; - InteractionManager.InteractionSourceReleased -= InteractionManager_InteractionSourceReleased; - - InteractionSourceState[] states = InteractionManager.GetCurrentReading(); - for (var i = 0; i < states.Length; i++) - { - RemoveController(states[i].source); - } - } - - #endregion IMixedRealityDeviceManager Interface - - #region Controller Utilities - - /// - /// Retrieve the source controller from the Active Store, or create a new device and register it - /// - /// Source State provided by the SDK - /// Should the Source be added as a controller if it isn't found? - /// New or Existing Controller Input Source - private BaseWindowsMixedRealitySource GetOrAddController(InteractionSource interactionSource, bool addController = true) - { - // If a device is already registered with the ID provided, just return it. - if (activeControllers.ContainsKey(interactionSource.id)) - { - var controller = activeControllers[interactionSource.id] as BaseWindowsMixedRealitySource; - Debug.Assert(controller != null); - return controller; - } - - if (!addController) { return null; } - - Handedness controllingHand; - switch (interactionSource.handedness) - { - default: - controllingHand = Handedness.None; - break; - case InteractionSourceHandedness.Left: - controllingHand = Handedness.Left; - break; - case InteractionSourceHandedness.Right: - controllingHand = Handedness.Right; - break; - } - - IMixedRealityPointer[] pointers = null; - InputSourceType inputSourceType = InputSourceType.Other; - switch (interactionSource.kind) - { - case InteractionSourceKind.Controller: - if (interactionSource.supportsPointing) - { - pointers = RequestPointers(SupportedControllerType.WindowsMixedReality, controllingHand); - } - else - { - pointers = RequestPointers(SupportedControllerType.GGVHand, controllingHand); - } - inputSourceType = InputSourceType.Controller; - break; - case InteractionSourceKind.Hand: - if (interactionSource.supportsPointing) - { - pointers = RequestPointers(SupportedControllerType.ArticulatedHand, controllingHand); - } - else - { - pointers = RequestPointers(SupportedControllerType.GGVHand, controllingHand); - } - inputSourceType = InputSourceType.Hand; - break; - case InteractionSourceKind.Voice: - // set to null: when pointers are null we use head gaze, which is what we want for voice - break; - default: - Debug.LogError($"Unknown new type in WindowsMixedRealityDeviceManager {interactionSource.kind}, make sure to add a SupportedControllerType"); - break; - - } - - string nameModifier = controllingHand == Handedness.None ? interactionSource.kind.ToString() : controllingHand.ToString(); - var inputSource = Service?.RequestNewGenericInputSource($"Mixed Reality Controller {nameModifier}", pointers, inputSourceType); - - BaseWindowsMixedRealitySource detectedController; - if (interactionSource.supportsPointing) - { - if (interactionSource.kind == InteractionSourceKind.Hand) - { - detectedController = new WindowsMixedRealityArticulatedHand(TrackingState.NotTracked, controllingHand, inputSource); - if (!detectedController.Enabled) - { - // Controller failed to be setup correctly. - // Return null so we don't raise the source detected. - return null; - } - } - else if (interactionSource.kind == InteractionSourceKind.Controller) - { - detectedController = new WindowsMixedRealityController(TrackingState.NotTracked, controllingHand, inputSource); - if (!detectedController.Enabled) - { - // Controller failed to be setup correctly. - // Return null so we don't raise the source detected. - return null; - } - } - else - { - Debug.Log($"Unhandled source type {interactionSource.kind} detected."); - return null; - } - } - else - { - detectedController = new WindowsMixedRealityGGVHand(TrackingState.NotTracked, controllingHand, inputSource); - if (!detectedController.Enabled) - { - // Controller failed to be setup correctly. - // Return null so we don't raise the source detected. - return null; - } - } - - for (int i = 0; i < detectedController.InputSource?.Pointers?.Length; i++) - { - detectedController.InputSource.Pointers[i].Controller = detectedController; - } - - activeControllers.Add(interactionSource.id, detectedController); - return detectedController; - } - - /// - /// Remove the selected controller from the Active Store - /// - /// Source State provided by the SDK to remove - private void RemoveController(InteractionSource interactionSource) - { - var controller = GetOrAddController(interactionSource, false); - - if (controller != null) - { - Service?.RaiseSourceLost(controller.InputSource, controller); - - RecyclePointers(controller.InputSource); - - var visualizer = controller.Visualizer; - - if (visualizer != null && !visualizer.Equals(null) && - visualizer.GameObjectProxy != null) - { - visualizer.GameObjectProxy.SetActive(false); - } - } - - activeControllers.Remove(interactionSource.id); - } - - [Obsolete("This function exists to workaround a bug in Unity and will be removed in an upcoming release. For more details, see https://github.com/microsoft/MixedRealityToolkit-Unity/pull/8101")] - public void RemoveControllerForSuspendWorkaround(InteractionSource interactionSource) - { - RemoveController(interactionSource); - } - - #endregion Controller Utilities - - #region Unity InteractionManager Events - - /// - /// SDK Interaction Source Detected Event handler - /// - /// SDK source detected event arguments - private void InteractionManager_InteractionSourceDetected(InteractionSourceDetectedEventArgs args) => GetOrAddController(args.state); - - /// - /// SDK Interaction Source Pressed Event handler. Used only for voice. - /// - /// SDK source pressed event arguments - private void InteractionManager_InteractionSourcePressed(InteractionSourcePressedEventArgs args) - { - if (args.state.source.kind == InteractionSourceKind.Voice) - { - var controller = GetOrAddController(args.state.source); - if (controller != null) - { - controller.UpdateController(args.state); - // On WMR, the voice recognizer does not actually register the phrase 'select' - // when you add it to the speech commands profile. Therefore, simulate - // the "select" voice command running to ensure that we get a select voice command - // registered. This is used by FocusProvider to detect when the select pointer is active - Service?.RaiseSpeechCommandRecognized(controller.InputSource, RecognitionConfidenceLevel.High, TimeSpan.MinValue, DateTime.Now, new SpeechCommands("select", KeyCode.Alpha1, MixedRealityInputAction.None)); - } - } - } - - /// - /// SDK Interaction Source Released Event handler. Used only for voice. - /// - /// SDK source released event arguments - private void InteractionManager_InteractionSourceReleased(InteractionSourceReleasedEventArgs args) - { - if (args.state.source.kind == InteractionSourceKind.Voice) - { - GetOrAddController(args.state.source)?.UpdateController(args.state); - } - } - - /// - /// SDK Interaction Source Lost Event handler - /// - /// SDK source updated event arguments - private void InteractionManager_InteractionSourceLost(InteractionSourceLostEventArgs args) - { - RemoveController(args.state.source); - } - - #endregion Unity InteractionManager Events - - #region Gesture Recognizer Events - - private void GestureRecognizer_HoldStarted(HoldStartedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureStarted(controller, holdAction); - } - } - - private void GestureRecognizer_HoldCompleted(HoldCompletedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureCompleted(controller, holdAction); - } - } - - private void GestureRecognizer_HoldCanceled(HoldCanceledEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureCanceled(controller, holdAction); - } - } - - private void GestureRecognizer_ManipulationStarted(ManipulationStartedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureStarted(controller, manipulationAction); - } - } - - private void GestureRecognizer_ManipulationUpdated(ManipulationUpdatedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureUpdated(controller, manipulationAction, args.cumulativeDelta); - } - } - - private void GestureRecognizer_ManipulationCompleted(ManipulationCompletedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureCompleted(controller, manipulationAction, args.cumulativeDelta); - } - } - - private void GestureRecognizer_ManipulationCanceled(ManipulationCanceledEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureCanceled(controller, manipulationAction); - } - } - - private void GestureRecognizer_Tapped(TappedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureCompleted(controller, selectAction); - } - } - - #endregion Gesture Recognizer Events - - #region Navigation Recognizer Events - - private void NavigationGestureRecognizer_NavigationStarted(NavigationStartedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureStarted(controller, navigationAction); - } - } - - private void NavigationGestureRecognizer_NavigationUpdated(NavigationUpdatedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureUpdated(controller, navigationAction, args.normalizedOffset); - } - } - - private void NavigationGestureRecognizer_NavigationCompleted(NavigationCompletedEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureCompleted(controller, navigationAction, args.normalizedOffset); - } - } - - private void NavigationGestureRecognizer_NavigationCanceled(NavigationCanceledEventArgs args) - { - var controller = GetOrAddController(args.source, false); - if (controller != null) - { - Service?.RaiseGestureCanceled(controller, navigationAction); - } - } - - #endregion Navigation Recognizer Events - - #region Private Methods - - private static readonly ProfilerMarker UpdateInteractionManagerReadingPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityDeviceManager.UpdateInteractionManagerReading"); - - /// - /// Gets the latest interaction manager states and counts from InteractionManager - /// - /// - /// Abstracts away some of the array resize handling and another underlying Unity issue - /// when InteractionManager.GetCurrentReading is called when there are no detected sources. - /// - private void UpdateInteractionManagerReading() - { - using (UpdateInteractionManagerReadingPerfMarker.Auto()) - { - int newSourceStateCount = InteractionManager.numSourceStates; - // If there isn't enough space in the cache to hold the results, we should grow it so that it can, but also - // grow it in a way that is unlikely to require re-allocations each time. - if (newSourceStateCount > interactionManagerStates.Length) - { - interactionManagerStates = new InteractionSourceState[newSourceStateCount * InteractionManagerStatesGrowthFactor]; - } - - // Note that InteractionManager.GetCurrentReading throws when invoked when the number of - // source states is zero. In that case, we want to just update the number of read states to be zero. - if (newSourceStateCount == 0) - { - // clean up existing controllers that didn't trigger the InteractionSourceLost event. - // this can happen eg. when unity is registering cached controllers from a previous play session in the editor. - // those actually don't exist in the current session and therefor won't receive the InteractionSourceLost once - // Unity's InteractionManager catches up - for (int i = 0; i < numInteractionManagerStates; ++i) - { - RemoveController(interactionManagerStates[i].source); - } - - numInteractionManagerStates = newSourceStateCount; - } - else - { - numInteractionManagerStates = InteractionManager.GetCurrentReading(interactionManagerStates); - } - } - } - - #endregion Private Methods - -#endif // UNITY_WSA - - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs.meta deleted file mode 100644 index 368fa4caa..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6368d58fd6a74e94a39afd6a678617de -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs deleted file mode 100644 index fcd556d30..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs +++ /dev/null @@ -1,331 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Windows.Utilities; -using System; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; - -#if WINDOWS_UWP -using Windows.Perception; -using Windows.Perception.People; -using Windows.UI.Input.Spatial; -#elif UNITY_WSA && DOTNETWINRT_PRESENT -using Microsoft.Windows.Perception; -using Microsoft.Windows.Perception.People; -using Microsoft.Windows.UI.Input.Spatial; -#endif - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input -{ - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsUniversal, - "Windows Mixed Reality Eye Gaze Provider", - "Profiles/DefaultMixedRealityEyeTrackingProfile.asset", "MixedRealityToolkit.SDK", - true)] - public class WindowsMixedRealityEyeGazeDataProvider : BaseInputDeviceManager, IMixedRealityEyeGazeDataProvider, IMixedRealityEyeSaccadeProvider, IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the data provider. - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public WindowsMixedRealityEyeGazeDataProvider( - IMixedRealityServiceRegistrar registrar, - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : this(inputSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public WindowsMixedRealityEyeGazeDataProvider( - IMixedRealityInputSystem inputSystem, - string name, - uint priority, - BaseMixedRealityProfile profile) : base(inputSystem, name, priority, profile) - { - eyesApiAvailable = WindowsApiChecker.IsPropertyAvailable( - "Windows.UI.Input.Spatial", - "SpatialPointerPose", - "Eyes"); - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - if (eyesApiAvailable) - { - eyesApiAvailable &= EyesPose.IsSupported(); - } -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - } - - /// - public bool SmoothEyeTracking { get; set; } = false; - - /// - public IMixedRealityEyeSaccadeProvider SaccadeProvider => this; - - /// - public event Action OnSaccade; - - /// - public event Action OnSaccadeX; - - /// - public event Action OnSaccadeY; - - private readonly bool eyesApiAvailable = false; - private readonly float smoothFactorNormalized = 0.96f; - private readonly float saccadeThreshInDegree = 2.5f; // In degrees (not radians) - - private Ray? oldGaze; - private int confidenceOfSaccade = 0; - private int confidenceOfSaccadeThreshold = 6; // TODO(https://github.com/Microsoft/MixedRealityToolkit-Unity/issues/3767): This value should be adjusted based on the FPS of the ET system - private Ray saccade_initialGazePoint; - private readonly List saccade_newGazeCluster = new List(); - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - private static bool askedForETAccessAlready = false; // To make sure that this is only triggered once. -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - - #region IMixedRealityCapabilityCheck Implementation - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - if (eyesApiAvailable) - { -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - return (capability == MixedRealityCapability.EyeTracking); -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - } - - return false; - } - - #endregion IMixedRealityCapabilityCheck Implementation - - /// - public override void Initialize() - { -#if UNITY_EDITOR && UNITY_WSA && UNITY_2019_3_OR_NEWER - Utilities.Editor.UWPCapabilityUtility.RequireCapability( - UnityEditor.PlayerSettings.WSACapability.GazeInput, - GetType()); -#endif // UNITY_EDITOR && UNITY_WSA && UNITY_2019_3_OR_NEWER - - if (Application.isPlaying && eyesApiAvailable) - { -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - AskForETPermission(); -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - ReadProfile(); - } - } - - private void ReadProfile() - { - if (ConfigurationProfile == null) - { - Debug.LogError("Windows Mixed Reality Eye Tracking Provider requires a configuration profile to run properly."); - return; - } - - MixedRealityEyeTrackingProfile profile = ConfigurationProfile as MixedRealityEyeTrackingProfile; - if (profile == null) - { - Debug.LogError("Windows Mixed Reality Eye Tracking Provider's configuration profile must be a MixedRealityEyeTrackingProfile."); - return; - } - - SmoothEyeTracking = profile.SmoothEyeTracking; - } - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityEyeGazeDataProvider.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - if (WindowsMixedRealityUtilities.SpatialCoordinateSystem == null || !eyesApiAvailable) - { - return; - } - - SpatialPointerPose pointerPose = SpatialPointerPose.TryGetAtTimestamp(WindowsMixedRealityUtilities.SpatialCoordinateSystem, PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); - if (pointerPose != null) - { - var eyes = pointerPose.Eyes; - if (eyes != null) - { - Service?.EyeGazeProvider?.UpdateEyeTrackingStatus(this, eyes.IsCalibrationValid); - - if (eyes.Gaze.HasValue) - { - Ray newGaze = new Ray(eyes.Gaze.Value.Origin.ToUnityVector3(), eyes.Gaze.Value.Direction.ToUnityVector3()); - - if (SmoothEyeTracking) - { - newGaze = SmoothGaze(newGaze); - } - - Service?.EyeGazeProvider?.UpdateEyeGaze(this, newGaze, eyes.UpdateTimestamp.TargetTime.UtcDateTime); - } - } - } - } - } - - /// - /// Triggers a prompt to let the user decide whether to permit using eye tracking - /// - private async void AskForETPermission() - { - if (!askedForETAccessAlready) // Making sure this is only triggered once - { - askedForETAccessAlready = true; - await EyesPose.RequestAccessAsync(); - } - } -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - - private static readonly ProfilerMarker SmoothGazePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityEyeGazeDataProvider.SmoothGaze"); - - private Ray SmoothGaze(Ray? newGaze) - { - using (SmoothGazePerfMarker.Auto()) - { - if (!oldGaze.HasValue) - { - oldGaze = newGaze; - return newGaze.Value; - } - - Ray smoothedGaze = new Ray(); - bool isSaccading = false; - - // Handle saccades vs. outliers: Instead of simply checking that two successive gaze points are sufficiently - // apart, we check for clusters of gaze points instead. - // 1. If the user's gaze points are far enough apart, this may be a saccade, but also could be an outlier. - // So, let's mark it as a potential saccade. - if ((IsSaccading(oldGaze.Value, newGaze.Value) && (confidenceOfSaccade == 0))) - { - confidenceOfSaccade++; - saccade_initialGazePoint = oldGaze.Value; - saccade_newGazeCluster.Clear(); - saccade_newGazeCluster.Add(newGaze.Value); - } - // 2. If we have a potential saccade marked, let's check if the new points are within the proximity of - // the initial saccade point. - else if ((confidenceOfSaccade > 0) && (confidenceOfSaccade < confidenceOfSaccadeThreshold)) - { - confidenceOfSaccade++; - - // First, let's check that we don't just have a bunch of random outliers - // The assumption is that after a person saccades, they fixate for a certain - // amount of time resulting in a cluster of gaze points. - for (int i = 0; i < saccade_newGazeCluster.Count; i++) - { - if (IsSaccading(saccade_newGazeCluster[i], newGaze.Value)) - { - confidenceOfSaccade = 0; - } - - // Meanwhile we want to make sure that we are still looking sufficiently far away from our - // original gaze point before saccading. - if (!IsSaccading(saccade_initialGazePoint, newGaze.Value)) - { - confidenceOfSaccade = 0; - } - } - saccade_newGazeCluster.Add(newGaze.Value); - } - else if (confidenceOfSaccade == confidenceOfSaccadeThreshold) - { - isSaccading = true; - } - - // Saccade-dependent local smoothing - if (isSaccading) - { - smoothedGaze.direction = newGaze.Value.direction; - smoothedGaze.origin = newGaze.Value.origin; - confidenceOfSaccade = 0; - } - else - { - smoothedGaze.direction = oldGaze.Value.direction * smoothFactorNormalized + newGaze.Value.direction * (1 - smoothFactorNormalized); - smoothedGaze.origin = oldGaze.Value.origin * smoothFactorNormalized + newGaze.Value.origin * (1 - smoothFactorNormalized); - } - - oldGaze = smoothedGaze; - return smoothedGaze; - } - } - - private static readonly ProfilerMarker IsSaccadingPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityEyeGazeDataProvider.IsSaccading"); - - private bool IsSaccading(Ray rayOld, Ray rayNew) - { - using (IsSaccadingPerfMarker.Auto()) - { - Vector3 v1 = rayOld.origin + rayOld.direction; - Vector3 v2 = rayNew.origin + rayNew.direction; - - if (Vector3.Angle(v1, v2) > saccadeThreshInDegree) - { - Vector2 hv1 = new Vector2(v1.x, 0); - Vector2 hv2 = new Vector2(v2.x, 0); - if (Vector2.Angle(hv1, hv2) > saccadeThreshInDegree) - { - Post_OnSaccadeHorizontally(); - } - - Vector2 vv1 = new Vector2(0, v1.y); - Vector2 vv2 = new Vector2(0, v2.y); - if (Vector2.Angle(vv1, vv2) > saccadeThreshInDegree) - { - Post_OnSaccadeVertically(); - } - - Post_OnSaccade(); - - return true; - } - return false; - } - } - - private void Post_OnSaccade() - { - OnSaccade?.Invoke(); - } - - private void Post_OnSaccadeHorizontally() - { - OnSaccadeX?.Invoke(); - } - - private void Post_OnSaccadeVertically() - { - OnSaccadeY?.Invoke(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs.meta deleted file mode 100644 index d0db008aa..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityEyeGazeDataProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ea9b1d03ee9863047975ad17086a075d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs deleted file mode 100644 index ee8cd97e8..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs +++ /dev/null @@ -1,718 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License.license information. - -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Windows.Utilities; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; - -#if UNITY_WSA -using UnityEngine.XR; -using UnityEngine.XR.WSA; -#endif // UNITY_WSA - -#if WINDOWS_UWP -using WindowsSpatialSurfaces = global::Windows.Perception.Spatial.Surfaces; -#endif // WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality.SpatialAwareness -{ - [MixedRealityDataProvider( - typeof(IMixedRealitySpatialAwarenessSystem), - SupportedPlatforms.WindowsUniversal, - "Windows Mixed Reality Spatial Mesh Observer", - "Profiles/DefaultMixedRealitySpatialAwarenessMeshObserverProfile.asset", - "MixedRealityToolkit.SDK", - true)] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SpatialAwareness/SpatialAwarenessGettingStarted.html")] - public class WindowsMixedRealitySpatialMeshObserver : - BaseSpatialMeshObserver, - IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// The service instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - [System.Obsolete("This constructor is obsolete (registrar parameter is no longer required) and will be removed in a future version of the Microsoft Mixed Reality Toolkit.")] - public WindowsMixedRealitySpatialMeshObserver( - IMixedRealityServiceRegistrar registrar, - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : this(spatialAwarenessSystem, name, priority, profile) - { - Registrar = registrar; - } - - /// - /// Constructor. - /// - /// The service instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public WindowsMixedRealitySpatialMeshObserver( - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(spatialAwarenessSystem, name, priority, profile) - { } - - #region BaseSpatialObserver Implementation - - /// - /// Creates the surface observer and handles the desired startup behavior. - /// - protected override void CreateObserver() - { - if (SpatialAwarenessSystem == null) { return; } - -#if UNITY_WSA - if (observer == null) - { - observer = new SurfaceObserver(); - ConfigureObserverVolume(); - - if (StartupBehavior == AutoStartBehavior.AutoStart) - { - Resume(); - } - } -#endif // UNITY_WSA - } - - /// - /// Implements proper cleanup of the SurfaceObserver. - /// - protected override void CleanupObserver() - { - if (IsRunning) - { - Suspend(); - } - -#if UNITY_WSA - if (observer != null) - { - observer.Dispose(); - observer = null; - } -#endif // UNITY_WSA - } - - #endregion BaseSpatialObserver Implementation - - #region BaseSpatialMeshObserver Implementation - - /// - protected override int LookupTriangleDensity(SpatialAwarenessMeshLevelOfDetail levelOfDetail) - { - int triangleDensity; - switch (levelOfDetail) - { - case SpatialAwarenessMeshLevelOfDetail.Coarse: - triangleDensity = 0; - break; - - case SpatialAwarenessMeshLevelOfDetail.Medium: - triangleDensity = 400; - break; - - case SpatialAwarenessMeshLevelOfDetail.Fine: - triangleDensity = 2000; - break; - - default: - Debug.LogWarning($"There is no triangle density lookup for {levelOfDetail}, defaulting to Coarse"); - triangleDensity = 0; - break; - } - - return triangleDensity; - } - - #endregion BaseSpatialMeshObserver Implementation - - #region IMixedRealityCapabilityCheck Implementation - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - if (WindowsApiChecker.IsMethodAvailable( - "Windows.Perception.Spatial.Surfaces", - "SpatialSurfaceObserver", - "IsSupported")) - { -#if WINDOWS_UWP - return (capability == MixedRealityCapability.SpatialAwarenessMesh) && WindowsSpatialSurfaces.SpatialSurfaceObserver.IsSupported(); -#endif // WINDOWS_UWP - } - - return false; - } - - #endregion IMixedRealityCapabilityCheck Implementation - - #region IMixedRealityDataProvider Implementation - -#if UNITY_WSA - /// - /// Creates and configures the spatial observer, as well as - /// setting the required SpatialPerception capability. - /// - public override void Initialize() - { - base.Initialize(); - -#if UNITY_EDITOR && UNITY_WSA - Utilities.Editor.UWPCapabilityUtility.RequireCapability( - UnityEditor.PlayerSettings.WSACapability.SpatialPerception, - this.GetType()); -#endif - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - UpdateObserver(); - } - } -#endif // UNITY_WSA - - #endregion IMixedRealityDataProvider Implementation - - #region IMixedRealitySpatialAwarenessObserver Implementation - -#if UNITY_WSA - /// - /// The surface observer providing the spatial data. - /// - private SurfaceObserver observer = null; - - /// - /// A queue of that need their meshes created (or updated). - /// - private readonly Queue meshWorkQueue = new Queue(); - - /// - /// To prevent too many meshes from being generated at the same time, we will - /// only request one mesh to be created at a time. This variable will track - /// if a mesh creation request is in flight. - /// - private SpatialAwarenessMeshObject outstandingMeshObject = null; - - /// - /// When surfaces are replaced or removed, rather than destroying them, we'll keep - /// one as a spare for use in outstanding mesh requests. That way, we'll have fewer - /// game object create/destroy cycles, which should help performance. - /// - protected SpatialAwarenessMeshObject spareMeshObject = null; - - /// - /// The time at which the surface observer was last asked for updated data. - /// - private float lastUpdated = 0; -#endif // UNITY_WSA - -#if UNITY_WSA - private static readonly ProfilerMarker ResumePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver.Resume"); -#endif // UNITY_WSA - - /// - public override void Resume() - { -#if UNITY_WSA - if (IsRunning) - { - Debug.LogWarning("The Windows Mixed Reality spatial observer is currently running."); - return; - } - - using (ResumePerfMarker.Auto()) - { - // We want the first update immediately. - lastUpdated = 0; - - // UpdateObserver keys off of this value to start observing. - IsRunning = true; - } -#endif // UNITY_WSA - } - -#if UNITY_WSA - private static readonly ProfilerMarker SuspendPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver.Suspend"); -#endif // UNITY_WSA - - /// - public override void Suspend() - { -#if UNITY_WSA - if (!IsRunning) - { - Debug.LogWarning("The Windows Mixed Reality spatial observer is currently stopped."); - return; - } - - using (SuspendPerfMarker.Auto()) - { - // UpdateObserver keys off of this value to stop observing. - IsRunning = false; - - // Halt any outstanding work. - if (outstandingMeshObject != null) - { - ReclaimMeshObject(outstandingMeshObject); - outstandingMeshObject = null; - } - - // Clear any pending work. - meshWorkQueue.Clear(); - } -#endif // UNITY_WSA - } - -#if UNITY_WSA - private static readonly ProfilerMarker ClearObservationsPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver.ClearObservations"); -#endif // UNITY_WSA - -#if UNITY_WSA - /// - public override void ClearObservations() - { - using (ClearObservationsPerfMarker.Auto()) - { - bool wasRunning = false; - - if (IsRunning) - { - wasRunning = true; - Debug.Log("Cannot clear observations while the observer is running. Suspending this observer."); - Suspend(); - } - - IReadOnlyList observations = new List(Meshes.Keys); - foreach (int meshId in observations) - { - RemoveMeshObject(meshId); - } - - // Cleanup the outstanding mesh object. - if (outstandingMeshObject != null) - { - // Destroy the game object, destroy the meshes. - SpatialAwarenessMeshObject.Cleanup(outstandingMeshObject); - outstandingMeshObject = null; - } - - // Cleanup the spare mesh object - if (spareMeshObject != null) - { - // Destroy the game object, destroy the meshes. - SpatialAwarenessMeshObject.Cleanup(spareMeshObject); - spareMeshObject = null; - } - - if (wasRunning) - { - Resume(); - } - } - } -#endif // UNITY_WSA - - #endregion IMixedRealitySpatialAwarenessObserver Implementation - - #region Helpers - -#if UNITY_WSA - private static readonly ProfilerMarker UpdateObserverPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver.UpdateObserver"); - - /// - /// Requests updates from the surface observer. - /// - private void UpdateObserver() - { - if (SpatialAwarenessSystem == null || HolographicSettings.IsDisplayOpaque || !XRDevice.isPresent) { return; } - - using (UpdateObserverPerfMarker.Auto()) - { - // Only update the observer if it is running. - if (IsRunning && (outstandingMeshObject == null)) - { - // If we have a mesh to work on... - if (meshWorkQueue.Count > 0) - { - // We're using a simple first-in-first-out rule for requesting meshes, but a more sophisticated algorithm could prioritize - // the queue based on distance to the user or some other metric. - RequestMesh(meshWorkQueue.Dequeue()); - } - // If enough time has passed since the previous observer update... - else if (Time.time - lastUpdated >= UpdateInterval) - { - // Update the observer orientation if user aligned - if (ObserverVolumeType == VolumeType.UserAlignedCube) - { - ObserverRotation = CameraCache.Main.transform.rotation; - } - - // Update the observer location if it is not stationary - if (!IsStationaryObserver) - { - ObserverOrigin = CameraCache.Main.transform.position; - } - - // The application can update the observer volume at any time, make sure we are using the latest. - ConfigureObserverVolume(); - - observer.Update(SurfaceObserver_OnSurfaceChanged); - - lastUpdated = Time.time; - } - } - } - } - - /// - /// Internal component to monitor the WorldAnchor's transform, apply the MixedRealityPlayspace transform, - /// and apply it to its parent. - /// - private class PlayspaceAdapter : MonoBehaviour - { - /// - /// Compute concatenation of lhs * rhs such that lhs * (rhs * v) = Concat(lhs, rhs) * v - /// - /// Second transform to apply - /// First transform to apply - private static Pose Concatenate(Pose lhs, Pose rhs) - { - return rhs.GetTransformedBy(lhs); - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver+PlayspaceAdapter.Update"); - - /// - /// Compute and set the parent's transform. - /// - private void Update() - { - using (UpdatePerfMarker.Auto()) - { - Pose worldFromPlayspace = new Pose(MixedRealityPlayspace.Position, MixedRealityPlayspace.Rotation); - Pose anchorPose = new Pose(transform.position, transform.rotation); - /// Propagate any global scale on the playspace into the position. - Vector3 playspaceScale = MixedRealityPlayspace.Transform.lossyScale; - anchorPose.position *= playspaceScale.x; - Pose parentPose = Concatenate(worldFromPlayspace, anchorPose); - transform.parent.position = parentPose.position; - transform.parent.rotation = parentPose.rotation; - } - } - } - - private static readonly ProfilerMarker RequestMeshPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver+PlayspaceAdapter.RequestMesh"); - - /// - /// Issue a request to the Surface Observer to begin baking the mesh. - /// - /// ID of the mesh to bake. - private void RequestMesh(SurfaceId surfaceId) - { - using (RequestMeshPerfMarker.Auto()) - { - string meshName = ("SpatialMesh - " + surfaceId.handle); - - SpatialAwarenessMeshObject newMesh; - WorldAnchor worldAnchor; - - if (spareMeshObject == null) - { - newMesh = SpatialAwarenessMeshObject.Create( - null, - MeshPhysicsLayer, - meshName, - surfaceId.handle, - ObservedObjectParent); - - // The WorldAnchor component places its object where the anchor is in the same space as the camera. - // But since the camera is repositioned by the MixedRealityPlayspace's transform, the meshes' transforms - // should also the WorldAnchor position repositioned by the MixedRealityPlayspace's transform. - // So rather than put the WorldAnchor on the mesh's GameObject, the WorldAnchor is placed out of the way in the scene, - // and its transform is concatenated with the Playspace transform to compute the transform on the mesh's object. - // That adapting the WorldAnchor's transform into playspace is done by the internal PlayspaceAdapter component. - // The GameObject the WorldAnchor is placed on is unimportant, but it is convenient for cleanup to make it a child - // of the GameObject whose transform will track it. - GameObject anchorHolder = new GameObject(meshName + "_anchor"); - anchorHolder.AddComponent(); // replace with required component? - worldAnchor = anchorHolder.AddComponent(); // replace with required component and GetComponent()? - anchorHolder.transform.SetParent(newMesh.GameObject.transform, false); - } - else - { - newMesh = spareMeshObject; - spareMeshObject = null; - - newMesh.GameObject.name = meshName; - newMesh.Id = surfaceId.handle; - newMesh.GameObject.SetActive(true); - - // There should be exactly one child on the newMesh.GameObject, and that is the GameObject added above - // to hold the WorldAnchor component and adapter. - Debug.Assert(newMesh.GameObject.transform.childCount == 1, "Expecting a single child holding the WorldAnchor"); - worldAnchor = newMesh.GameObject.transform.GetChild(0).gameObject.GetComponent(); - } - - Debug.Assert(worldAnchor != null); - - SurfaceData surfaceData = new SurfaceData( - surfaceId, - newMesh.Filter, - worldAnchor, - newMesh.Collider, - TrianglesPerCubicMeter, - true); - - if (observer.RequestMeshAsync(surfaceData, SurfaceObserver_OnDataReady)) - { - outstandingMeshObject = newMesh; - } - else - { - Debug.LogError($"Mesh request failed for Id == surfaceId.handle"); - outstandingMeshObject = null; - ReclaimMeshObject(newMesh); - } - } - } - - private static readonly ProfilerMarker RemoveMeshObjectPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver+PlayspaceAdapter.RemoveMeshObject"); - - /// - /// Removes the associated with the specified id. - /// - /// The id of the mesh to be removed. - protected void RemoveMeshObject(int id) - { - using (RemoveMeshObjectPerfMarker.Auto()) - { - SpatialAwarenessMeshObject mesh; - if (meshes.TryGetValue(id, out mesh)) - { - // Remove the mesh object from the collection. - meshes.Remove(id); - - // Reclaim the mesh object for future use. - ReclaimMeshObject(mesh); - - // Send the mesh removed event - meshEventData.Initialize(this, id, null); - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshRemoved); - } - } - } - - private static readonly ProfilerMarker ReclaimMeshObjectPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver+PlayspaceAdapter.ReclaimMeshObject"); - - /// - /// Reclaims the to allow for later reuse. - /// - protected void ReclaimMeshObject(SpatialAwarenessMeshObject availableMeshObject) - { - using (ReclaimMeshObjectPerfMarker.Auto()) - { - if (spareMeshObject == null) - { - // Cleanup the mesh object. - // Do not destroy the game object, destroy the meshes. - SpatialAwarenessMeshObject.Cleanup(availableMeshObject, false); - - availableMeshObject.GameObject.name = "Unused Spatial Mesh"; - availableMeshObject.GameObject.SetActive(false); - - spareMeshObject = availableMeshObject; - } - else - { - // Cleanup the mesh object. - // Destroy the game object, destroy the meshes. - SpatialAwarenessMeshObject.Cleanup(availableMeshObject); - } - } - } - - private static readonly ProfilerMarker ConfigureObserverVolumePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver+PlayspaceAdapter.ConfigureObserverVolume"); - - /// - /// Applies the configured observation extents. - /// - private void ConfigureObserverVolume() - { - using (ConfigureObserverVolumePerfMarker.Auto()) - { - if (MixedRealityPlayspace.Transform == null) - { - Debug.LogError("Unexpected failure acquiring MixedRealityPlayspace."); - return; - } - - // If we aren't using a HoloLens or there isn't an XR device present, return. - if (observer == null || HolographicSettings.IsDisplayOpaque || !XRDevice.isPresent) { return; } - - // The observer's origin is in world space, we need it in the camera's parent's space - // to set the volume. The MixedRealityPlayspace provides that space that the camera/head moves around in. - Vector3 observerOriginPlayspace = MixedRealityPlayspace.InverseTransformPoint(ObserverOrigin); - Quaternion observerRotationPlayspace = Quaternion.Inverse(MixedRealityPlayspace.Rotation) * ObserverRotation; - - // Update the observer - switch (ObserverVolumeType) - { - case VolumeType.AxisAlignedCube: - observer.SetVolumeAsAxisAlignedBox(observerOriginPlayspace, ObservationExtents); - break; - - case VolumeType.Sphere: - // We use the x value of the extents as the sphere radius - observer.SetVolumeAsSphere(observerOriginPlayspace, ObservationExtents.x); - break; - - case VolumeType.UserAlignedCube: - observer.SetVolumeAsOrientedBox(observerOriginPlayspace, ObservationExtents, observerRotationPlayspace); - break; - - default: - Debug.LogError($"Unsupported ObserverVolumeType value {ObserverVolumeType}"); - break; - } - } - } - - private static readonly ProfilerMarker OnSurfaceChangedPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver+PlayspaceAdapter.SurfaceObserver_OnSurfaceChanged"); - - /// - /// Handles the SurfaceObserver's OnSurfaceChanged event. - /// - /// The identifier assigned to the surface which has changed. - /// The type of change that occurred on the surface. - /// The bounds of the surface. - /// The date and time at which the change occurred. - private void SurfaceObserver_OnSurfaceChanged(SurfaceId id, SurfaceChange changeType, Bounds bounds, System.DateTime updateTime) - { - if (!IsRunning) { return; } - - using (OnSurfaceChangedPerfMarker.Auto()) - { - switch (changeType) - { - case SurfaceChange.Added: - case SurfaceChange.Updated: - meshWorkQueue.Enqueue(id); - break; - - case SurfaceChange.Removed: - RemoveMeshObject(id.handle); - break; - } - } - } - - private static readonly ProfilerMarker OnDataReadyPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver+PlayspaceAdapter.SurfaceObserver_OnDataReady"); - - /// - /// Handles the SurfaceObserver's OnDataReady event. - /// - /// Struct containing output data. - /// Set to true if output has been written. - /// Seconds between mesh cook request and propagation of this event. - private void SurfaceObserver_OnDataReady(SurfaceData cookedData, bool outputWritten, float elapsedCookTimeSeconds) - { - if (!IsRunning) { return; } - - using (OnDataReadyPerfMarker.Auto()) - { - if (outstandingMeshObject == null) - { - return; - } - - if (!outputWritten) - { - ReclaimMeshObject(outstandingMeshObject); - outstandingMeshObject = null; - return; - } - - // Since there is only one outstanding mesh object, update the id to match - // the one received after baking. - SpatialAwarenessMeshObject meshObject = outstandingMeshObject; - meshObject.Id = cookedData.id.handle; - outstandingMeshObject = null; - - // Check to see if this is a new or updated mesh. - bool isMeshUpdate = meshes.ContainsKey(meshObject.Id); - - // We presume that if the display option is not occlusion, that we should - // default to the visible material. - // Note: We check explicitly for a display option of none later in this method. - Material material = (DisplayOption == SpatialAwarenessMeshDisplayOptions.Occlusion) ? - OcclusionMaterial : VisibleMaterial; - - // If this is a mesh update, we want to preserve the mesh's previous material. - material = isMeshUpdate ? meshes[meshObject.Id].Renderer.sharedMaterial : material; - - // Apply the appropriate material. - meshObject.Renderer.sharedMaterial = material; - - // Recalculate the mesh normals if requested. - if (RecalculateNormals) - { - meshObject.Filter.sharedMesh.RecalculateNormals(); - } - - // Check to see if the display option is set to none. If so, we disable - // the renderer. - meshObject.Renderer.enabled = (DisplayOption != SpatialAwarenessMeshDisplayOptions.None); - - // Set the physics material - if (meshObject.Renderer.enabled) - { - meshObject.Collider.material = PhysicsMaterial; - } - - // Add / update the mesh to our collection - if (isMeshUpdate) - { - // Reclaim the old mesh object for future use. - ReclaimMeshObject(meshes[meshObject.Id]); - meshes.Remove(meshObject.Id); - } - meshes.Add(meshObject.Id, meshObject); - - // Preserve local transform relative to parent. - meshObject.GameObject.transform.SetParent(ObservedObjectParent != null ? - ObservedObjectParent.transform: null, false); - - meshEventData.Initialize(this, meshObject.Id, meshObject); - if (isMeshUpdate) - { - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshUpdated); - } - else - { - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshAdded); - } - } - } -#endif // UNITY_WSA - - #endregion Helpers - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs.meta deleted file mode 100644 index eec21dc77..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealitySpatialMeshObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 73f35184bfdaf234fa7be069c5b6d24b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs deleted file mode 100644 index 21aaabced..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Runtime.InteropServices; - -#if UNITY_WSA -using UnityEngine.XR.WSA; -#endif // UNITY_WSA - -namespace Microsoft.MixedReality.Toolkit.WindowsMixedReality -{ - /// - /// An implementation of for Unity's in-box XR pipeline. - /// - public class WindowsMixedRealityUtilitiesProvider : IWindowsMixedRealityUtilitiesProvider - { - /// - IntPtr IWindowsMixedRealityUtilitiesProvider.ISpatialCoordinateSystemPtr => -#if UNITY_WSA - WorldManager.GetNativeISpatialCoordinateSystemPtr(); -#else - IntPtr.Zero; -#endif - - /// - IntPtr IWindowsMixedRealityUtilitiesProvider.IHolographicFramePtr - { - get - { - IntPtr nativePtr = UnityEngine.XR.XRDevice.GetNativePtr(); - HolographicFrameNativeData hfd = Marshal.PtrToStructure(nativePtr); - return hfd.IHolographicFramePtr; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs.meta deleted file mode 100644 index cf676e1b2..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/WindowsMixedRealityUtilitiesProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 23cde754cee36e844b2b638e0a25dbb3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp deleted file mode 100644 index 4afd5284f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp +++ /dev/null @@ -1 +0,0 @@ --nowarn:618 diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp.meta deleted file mode 100644 index 7e895476e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XR2018/csc.rsp.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 89cb5809448e46f40a7f6e14b4c4bba4 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK.meta deleted file mode 100644 index 76323f17b..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1be2b5d42140db74db5adf95494ab8f4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs.meta deleted file mode 100644 index 70e1e1b34..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: dd84f002bd09a83498764fde36a05070 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers.meta deleted file mode 100644 index d1f97bd32..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 336aa7e00e408784888383ac71e53f29 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs deleted file mode 100644 index 8b33ebbf7..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.XRSDK.Input; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - /// - /// A Windows Mixed Reality source instance. - /// - public abstract class BaseWindowsMixedRealityXRSDKSource : GenericXRSDKController - { - /// - /// Constructor. - /// - protected BaseWindowsMixedRealityXRSDKSource(TrackingState trackingState, Handedness sourceHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, sourceHandedness, inputSource, interactions) { } - - private Vector3 currentPointerPosition = Vector3.zero; - private Quaternion currentPointerRotation = Quaternion.identity; - private MixedRealityPose currentPointerPose = MixedRealityPose.ZeroIdentity; - - private static readonly ProfilerMarker UpdatePoseDataPerfMarker = new ProfilerMarker("[MRTK] BaseWindowsMixedRealityXRSDKSource.UpdatePoseData"); - - /// - /// Update spatial pointer and spatial grip data. - /// - protected override void UpdatePoseData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdatePoseDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.SixDof); - - // Update the interaction data source - switch (interactionMapping.InputType) - { - case DeviceInputType.SpatialPointer: - if (inputDevice.TryGetFeatureValue(CustomUsages.PointerPosition, out currentPointerPosition)) - { - currentPointerPose.Position = MixedRealityPlayspace.TransformPoint(currentPointerPosition); - } - - if (inputDevice.TryGetFeatureValue(CustomUsages.PointerRotation, out currentPointerRotation)) - { - currentPointerPose.Rotation = MixedRealityPlayspace.Rotation * currentPointerRotation; - } - - interactionMapping.PoseData = currentPointerPose; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.PoseData); - } - break; - default: - base.UpdatePoseData(interactionMapping, inputDevice); - break; - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs.meta deleted file mode 100644 index 4c31c063d..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/BaseWindowsMixedRealityXRSDKSource.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1664faa79cdb3254ca75f32ddda113c2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs deleted file mode 100644 index e1d6d7a42..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.WindowsMixedReality; -using System; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR; - -#if WINDOWS_UWP -#if WMR_ENABLED -using UnityEngine.XR.WindowsMR; -#endif // WMR_ENABLED -using Windows.UI.Input.Spatial; -#endif // WINDOWS_UWP - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - /// - /// XR SDK implementation of Windows Mixed Reality articulated hands. - /// - [MixedRealityController( - SupportedControllerType.ArticulatedHand, - new[] { Handedness.Left, Handedness.Right })] - public class WindowsMixedRealityXRSDKArticulatedHand : BaseWindowsMixedRealityXRSDKSource, IMixedRealityHand - { - /// - /// Constructor. - /// - public WindowsMixedRealityXRSDKArticulatedHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - handDefinition = new ArticulatedHandDefinition(inputSource, controllerHandedness); - handMeshProvider = new WindowsMixedRealityHandMeshProvider(this); - } - - /// - public override MixedRealityInteractionMapping[] DefaultInteractions => handDefinition?.DefaultInteractions; - - private readonly Dictionary unityJointPoses = new Dictionary(); - private readonly ArticulatedHandDefinition handDefinition; - private readonly WindowsMixedRealityHandMeshProvider handMeshProvider; - - private static readonly HandFinger[] handFingers = Enum.GetValues(typeof(HandFinger)) as HandFinger[]; - private readonly List fingerBones = new List(); - - // The rotation offset between the reported grip pose of a hand and the palm joint orientation. - // These values were calculated by comparing the platform's reported grip pose and palm pose. - private static readonly Quaternion rightPalmOffset = new Quaternion(Mathf.Sqrt(0.125f), Mathf.Sqrt(0.125f), -Mathf.Sqrt(1.5f) / 2.0f, Mathf.Sqrt(1.5f) / 2.0f); - private static readonly Quaternion leftPalmOffset = new Quaternion(Mathf.Sqrt(0.125f), -Mathf.Sqrt(0.125f), Mathf.Sqrt(1.5f) / 2.0f, Mathf.Sqrt(1.5f) / 2.0f); - -#if WINDOWS_UWP && WMR_ENABLED - private readonly List states = new List(); -#endif // WINDOWS_UWP && WMR_ENABLED - - #region IMixedRealityHand Implementation - - /// - public bool TryGetJoint(TrackedHandJoint joint, out MixedRealityPose pose) => unityJointPoses.TryGetValue(joint, out pose); - - #endregion IMixedRealityHand Implementation - - /// - public override bool IsInPointingPose => handDefinition.IsInPointingPose; - - #region Update data functions - - private static readonly ProfilerMarker UpdateControllerPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityXRSDKArticulatedHand.UpdateController"); - - /// - public override void UpdateController(InputDevice inputDevice) - { - if (!Enabled) { return; } - - using (UpdateControllerPerfMarker.Auto()) - { - base.UpdateController(inputDevice); - - UpdateHandData(inputDevice); - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].InputType) - { - case DeviceInputType.IndexFinger: - handDefinition?.UpdateCurrentIndexPose(Interactions[i]); - break; - } - } - } - } - - private static readonly ProfilerMarker UpdateHandDataPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityXRSDKArticulatedHand.UpdateHandData"); - - /// - /// Update the hand data from the device. - /// - /// The InteractionSourceState retrieved from the platform. - private void UpdateHandData(InputDevice inputDevice) - { - using (UpdateHandDataPerfMarker.Auto()) - { -#if WINDOWS_UWP && WMR_ENABLED - XRSubsystemHelpers.InputSubsystem?.GetCurrentSourceStates(states); - - foreach (SpatialInteractionSourceState sourceState in states) - { - if (sourceState.Source.Handedness.ToMRTKHandedness() == ControllerHandedness) - { - handMeshProvider?.UpdateHandMesh(sourceState); - break; - } - } -#endif // WINDOWS_UWP && WMR_ENABLED - - Hand hand; - if (inputDevice.TryGetFeatureValue(CommonUsages.handData, out hand)) - { - foreach (HandFinger finger in handFingers) - { - if (hand.TryGetFingerBones(finger, fingerBones)) - { - for (int i = 0; i < fingerBones.Count; i++) - { - TrackedHandJoint trackedHandJoint = ConvertToTrackedHandJoint(finger, i); - Bone bone = fingerBones[i]; - - Vector3 position = Vector3.zero; - Quaternion rotation = Quaternion.identity; - - bool positionAvailable = bone.TryGetPosition(out position); - bool rotationAvailable = bone.TryGetRotation(out rotation); - - // If either position or rotation is available, use both pieces of data given. - // This might result in using a zeroed out position or rotation. Most likely, - // either both are available or both are unavailable. - if (positionAvailable || rotationAvailable) - { - // We want input sources to follow the playspace, so fold in the playspace transform here to - // put the controller pose into world space. - position = MixedRealityPlayspace.TransformPoint(position); - rotation = MixedRealityPlayspace.Rotation * rotation; - - unityJointPoses[trackedHandJoint] = new MixedRealityPose(position, rotation); - } - } - - // Unity doesn't provide a palm joint, so we synthesize one here - MixedRealityPose palmPose = CurrentControllerPose; - palmPose.Rotation *= (ControllerHandedness == Handedness.Left ? leftPalmOffset : rightPalmOffset); - unityJointPoses[TrackedHandJoint.Palm] = palmPose; - } - } - - handDefinition?.UpdateHandJoints(unityJointPoses); - } - } - } - - /// - /// Converts a Unity finger bone into an MRTK hand joint. - /// - /// - /// For HoloLens 2, Unity provides four joints per finger, in index order of metacarpal (0) to tip (4). - /// The first joint for the thumb is the wrist joint. Palm joint is not provided. - /// - /// The Unity classification of the current finger. - /// The Unity index of the current finger bone. - /// The current Unity finger bone converted into an MRTK joint. - private TrackedHandJoint ConvertToTrackedHandJoint(HandFinger finger, int index) - { - switch (finger) - { - case HandFinger.Thumb: return (index == 0) ? TrackedHandJoint.Wrist : TrackedHandJoint.ThumbMetacarpalJoint + index - 1; - case HandFinger.Index: return TrackedHandJoint.IndexMetacarpal + index; - case HandFinger.Middle: return TrackedHandJoint.MiddleMetacarpal + index; - case HandFinger.Ring: return TrackedHandJoint.RingMetacarpal + index; - case HandFinger.Pinky: return TrackedHandJoint.PinkyMetacarpal + index; - default: return TrackedHandJoint.None; - } - } - - #endregion Update data functions - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs.meta deleted file mode 100644 index 832bf5375..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKArticulatedHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2c799c97713643248879e0c64a6fe281 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs deleted file mode 100644 index 4d091c104..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - /// - /// A Windows Mixed Reality GGV (Gaze, Gesture, and Voice) hand instance for XR SDK. - /// - [MixedRealityController( - SupportedControllerType.GGVHand, - new[] { Handedness.Left, Handedness.Right, Handedness.None })] - public class WindowsMixedRealityXRSDKGGVHand : BaseWindowsMixedRealityXRSDKSource - { - public WindowsMixedRealityXRSDKGGVHand(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) { } - - /// - /// The GGV hand default interactions. - /// - /// A single interaction mapping works for both left and right controllers. - public override MixedRealityInteractionMapping[] DefaultInteractions { get; } = new[] - { - new MixedRealityInteractionMapping(0, "Select", AxisType.Digital, DeviceInputType.Select), - new MixedRealityInteractionMapping(1, "Grip Pose", AxisType.SixDof, DeviceInputType.SpatialGrip), - }; - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs.meta deleted file mode 100644 index 23de12a35..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKGGVHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 87496df4a7a58784684bcce0f8c19ce2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs deleted file mode 100644 index 99e49d74f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - /// - /// XR SDK implementation of Windows Mixed Reality motion controllers. - /// - [MixedRealityController( - SupportedControllerType.WindowsMixedReality, - new[] { Handedness.Left, Handedness.Right }, - "StandardAssets/Textures/MotionController")] - public class WindowsMixedRealityXRSDKMotionController : BaseWindowsMixedRealityXRSDKSource - { - /// - /// Constructor. - /// - public WindowsMixedRealityXRSDKMotionController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) { } - - /// - public override MixedRealityInteractionMapping[] DefaultInteractions => new[] - { - new MixedRealityInteractionMapping(0, "Spatial Pointer", AxisType.SixDof, DeviceInputType.SpatialPointer), - new MixedRealityInteractionMapping(1, "Spatial Grip", AxisType.SixDof, DeviceInputType.SpatialGrip), - new MixedRealityInteractionMapping(2, "Grip Press", AxisType.SingleAxis, DeviceInputType.GripPress), - new MixedRealityInteractionMapping(3, "Trigger Position", AxisType.SingleAxis, DeviceInputType.Trigger), - new MixedRealityInteractionMapping(4, "Trigger Touch", AxisType.Digital, DeviceInputType.TriggerTouch), - new MixedRealityInteractionMapping(5, "Trigger Press (Select)", AxisType.Digital, DeviceInputType.Select), - new MixedRealityInteractionMapping(6, "Touchpad Position", AxisType.DualAxis, DeviceInputType.Touchpad), - new MixedRealityInteractionMapping(7, "Touchpad Touch", AxisType.Digital, DeviceInputType.TouchpadTouch), - new MixedRealityInteractionMapping(8, "Touchpad Press", AxisType.Digital, DeviceInputType.TouchpadPress), - new MixedRealityInteractionMapping(9, "Menu Press", AxisType.Digital, DeviceInputType.Menu), - new MixedRealityInteractionMapping(10, "Thumbstick Position", AxisType.DualAxis, DeviceInputType.ThumbStick), - new MixedRealityInteractionMapping(11, "Thumbstick Press", AxisType.Digital, DeviceInputType.ThumbStickPress), - }; - - private static readonly ProfilerMarker UpdateButtonDataPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityXRSDKMotionController.UpdateButtonData"); - - /// - protected override void UpdateButtonData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdateButtonDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.Digital); - - InputFeatureUsage buttonUsage; - - // These mappings are flipped from the base class, - // where thumbstick is primary and touchpad is secondary. - switch (interactionMapping.InputType) - { - case DeviceInputType.TouchpadTouch: - buttonUsage = CommonUsages.primary2DAxisTouch; - break; - case DeviceInputType.TouchpadPress: - buttonUsage = CommonUsages.primary2DAxisClick; - break; - case DeviceInputType.ThumbStickPress: - buttonUsage = CommonUsages.secondary2DAxisClick; - break; - default: - base.UpdateButtonData(interactionMapping, inputDevice); - return; - } - - if (inputDevice.TryGetFeatureValue(buttonUsage, out bool buttonPressed)) - { - interactionMapping.BoolData = buttonPressed; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - } - } - - private static readonly ProfilerMarker UpdateDualAxisDataPerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealityXRSDKMotionController.UpdateDualAxisData"); - - /// - protected override void UpdateDualAxisData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdateDualAxisDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.DualAxis); - - InputFeatureUsage axisUsage; - - // These mappings are flipped from the base class, - // where thumbstick is primary and touchpad is secondary. - switch (interactionMapping.InputType) - { - case DeviceInputType.ThumbStick: - axisUsage = CommonUsages.secondary2DAxis; - break; - case DeviceInputType.Touchpad: - axisUsage = CommonUsages.primary2DAxis; - break; - default: - base.UpdateDualAxisData(interactionMapping, inputDevice); - return; - } - - if (inputDevice.TryGetFeatureValue(axisUsage, out Vector2 axisData)) - { - // Update the interaction data source - interactionMapping.Vector2Data = axisData; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.Vector2Data); - } - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs.meta deleted file mode 100644 index 91cf87e2a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/Controllers/WindowsMixedRealityXRSDKMotionController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a82f9f5301eea194e8855f645d35eedb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef deleted file mode 100644 index 22cfb9aef..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.XRSDK.WindowsMixedReality", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.Shared", - "Microsoft.MixedReality.Toolkit.Providers.XRSDK", - "Unity.XR.WindowsMixedReality" - ], - "includePlatforms": [ - "Editor", - "WSA", - "WindowsStandalone32", - "WindowsStandalone64" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [ - "UNITY_2019_3_OR_NEWER" - ], - "versionDefines": [ - { - "name": "com.unity.xr.windowsmr", - "expression": "", - "define": "WMR_ENABLED" - } - ], - "noEngineReferences": false -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef.meta deleted file mode 100644 index c86a3b904..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/MRTK.WMR.XRSDK.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2dfc6c13295e6094caf03e31906b45b8 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs deleted file mode 100644 index 12c15631a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.WindowsMixedReality; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - /// - /// Camera settings provider for use with Windows Mixed Reality and XR SDK. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityCameraSystem), - SupportedPlatforms.WindowsUniversal | SupportedPlatforms.WindowsStandalone, - "XR SDK Windows Mixed Reality Camera Settings", - "WindowsMixedReality/Shared/Profiles/DefaultWindowsMixedRealityCameraSettingsProfile.asset", - "MixedRealityToolkit.Providers")] - public class WindowsMixedRealityCameraSettings : BaseWindowsMixedRealityCameraSettings - { - /// - /// Constructor. - /// - /// The instance of the camera system which is managing this provider. - /// Friendly name of the provider. - /// Provider priority. Used to determine order of instantiation. - /// The provider's configuration profile. - public WindowsMixedRealityCameraSettings( - IMixedRealityCameraSystem cameraSystem, - string name = null, - uint priority = DefaultPriority, - BaseCameraSettingsProfile profile = null) : base(cameraSystem, name, priority, profile) - { } - - #region IMixedRealityCameraSettings - - /// - public override bool IsOpaque => XRSubsystemHelpers.DisplaySubsystem?.displayOpaque ?? true; - - #endregion IMixedRealityCameraSettings - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs.meta deleted file mode 100644 index c914910c0..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityCameraSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ffb60bf08101b064098159ff0827254e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs deleted file mode 100644 index 9cbcdb885..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Windows.Utilities; -using Microsoft.MixedReality.Toolkit.XRSDK.Input; -using System; -using UnityEngine.XR; - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP -using Microsoft.MixedReality.Toolkit.WindowsMixedReality; -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - -#if WINDOWS_UWP -using Windows.Perception; -using Windows.Perception.People; -using Windows.UI.Input.Spatial; -#elif UNITY_WSA && DOTNETWINRT_PRESENT -using Microsoft.Windows.Perception; -using Microsoft.Windows.Perception.People; -using Microsoft.Windows.UI.Input.Spatial; -#endif - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - /// - /// Manages XR SDK devices on the Windows Mixed Reality platform. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsStandalone | SupportedPlatforms.WindowsUniversal, - "XRSDK Windows Mixed Reality Device Manager")] - public class WindowsMixedRealityDeviceManager : XRSDKDeviceManager - { - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public WindowsMixedRealityDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - #region IMixedRealityDeviceManager Interface - -#if (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - private IMixedRealityGazeProviderHeadOverride mixedRealityGazeProviderHeadOverride = null; - - /// - public override void Enable() - { - base.Enable(); - - if (WindowsMixedRealityUtilities.UtilitiesProvider == null) - { - WindowsMixedRealityUtilities.UtilitiesProvider = new XRSDKWindowsMixedRealityUtilitiesProvider(); - } - - mixedRealityGazeProviderHeadOverride = Service?.GazeProvider as IMixedRealityGazeProviderHeadOverride; - } - - /// - public override void Update() - { - // Override gaze before base.Update() updates the controllers - if (mixedRealityGazeProviderHeadOverride != null && mixedRealityGazeProviderHeadOverride.UseHeadGazeOverride && WindowsMixedRealityUtilities.SpatialCoordinateSystem != null) - { - SpatialPointerPose pointerPose = SpatialPointerPose.TryGetAtTimestamp(WindowsMixedRealityUtilities.SpatialCoordinateSystem, PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); - if (pointerPose != null) - { - HeadPose head = pointerPose.Head; - if (head != null) - { - mixedRealityGazeProviderHeadOverride.OverrideHeadGaze(head.Position.ToUnityVector3(), head.ForwardDirection.ToUnityVector3()); - } - } - } - - base.Update(); - } -#endif // (UNITY_WSA && DOTNETWINRT_PRESENT) || WINDOWS_UWP - - #endregion IMixedRealityDeviceManager Interface - - #region IMixedRealityCapabilityCheck Implementation - - /// - public override bool CheckCapability(MixedRealityCapability capability) - { - if (WindowsApiChecker.IsMethodAvailable( - "Windows.UI.Input.Spatial", - "SpatialInteractionManager", - "IsSourceKindSupported")) - { -#if WINDOWS_UWP - switch (capability) - { - case MixedRealityCapability.ArticulatedHand: - case MixedRealityCapability.GGVHand: - return SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Hand); - - case MixedRealityCapability.MotionController: - return SpatialInteractionManager.IsSourceKindSupported(SpatialInteractionSourceKind.Controller); - } -#endif // WINDOWS_UWP - } - else // Pre-Windows 10 1903. - { - if (XRSubsystemHelpers.DisplaySubsystem != null && !XRSubsystemHelpers.DisplaySubsystem.displayOpaque) - { - // HoloLens supports GGV hands - return capability == MixedRealityCapability.GGVHand; - } - else - { - // Windows Mixed Reality immersive devices support motion controllers - return capability == MixedRealityCapability.MotionController; - } - } - - return false; - } - - #endregion IMixedRealityCapabilityCheck Implementation - - #region Controller Utilities - - /// - protected override Type GetControllerType(SupportedControllerType supportedControllerType) - { - switch (supportedControllerType) - { - case SupportedControllerType.WindowsMixedReality: - return typeof(WindowsMixedRealityXRSDKMotionController); - case SupportedControllerType.ArticulatedHand: - return typeof(WindowsMixedRealityXRSDKArticulatedHand); - case SupportedControllerType.GGVHand: - return typeof(WindowsMixedRealityXRSDKGGVHand); - default: - return base.GetControllerType(supportedControllerType); - } - } - - /// - protected override InputSourceType GetInputSourceType(SupportedControllerType supportedControllerType) - { - switch (supportedControllerType) - { - case SupportedControllerType.WindowsMixedReality: - return InputSourceType.Controller; - case SupportedControllerType.ArticulatedHand: - case SupportedControllerType.GGVHand: - return InputSourceType.Hand; - default: - return base.GetInputSourceType(supportedControllerType); - } - } - - /// - protected override SupportedControllerType GetCurrentControllerType(InputDevice inputDevice) - { - if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.HandTracking)) - { - if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Left) || - inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Right)) - { - // If it's a hand with a reported handedness, assume HL2 articulated hand - return SupportedControllerType.ArticulatedHand; - } - else - { - // Otherwise, assume HL1 hand - return SupportedControllerType.GGVHand; - } - } - - if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Controller)) - { - return SupportedControllerType.WindowsMixedReality; - } - - return base.GetCurrentControllerType(inputDevice); - } - - #endregion Controller Utilities - } -} - diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs.meta deleted file mode 100644 index 4f4be0fa0..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealityDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ab4f97f38ef5c48449fb6b1c868e018f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs deleted file mode 100644 index bc9961d09..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; - -#if WMR_ENABLED -using UnityEngine.XR.WindowsMR; -#endif // WMR_ENABLED - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - [MixedRealityDataProvider( - typeof(IMixedRealitySpatialAwarenessSystem), - SupportedPlatforms.WindowsUniversal, - "XR SDK Windows Mixed Reality Spatial Mesh Observer", - "Profiles/DefaultMixedRealitySpatialAwarenessMeshObserverProfile.asset", - "MixedRealityToolkit.SDK")] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SpatialAwareness/SpatialAwarenessGettingStarted.html")] - public class WindowsMixedRealitySpatialMeshObserver : - GenericXRSDKSpatialMeshObserver, - IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public WindowsMixedRealitySpatialMeshObserver( - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(spatialAwarenessSystem, name, priority, profile) - { } - - private static readonly ProfilerMarker ConfigureObserverVolumePerfMarker = new ProfilerMarker("[MRTK] WindowsMixedRealitySpatialMeshObserver.ConfigureObserverVolume"); - - /// - protected override void ConfigureObserverVolume() - { - if (SpatialAwarenessSystem == null || XRSubsystemHelpers.MeshSubsystem == null) - { - return; - } - - using (ConfigureObserverVolumePerfMarker.Auto()) - { - // Update the observer - switch (ObserverVolumeType) - { - case VolumeType.AxisAlignedCube: - XRSubsystemHelpers.MeshSubsystem.SetBoundingVolume(ObserverOrigin, ObservationExtents); - break; -#if WMR_ENABLED - case VolumeType.Sphere: - // We use the x value of the extents as the sphere radius - XRSubsystemHelpers.MeshSubsystem.SetBoundingVolumeSphere(ObserverOrigin, ObservationExtents.x); - break; - - case VolumeType.UserAlignedCube: - XRSubsystemHelpers.MeshSubsystem.SetBoundingVolumeOrientedBox(ObserverOrigin, ObservationExtents, ObserverRotation); - break; -#endif // WMR_ENABLED - default: - Debug.LogError($"Unsupported ObserverVolumeType value {ObserverVolumeType}"); - break; - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs.meta deleted file mode 100644 index 1c34d9d22..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/WindowsMixedRealitySpatialMeshObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2057173e32c68144791ec4c73556934d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs deleted file mode 100644 index c8fa3cd86..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.WindowsMixedReality; -using System; - -#if WMR_ENABLED -using UnityEngine.XR.WindowsMR; -#endif // WMR_ENABLED - -namespace Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality -{ - /// - /// An implementation of for Unity's XR SDK pipeline. - /// - public class XRSDKWindowsMixedRealityUtilitiesProvider : IWindowsMixedRealityUtilitiesProvider - { - /// - IntPtr IWindowsMixedRealityUtilitiesProvider.ISpatialCoordinateSystemPtr => -#if WMR_ENABLED - WindowsMREnvironment.OriginSpatialCoordinateSystem; -#else - IntPtr.Zero; -#endif - - /// - IntPtr IWindowsMixedRealityUtilitiesProvider.IHolographicFramePtr => -#if WMR_ENABLED - WindowsMREnvironment.CurrentHolographicRenderFrame; -#else - IntPtr.Zero; -#endif - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs.meta b/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs.meta deleted file mode 100644 index 775cc5bd4..000000000 --- a/AR-ROS/Assets/MRTK/Providers/WindowsMixedReality/XRSDK/XRSDKWindowsMixedRealityUtilitiesProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b5b38683ccaaef54c97454ab256bd8e0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK.meta deleted file mode 100644 index e9ab0a55c..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bfe34fbfac929c24b99c4fc1e732ada1 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs.meta deleted file mode 100644 index 1071f81b0..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c1045d73428cc1c4e8aeb6b7c41d37e3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers.meta deleted file mode 100644 index e057a9fb8..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 36a24518aba9d734d8fae264003c6aa0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs deleted file mode 100644 index f759b8bcd..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs +++ /dev/null @@ -1,360 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.Input -{ - [MixedRealityController( - SupportedControllerType.GenericUnity, - new[] { Handedness.Left, Handedness.Right }, - flags: MixedRealityControllerConfigurationFlags.UseCustomInteractionMappings)] - public class GenericXRSDKController : BaseController - { - public GenericXRSDKController(TrackingState trackingState, Handedness controllerHandedness, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null) - : base(trackingState, controllerHandedness, inputSource, interactions) - { - } - - /// - /// The current pose of this XR SDK controller. - /// - protected MixedRealityPose CurrentControllerPose = MixedRealityPose.ZeroIdentity; - - /// - /// The previous pose of this XR SDK controller. - /// - protected MixedRealityPose LastControllerPose = MixedRealityPose.ZeroIdentity; - - /// - /// The current position of this XR SDK controller. - /// - protected Vector3 CurrentControllerPosition = Vector3.zero; - - /// - /// The current rotation of this XR SDK controller. - /// - protected Quaternion CurrentControllerRotation = Quaternion.identity; - - /// - public override MixedRealityInteractionMapping[] DefaultLeftHandedInteractions => DefaultInteractions; - - /// - public override MixedRealityInteractionMapping[] DefaultRightHandedInteractions => DefaultInteractions; - - private static readonly ProfilerMarker UpdateControllerPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKController.UpdateController"); - - /// - /// Update the controller data from XR SDK. - /// - public virtual void UpdateController(InputDevice inputDevice) - { - using (UpdateControllerPerfMarker.Auto()) - { - if (!Enabled) { return; } - - if (Interactions == null) - { - Debug.LogError($"No interaction configuration for {GetType().Name}"); - Enabled = false; - } - - var lastState = TrackingState; - LastControllerPose = CurrentControllerPose; - - // Check for position and rotation. - IsPositionAvailable = inputDevice.TryGetFeatureValue(CommonUsages.devicePosition, out CurrentControllerPosition); - IsPositionApproximate = false; - - IsRotationAvailable = inputDevice.TryGetFeatureValue(CommonUsages.deviceRotation, out CurrentControllerRotation); - - // Devices are considered tracked if we receive position OR rotation data from the sensors. - TrackingState = (IsPositionAvailable || IsRotationAvailable) ? TrackingState.Tracked : TrackingState.NotTracked; - - CurrentControllerPosition = MixedRealityPlayspace.TransformPoint(CurrentControllerPosition); - CurrentControllerRotation = MixedRealityPlayspace.Rotation * CurrentControllerRotation; - - CurrentControllerPose.Position = CurrentControllerPosition; - CurrentControllerPose.Rotation = CurrentControllerRotation; - - // Raise input system events if it is enabled. - if (lastState != TrackingState) - { - CoreServices.InputSystem?.RaiseSourceTrackingStateChanged(InputSource, this, TrackingState); - } - - if (TrackingState == TrackingState.Tracked && LastControllerPose != CurrentControllerPose) - { - if (IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePoseChanged(InputSource, this, CurrentControllerPose); - } - else if (IsPositionAvailable && !IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourcePositionChanged(InputSource, this, CurrentControllerPosition); - } - else if (!IsPositionAvailable && IsRotationAvailable) - { - CoreServices.InputSystem?.RaiseSourceRotationChanged(InputSource, this, CurrentControllerRotation); - } - } - - for (int i = 0; i < Interactions?.Length; i++) - { - switch (Interactions[i].AxisType) - { - case AxisType.None: - break; - case AxisType.Digital: - UpdateButtonData(Interactions[i], inputDevice); - break; - case AxisType.SingleAxis: - UpdateSingleAxisData(Interactions[i], inputDevice); - break; - case AxisType.DualAxis: - UpdateDualAxisData(Interactions[i], inputDevice); - break; - case AxisType.SixDof: - UpdatePoseData(Interactions[i], inputDevice); - break; - } - } - } - } - - private static readonly ProfilerMarker UpdateButtonDataPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKController.UpdateButtonData"); - - /// - /// Update an interaction bool data type from a bool input - /// - /// - /// Raises an Input System "Input Down" event when the key is down, and raises an "Input Up" when it is released (e.g. a Button) - /// - protected virtual void UpdateButtonData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdateButtonDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.Digital); - - if (interactionMapping.InputType == DeviceInputType.TriggerTouch - && inputDevice.TryGetFeatureValue(CommonUsages.trigger, out float triggerData)) - { - interactionMapping.BoolData = !Mathf.Approximately(triggerData, 0.0f); - } - else if (interactionMapping.InputType == DeviceInputType.GripTouch - && inputDevice.TryGetFeatureValue(CommonUsages.grip, out float gripData)) - { - interactionMapping.BoolData = !Mathf.Approximately(gripData, 0.0f); - } - else - { - InputFeatureUsage buttonUsage; - - // Update the interaction data source - switch (interactionMapping.InputType) - { - case DeviceInputType.Select: - case DeviceInputType.TriggerNearTouch: - case DeviceInputType.TriggerPress: - buttonUsage = CommonUsages.triggerButton; - break; - case DeviceInputType.GripNearTouch: - case DeviceInputType.GripPress: - buttonUsage = CommonUsages.gripButton; - break; - case DeviceInputType.ButtonPress: - case DeviceInputType.PrimaryButtonPress: - buttonUsage = CommonUsages.primaryButton; - break; - case DeviceInputType.SecondaryButtonPress: - buttonUsage = CommonUsages.secondaryButton; - break; - case DeviceInputType.TouchpadTouch: - buttonUsage = CommonUsages.secondary2DAxisTouch; - break; - case DeviceInputType.TouchpadPress: - buttonUsage = CommonUsages.secondary2DAxisClick; - break; - case DeviceInputType.Menu: - buttonUsage = CommonUsages.menuButton; - break; - case DeviceInputType.ThumbStickTouch: - buttonUsage = CommonUsages.primary2DAxisTouch; - break; - case DeviceInputType.ThumbStickPress: - buttonUsage = CommonUsages.primary2DAxisClick; - break; - default: - return; - } - - if (inputDevice.TryGetFeatureValue(buttonUsage, out bool buttonPressed)) - { - interactionMapping.BoolData = buttonPressed; - } - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - } - } - - private static readonly ProfilerMarker UpdateSingleAxisDataPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKController.UpdateSingleAxisData"); - - /// - /// Update an interaction float data type from a SingleAxis (float) input - /// - /// - /// Raises a FloatInputChanged event when the float data changes - /// - protected virtual void UpdateSingleAxisData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdateSingleAxisDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.SingleAxis); - // Update the interaction data source - switch (interactionMapping.InputType) - { - case DeviceInputType.TriggerPress: - if (inputDevice.TryGetFeatureValue(CommonUsages.triggerButton, out bool triggerPressed)) - { - interactionMapping.BoolData = triggerPressed; - } - break; - case DeviceInputType.GripPress: - if (inputDevice.TryGetFeatureValue(CommonUsages.gripButton, out bool gripPressed)) - { - interactionMapping.BoolData = gripPressed; - } - break; - default: - return; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise bool input system event if it's available - if (interactionMapping.BoolData) - { - CoreServices.InputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - else - { - CoreServices.InputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction); - } - } - - switch (interactionMapping.InputType) - { - case DeviceInputType.Trigger: - if (inputDevice.TryGetFeatureValue(CommonUsages.trigger, out float triggerData)) - { - interactionMapping.FloatData = triggerData; - } - break; - case DeviceInputType.Grip: - if (inputDevice.TryGetFeatureValue(CommonUsages.grip, out float gripData)) - { - interactionMapping.FloatData = gripData; - } - break; - default: - return; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise float input system event if it's enabled - CoreServices.InputSystem?.RaiseFloatInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.FloatData); - } - } - } - - private static readonly ProfilerMarker UpdateDualAxisDataPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKController.UpdateDualAxisData"); - - /// - /// Update the touchpad / thumbstick input from the device - /// - protected virtual void UpdateDualAxisData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdateDualAxisDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.DualAxis); - - InputFeatureUsage axisUsage; - - // Update the interaction data source - switch (interactionMapping.InputType) - { - case DeviceInputType.ThumbStick: - axisUsage = CommonUsages.primary2DAxis; - break; - case DeviceInputType.Touchpad: - axisUsage = CommonUsages.secondary2DAxis; - break; - default: - return; - } - - if (inputDevice.TryGetFeatureValue(axisUsage, out Vector2 axisData)) - { - // Update the interaction data source - interactionMapping.Vector2Data = axisData; - } - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.Vector2Data); - } - } - } - - private static readonly ProfilerMarker UpdatePoseDataPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKController.UpdatePoseData"); - - /// - /// Update spatial grip data. - /// - protected virtual void UpdatePoseData(MixedRealityInteractionMapping interactionMapping, InputDevice inputDevice) - { - using (UpdatePoseDataPerfMarker.Auto()) - { - Debug.Assert(interactionMapping.AxisType == AxisType.SixDof); - - // Update the interaction data source - switch (interactionMapping.InputType) - { - case DeviceInputType.SpatialPointer: - case DeviceInputType.SpatialGrip: - interactionMapping.PoseData = CurrentControllerPose; - - // If our value changed raise it. - if (interactionMapping.Changed) - { - // Raise input system event if it's enabled - CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.PoseData); - } - break; - } - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs.meta deleted file mode 100644 index 8a3271861..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/Controllers/GenericXRSDKController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 555eb41fe6c82094b88128c4003f314f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs deleted file mode 100644 index e37a5601c..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.Input -{ - /// - /// Additional usages to Unity's CommonUsages. - /// - /// These might be plugin-specific, shared across several plug-ins, or custom-defined for new input sources. - public static class CustomUsages - { - /// - /// Represents the origin of the pointing ray of an input source. - /// - public static readonly InputFeatureUsage PointerPosition = new InputFeatureUsage("PointerPosition"); - - /// - /// Represents the orientation of the pointing ray of an input source. - /// - public static readonly InputFeatureUsage PointerRotation = new InputFeatureUsage("PointerRotation"); - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs.meta deleted file mode 100644 index 33429ef6e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/CustomUsages.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5cca057097a14af4db13623d39b6bcf5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs deleted file mode 100644 index b0d97873a..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.CameraSystem; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -#if SPATIALTRACKING_ENABLED -using UnityEngine.SpatialTracking; -#endif // SPATIALTRACKING_ENABLED - -namespace Microsoft.MixedReality.Toolkit.XRSDK -{ - /// - /// Camera settings provider for use with XR SDK. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityCameraSystem), - (SupportedPlatforms)(-1), - "XR SDK Camera Settings")] - public class GenericXRSDKCameraSettings : BaseCameraSettingsProvider - { - /// - /// Constructor. - /// - /// The instance of the camera system which is managing this provider. - /// Friendly name of the provider. - /// Provider priority. Used to determine order of instantiation. - /// The provider's configuration profile. - public GenericXRSDKCameraSettings( - IMixedRealityCameraSystem cameraSystem, - string name = null, - uint priority = DefaultPriority, - BaseCameraSettingsProfile profile = null) : base(cameraSystem, name, priority, profile) - { } - -#if SPATIALTRACKING_ENABLED - private TrackedPoseDriver trackedPoseDriver = null; -#endif // SPATIALTRACKING_ENABLED - - #region IMixedRealityCameraSettings - - /// - public override bool IsOpaque => XRSubsystemHelpers.DisplaySubsystem?.displayOpaque ?? true; - -#if SPATIALTRACKING_ENABLED - /// - public override void Enable() - { - base.Enable(); - - // Only track the TrackedPoseDriver if we added it ourselves. - // There may be a pre-configured TrackedPoseDriver on the camera. - if (!CameraCache.Main.GetComponent()) - { - trackedPoseDriver = CameraCache.Main.gameObject.AddComponent(); - } - } - - /// - public override void Disable() - { - if (trackedPoseDriver != null) - { - Object.Destroy(trackedPoseDriver); - trackedPoseDriver = null; - } - - base.Disable(); - } -#endif // SPATIALTRACKING_ENABLED - - #endregion IMixedRealityCameraSettings - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs.meta deleted file mode 100644 index 8bab2148f..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKCameraSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 612ebe78564f8fe4bac73a367451dfa7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs deleted file mode 100644 index 2463185fe..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs +++ /dev/null @@ -1,548 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.SpatialAwareness; -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK -{ - [MixedRealityDataProvider( - typeof(IMixedRealitySpatialAwarenessSystem), - 0, // Not sure which platforms (other than WMR) support this feature at the moment. - "XR SDK Spatial Mesh Observer", - "Profiles/DefaultMixedRealitySpatialAwarenessMeshObserverProfile.asset", - "MixedRealityToolkit.SDK")] - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SpatialAwareness/SpatialAwarenessGettingStarted.html")] - public class GenericXRSDKSpatialMeshObserver : - BaseSpatialMeshObserver, - IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that loaded the service. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public GenericXRSDKSpatialMeshObserver( - IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(spatialAwarenessSystem, name, priority, profile) - { } - - #region BaseSpatialObserver Implementation - - /// - /// Creates the XRMeshSubsystem and handles the desired startup behavior. - /// - protected override void CreateObserver() - { - if (SpatialAwarenessSystem == null) { return; } - - if (XRSubsystemHelpers.MeshSubsystem != null) - { - ConfigureObserverVolume(); - - if (StartupBehavior == AutoStartBehavior.AutoStart) - { - Resume(); - } - } - } - - /// - /// Implements proper cleanup of the SurfaceObserver. - /// - protected override void CleanupObserver() - { - if (IsRunning) - { - Suspend(); - } - - // Since we don't handle the mesh subsystem's lifecycle, we don't do anything more here. - } - - #endregion BaseSpatialObserver Implementation - - #region BaseSpatialMeshObserver Implementation - - /// - protected override int LookupTriangleDensity(SpatialAwarenessMeshLevelOfDetail levelOfDetail) - { - // For non-custom levels, the enum value is the appropriate triangles per cubic meter. - int level = (int)levelOfDetail; - if (XRSubsystemHelpers.MeshSubsystem != null) - { - XRSubsystemHelpers.MeshSubsystem.meshDensity = level / (float)SpatialAwarenessMeshLevelOfDetail.Fine; // For now, map Coarse to 0.0 and Fine to 1.0 - } - return level; - } - - #endregion BaseSpatialMeshObserver Implementation - - #region IMixedRealityCapabilityCheck Implementation - - /// - public bool CheckCapability(MixedRealityCapability capability) - { - if (capability != MixedRealityCapability.SpatialAwarenessMesh) - { - return false; - } - - var descriptors = new List(); - SubsystemManager.GetSubsystemDescriptors(descriptors); - - return descriptors.Count > 0; - } - - #endregion IMixedRealityCapabilityCheck Implementation - - #region IMixedRealityDataProvider Implementation - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - UpdateObserver(); - } - } - - #endregion IMixedRealityDataProvider Implementation - - #region IMixedRealitySpatialAwarenessObserver Implementation - - /// - /// A queue of MeshId that need their meshes created (or updated). - /// - private readonly Queue meshWorkQueue = new Queue(); - - private readonly List meshInfos = new List(); - - /// - /// To prevent too many meshes from being generated at the same time, we will - /// only request one mesh to be created at a time. This variable will track - /// if a mesh creation request is in flight. - /// - private SpatialAwarenessMeshObject outstandingMeshObject = null; - - /// - /// When surfaces are replaced or removed, rather than destroying them, we'll keep - /// one as a spare for use in outstanding mesh requests. That way, we'll have fewer - /// game object create/destroy cycles, which should help performance. - /// - protected SpatialAwarenessMeshObject spareMeshObject = null; - - /// - /// The time at which the surface observer was last asked for updated data. - /// - private float lastUpdated = 0; - - private static readonly ProfilerMarker ResumePerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver.Resume"); - - /// - public override void Resume() - { - if (IsRunning) - { - Debug.LogWarning("The XR SDK spatial observer is currently running."); - return; - } - - using (ResumePerfMarker.Auto()) - { - // We want the first update immediately. - lastUpdated = 0; - - // UpdateObserver keys off of this value to start observing. - IsRunning = true; - } - } - - private static readonly ProfilerMarker SuspendPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver.Suspend"); - - /// - public override void Suspend() - { - if (!IsRunning) - { - Debug.LogWarning("The XR SDK spatial observer is currently stopped."); - return; - } - - using (SuspendPerfMarker.Auto()) - { - // UpdateObserver keys off of this value to stop observing. - IsRunning = false; - - // Clear any pending work. - meshWorkQueue.Clear(); - } - } - - private static readonly ProfilerMarker ClearObservationsPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver.ClearObservations"); - - /// - public override void ClearObservations() - { - using (ClearObservationsPerfMarker.Auto()) - { - bool wasRunning = false; - - if (IsRunning) - { - wasRunning = true; - Suspend(); - } - - IReadOnlyList observations = new List(Meshes.Keys); - foreach (int meshId in observations) - { - RemoveMeshObject(meshId); - } - - if (wasRunning) - { - Resume(); - } - } - } - - #endregion IMixedRealitySpatialAwarenessObserver Implementation - - #region Helpers - - private static readonly ProfilerMarker UpdateObserverPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver.UpdateObserver"); - - /// - /// Requests updates from the surface observer. - /// - private void UpdateObserver() - { - if (SpatialAwarenessSystem == null || XRSubsystemHelpers.MeshSubsystem == null) { return; } - - using (UpdateObserverPerfMarker.Auto()) - { - // Only update the observer if it is running. - if (IsRunning && (outstandingMeshObject == null)) - { - // If we have a mesh to work on... - if (meshWorkQueue.Count > 0) - { - // We're using a simple first-in-first-out rule for requesting meshes, but a more sophisticated algorithm could prioritize - // the queue based on distance to the user or some other metric. - RequestMesh(meshWorkQueue.Dequeue()); - } - // If enough time has passed since the previous observer update... - else if (Time.time - lastUpdated >= UpdateInterval) - { - // Update the observer orientation if user aligned - if (ObserverVolumeType == VolumeType.UserAlignedCube) - { - ObserverRotation = CameraCache.Main.transform.rotation; - } - - // Update the observer location if it is not stationary - if (!IsStationaryObserver) - { - ObserverOrigin = CameraCache.Main.transform.position; - } - - // The application can update the observer volume at any time, make sure we are using the latest. - ConfigureObserverVolume(); - - if (XRSubsystemHelpers.MeshSubsystem.TryGetMeshInfos(meshInfos)) - { - UpdateMeshes(meshInfos); - } - - lastUpdated = Time.time; - } - } - } - } - - /// - /// Internal component to monitor the WorldAnchor's transform, apply the MixedRealityPlayspace transform, - /// and apply it to its parent. - /// - private class PlayspaceAdapter : MonoBehaviour - { - /// - /// Compute concatenation of lhs * rhs such that lhs * (rhs * v) = Concat(lhs, rhs) * v - /// - /// Second transform to apply - /// First transform to apply - private static Pose Concatenate(Pose lhs, Pose rhs) - { - return rhs.GetTransformedBy(lhs); - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver+PlayspaceAdapter.Update"); - - /// - /// Compute and set the parent's transform. - /// - private void Update() - { - using (UpdatePerfMarker.Auto()) - { - Pose worldFromPlayspace = new Pose(MixedRealityPlayspace.Position, MixedRealityPlayspace.Rotation); - Pose anchorPose = new Pose(transform.position, transform.rotation); - Pose parentPose = Concatenate(worldFromPlayspace, anchorPose); - transform.parent.position = parentPose.position; - transform.parent.rotation = parentPose.rotation; - } - } - } - - private static readonly ProfilerMarker RequestMeshPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver+PlayspaceAdapter.RequestMesh"); - - /// - /// Issue a request to the Surface Observer to begin baking the mesh. - /// - /// ID of the mesh to bake. - private void RequestMesh(MeshId meshId) - { - using (RequestMeshPerfMarker.Auto()) - { - string meshName = ("SpatialMesh - " + meshId); - - SpatialAwarenessMeshObject newMesh; - - if (spareMeshObject == null) - { - newMesh = SpatialAwarenessMeshObject.Create( - null, - MeshPhysicsLayer, - meshName, - meshId.GetHashCode()); - - GameObject anchorHolder = new GameObject(meshName + "_anchor"); - anchorHolder.AddComponent(); - // Right now, we don't add an anchor to the mesh. This may be resolved with the AnchorSubsystem. - anchorHolder.transform.SetParent(newMesh.GameObject.transform, false); - } - else - { - newMesh = spareMeshObject; - spareMeshObject = null; - - newMesh.GameObject.name = meshName; - newMesh.Id = meshId.GetHashCode(); - newMesh.GameObject.SetActive(true); - } - - XRSubsystemHelpers.MeshSubsystem.GenerateMeshAsync(meshId, newMesh.Filter.mesh, newMesh.Collider, MeshVertexAttributes.Normals, (MeshGenerationResult meshGenerationResult) => MeshGenerationAction(meshGenerationResult)); - outstandingMeshObject = newMesh; - } - } - - private static readonly ProfilerMarker RemoveMeshObjectPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver+PlayspaceAdapter.RemoveMeshObject"); - - /// - /// Removes the associated with the specified id. - /// - /// The id of the mesh to be removed. - protected void RemoveMeshObject(int id) - { - using (RemoveMeshObjectPerfMarker.Auto()) - { - SpatialAwarenessMeshObject mesh; - if (meshes.TryGetValue(id, out mesh)) - { - // Remove the mesh object from the collection. - meshes.Remove(id); - - // Reclaim the mesh object for future use. - ReclaimMeshObject(mesh); - - // Send the mesh removed event - meshEventData.Initialize(this, id, null); - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshRemoved); - } - } - } - - private static readonly ProfilerMarker ReclaimMeshObjectPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver+PlayspaceAdapter.ReclaimMeshObject"); - - /// - /// Reclaims the to allow for later reuse. - /// - protected void ReclaimMeshObject(SpatialAwarenessMeshObject availableMeshObject) - { - using (ReclaimMeshObjectPerfMarker.Auto()) - { - if (spareMeshObject == null) - { - // Cleanup the mesh object. - // Do not destroy the game object, destroy the meshes. - SpatialAwarenessMeshObject.Cleanup(availableMeshObject, false); - - availableMeshObject.GameObject.name = "Unused Spatial Mesh"; - availableMeshObject.GameObject.SetActive(false); - - spareMeshObject = availableMeshObject; - } - else - { - // Cleanup the mesh object. - // Destroy the game object, destroy the meshes. - SpatialAwarenessMeshObject.Cleanup(availableMeshObject); - } - } - } - - private static readonly ProfilerMarker ConfigureObserverVolumePerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver+PlayspaceAdapter.ConfigureObserverVolume"); - - /// - /// Applies the configured observation extents. - /// - protected virtual void ConfigureObserverVolume() - { - if (SpatialAwarenessSystem == null || XRSubsystemHelpers.MeshSubsystem == null) - { - return; - } - - using (ConfigureObserverVolumePerfMarker.Auto()) - { - // Update the observer - switch (ObserverVolumeType) - { - case VolumeType.AxisAlignedCube: - XRSubsystemHelpers.MeshSubsystem.SetBoundingVolume(ObserverOrigin, ObservationExtents); - break; - - default: - Debug.LogError($"Unsupported ObserverVolumeType value {ObserverVolumeType}"); - break; - } - } - } - - private static readonly ProfilerMarker UpdateMeshesPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver+PlayspaceAdapter.UpdateMeshes"); - - /// - /// Updates meshes based on the result of the MeshSubsystem.TryGetMeshInfos method. - /// - private void UpdateMeshes(List meshInfos) - { - if (!IsRunning) { return; } - - using (UpdateMeshesPerfMarker.Auto()) - { - foreach (MeshInfo meshInfo in meshInfos) - { - switch (meshInfo.ChangeState) - { - case MeshChangeState.Added: - case MeshChangeState.Updated: - meshWorkQueue.Enqueue(meshInfo.MeshId); - break; - - case MeshChangeState.Removed: - RemoveMeshObject(meshInfo.MeshId.GetHashCode()); - break; - } - } - } - } - - private static readonly ProfilerMarker MeshGenerationActionPerfMarker = new ProfilerMarker("[MRTK] GenericXRSDKSpatialMeshObserver+PlayspaceAdapter.MeshGenerationAction"); - - private void MeshGenerationAction(MeshGenerationResult meshGenerationResult) - { - if (!IsRunning) { return; } - - using (MeshGenerationActionPerfMarker.Auto()) - { - if (outstandingMeshObject == null) - { - Debug.LogWarning($"MeshGenerationAction called for mesh id {meshGenerationResult.MeshId} while no request was outstanding."); - return; - } - - switch (meshGenerationResult.Status) - { - case MeshGenerationStatus.InvalidMeshId: - case MeshGenerationStatus.Canceled: - case MeshGenerationStatus.UnknownError: - outstandingMeshObject = null; - break; - case MeshGenerationStatus.Success: - // Since there is only one outstanding mesh object, update the id to match - // the one received after baking. - SpatialAwarenessMeshObject meshObject = outstandingMeshObject; - meshObject.Id = meshGenerationResult.MeshId.GetHashCode(); - outstandingMeshObject = null; - - // Check to see if this is a new or updated mesh. - bool isMeshUpdate = meshes.ContainsKey(meshObject.Id); - - // We presume that if the display option is not occlusion, that we should - // default to the visible material. - // Note: We check explicitly for a display option of none later in this method. - Material material = (DisplayOption == SpatialAwarenessMeshDisplayOptions.Occlusion) ? - OcclusionMaterial : VisibleMaterial; - - // If this is a mesh update, we want to preserve the mesh's previous material. - material = isMeshUpdate ? meshes[meshObject.Id].Renderer.sharedMaterial : material; - - // Apply the appropriate material. - meshObject.Renderer.sharedMaterial = material; - - // Recalculate the mesh normals if requested. - if (RecalculateNormals) - { - meshObject.Filter.sharedMesh.RecalculateNormals(); - } - - // Check to see if the display option is set to none. If so, we disable - // the renderer. - meshObject.Renderer.enabled = (DisplayOption != SpatialAwarenessMeshDisplayOptions.None); - - // Set the physics material - if (meshObject.Renderer.enabled) - { - meshObject.Collider.material = PhysicsMaterial; - } - - // Add / update the mesh to our collection - if (isMeshUpdate) - { - // Reclaim the old mesh object for future use. - ReclaimMeshObject(meshes[meshObject.Id]); - meshes.Remove(meshObject.Id); - } - meshes.Add(meshObject.Id, meshObject); - - meshObject.GameObject.transform.parent = (ObservedObjectParent.transform != null) ? - ObservedObjectParent.transform : null; - - meshEventData.Initialize(this, meshObject.Id, meshObject); - if (isMeshUpdate) - { - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshUpdated); - } - else - { - SpatialAwarenessSystem?.HandleEvent(meshEventData, OnMeshAdded); - } - break; - } - } - } - - #endregion Helpers - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs.meta deleted file mode 100644 index a794cb8d9..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/GenericXRSDKSpatialMeshObserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8edbf87cdd3a0874ea7e95a0a67255f3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef b/AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef deleted file mode 100644 index 9302e874e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.Providers.XRSDK", - "references": [ - "Microsoft.MixedReality.Toolkit", - "UnityEngine.SpatialTracking" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [ - "UNITY_2019_3_OR_NEWER" - ], - "versionDefines": [ - { - "name": "com.unity.xr.legacyinputhelpers", - "expression": "", - "define": "SPATIALTRACKING_ENABLED" - } - ], - "noEngineReferences": false -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef.meta deleted file mode 100644 index 05bee60ec..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/MRTK.XRSDK.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c29fd43ee25241842985361a5e48a1a7 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/Profiles.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/Profiles.meta deleted file mode 100644 index 0f7b98a25..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/Profiles.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e00784bbadd833c489cf52c47026cda5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs deleted file mode 100644 index 76f479888..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Boundary; -using Microsoft.MixedReality.Toolkit.Utilities; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK -{ - /// - /// The Boundary system controls the presentation and display of the users boundary in a scene. - /// - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Boundary/BoundarySystemGettingStarted.html")] - public class XRSDKBoundarySystem : BaseBoundarySystem - { - /// - /// Constructor. - /// - /// The configuration profile for the service. - /// The application's configured . - public XRSDKBoundarySystem( - MixedRealityBoundaryVisualizationProfile profile, - ExperienceScale scale) : base(profile, scale) - { - } - - /// - protected override bool IsXRDevicePresent - { - get - { - List devices = new List(); - InputDevices.GetDevicesWithCharacteristics(InputDeviceCharacteristics.HeadMounted, devices); - return devices.Count > 0; - } - } - - #region IMixedRealityService Implementation - - /// - public override string Name { get; protected set; } = "XR SDK Boundary System"; - - #endregion IMixedRealityService Implementation - - /// - protected override List GetBoundaryGeometry() - { - // Boundaries are supported for Room Scale experiences only. - if (XRSubsystemHelpers.InputSubsystem.GetTrackingOriginMode() != TrackingOriginModeFlags.Floor) - { - return null; - } - - // Get the boundary geometry. - var boundaryGeometry = new List(0); - - if (!XRSubsystemHelpers.InputSubsystem.TryGetBoundaryPoints(boundaryGeometry) || boundaryGeometry.Count == 0) - { - return null; - } - - return boundaryGeometry; - } - - /// - /// Updates the TrackingOriginModeFlags on the XR device. - /// - protected override void SetTrackingSpace() - { - TrackingOriginModeFlags trackingOriginMode; - - // In current versions of Unity, there are two types of tracking spaces. For boundaries, if the scale - // is not Room or Standing, it currently maps to TrackingSpaceType.Stationary. - switch (Scale) - { - case ExperienceScale.Standing: - case ExperienceScale.Room: - trackingOriginMode = TrackingOriginModeFlags.Floor; - break; - - case ExperienceScale.OrientationOnly: - case ExperienceScale.Seated: - case ExperienceScale.World: - trackingOriginMode = TrackingOriginModeFlags.Device; - break; - - default: - trackingOriginMode = TrackingOriginModeFlags.Device; - Debug.LogWarning("Unknown / unsupported ExperienceScale. Defaulting to Device tracking space."); - break; - } - - if (!XRSubsystemHelpers.InputSubsystem.TrySetTrackingOriginMode(trackingOriginMode)) - { - Debug.LogWarning("Tracking origin unable to be set."); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs.meta deleted file mode 100644 index 477d64da7..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKBoundarySystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5d547cc84f22b04428c9b3d1970ebea7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs deleted file mode 100644 index e460cd2c7..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs +++ /dev/null @@ -1,252 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using Unity.Profiling; -using UnityEngine; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK.Input -{ - /// - /// Manages XR SDK devices. - /// - [MixedRealityDataProvider( - typeof(IMixedRealityInputSystem), - SupportedPlatforms.WindowsStandalone | SupportedPlatforms.MacStandalone | SupportedPlatforms.LinuxStandalone | SupportedPlatforms.WindowsUniversal, - "XRSDK Device Manager")] - public class XRSDKDeviceManager : BaseInputDeviceManager, IMixedRealityCapabilityCheck - { - /// - /// Constructor. - /// - /// The instance that receives data from this provider. - /// Friendly name of the service. - /// Service priority. Used to determine order of instantiation. - /// The service's configuration profile. - public XRSDKDeviceManager( - IMixedRealityInputSystem inputSystem, - string name = null, - uint priority = DefaultPriority, - BaseMixedRealityProfile profile = null) : base(inputSystem, name, priority, profile) { } - - /// - public virtual bool CheckCapability(MixedRealityCapability capability) - { - // The XR SDK platform supports motion controllers. - return (capability == MixedRealityCapability.MotionController); - } - - protected static readonly Dictionary ActiveControllers = new Dictionary(); - - private readonly List inputDevices = new List(); - private readonly List inputDevicesSubset = new List(); - private readonly List lastInputDevices = new List(); - - private List GenericDesiredInputCharacteristics = new List() - { - InputDeviceCharacteristics.Controller, - InputDeviceCharacteristics.HandTracking - }; - protected virtual List DesiredInputCharacteristics - { - get { return GenericDesiredInputCharacteristics; } - set { GenericDesiredInputCharacteristics = value; } - } - - private static readonly ProfilerMarker UpdatePerfMarker = new ProfilerMarker("[MRTK] XRSDKDeviceManager.Update"); - - /// - public override void Update() - { - using (UpdatePerfMarker.Auto()) - { - base.Update(); - - if (XRSubsystemHelpers.InputSubsystem == null || !XRSubsystemHelpers.InputSubsystem.running) - { - return; - } - - inputDevices.Clear(); - foreach (InputDeviceCharacteristics inputDeviceCharacteristics in DesiredInputCharacteristics) - { - InputDevices.GetDevicesWithCharacteristics(inputDeviceCharacteristics, inputDevicesSubset); - foreach (InputDevice device in inputDevicesSubset) - { - if (!inputDevices.Contains(device)) - { - inputDevices.Add(device); - } - } - } - - foreach (InputDevice device in inputDevices) - { - if (device.isValid) - { - GenericXRSDKController controller = GetOrAddController(device); - - if (controller == null) - { - continue; - } - - if (!lastInputDevices.Contains(device)) - { - CoreServices.InputSystem?.RaiseSourceDetected(controller.InputSource, controller); - } - else - { - // Remove devices from our previously tracked list as we update them. - // This will allow us to remove all stale devices that were tracked - // last frame but not this one. - lastInputDevices.Remove(device); - controller.UpdateController(device); - } - } - } - - foreach (InputDevice device in lastInputDevices) - { - GenericXRSDKController controller = GetOrAddController(device); - if (controller != null) - { - CoreServices.InputSystem?.RaiseSourceLost(controller.InputSource, controller); - RemoveController(device); - } - } - - lastInputDevices.Clear(); - lastInputDevices.AddRange(inputDevices); - } - } - - #region Controller Utilities - - private static readonly ProfilerMarker GetOrAddControllerPerfMarker = new ProfilerMarker("[MRTK] XRSDKDeviceManager.GetOrAddController"); - - /// - /// Gets or adds a controller using the InputDevice name provided. - /// - /// The InputDevice from XR SDK. - /// The controller reference. - protected virtual GenericXRSDKController GetOrAddController(InputDevice inputDevice) - { - using (GetOrAddControllerPerfMarker.Auto()) - { - // If a device is already registered with the ID provided, just return it. - if (ActiveControllers.ContainsKey(inputDevice)) - { - var controller = ActiveControllers[inputDevice]; - Debug.Assert(controller != null); - return controller; - } - - Handedness controllingHand; - - if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Left)) - { - controllingHand = Handedness.Left; - } - else if (inputDevice.characteristics.HasFlag(InputDeviceCharacteristics.Right)) - { - controllingHand = Handedness.Right; - } - else - { - controllingHand = Handedness.None; - } - - SupportedControllerType currentControllerType = GetCurrentControllerType(inputDevice); - Type controllerType = GetControllerType(currentControllerType); - InputSourceType inputSourceType = GetInputSourceType(currentControllerType); - - IMixedRealityPointer[] pointers = RequestPointers(currentControllerType, controllingHand); - IMixedRealityInputSource inputSource = Service?.RequestNewGenericInputSource($"{currentControllerType} Controller {controllingHand}", pointers, inputSourceType); - GenericXRSDKController detectedController = Activator.CreateInstance(controllerType, TrackingState.NotTracked, controllingHand, inputSource, null) as GenericXRSDKController; - - if (detectedController == null || !detectedController.Enabled) - { - // Controller failed to be set up correctly. - Debug.LogError($"Failed to create {controllerType.Name} controller"); - - // Return null so we don't raise the source detected. - return null; - } - - for (int i = 0; i < detectedController.InputSource?.Pointers?.Length; i++) - { - detectedController.InputSource.Pointers[i].Controller = detectedController; - } - - ActiveControllers.Add(inputDevice, detectedController); - - return detectedController; - } - } - - private static readonly ProfilerMarker RemoveControllerPerfMarker = new ProfilerMarker("[MRTK] XRSDKDeviceManager.RemoveController"); - - /// - /// Gets the current controller type for the InputDevice name provided. - /// - /// The InputDevice from XR SDK. - protected virtual void RemoveController(InputDevice inputDevice) - { - using (RemoveControllerPerfMarker.Auto()) - { - GenericXRSDKController controller = GetOrAddController(inputDevice); - - if (controller != null) - { - RecyclePointers(controller.InputSource); - - if (controller.Visualizer != null && - controller.Visualizer.GameObjectProxy != null) - { - controller.Visualizer.GameObjectProxy.SetActive(false); - } - - ActiveControllers.Remove(inputDevice); - } - } - } - - /// - /// Gets the concrete type of the detected controller, based on the and defined per-platform. - /// - /// The current controller type. - /// The concrete type of the currently detected controller. - protected virtual Type GetControllerType(SupportedControllerType supportedControllerType) - { - return typeof(GenericXRSDKController); - } - - /// - /// Returns the of the currently detected controller, based on the . - /// - /// The current controller type. - /// The enum value of the currently detected controller's InputSource type. - protected virtual InputSourceType GetInputSourceType(SupportedControllerType supportedControllerType) - { - return InputSourceType.Controller; - } - - /// - /// Gets the current controller type for the InputDevice name provided. - /// - /// The InputDevice from XR SDK. - /// The supported controller type. - protected virtual SupportedControllerType GetCurrentControllerType(InputDevice inputDevice) - { - Debug.Log($"{inputDevice.name} does not have a defined controller type, falling back to generic controller type"); - return SupportedControllerType.GenericUnity; - } - - #endregion Controller Utilities - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs.meta deleted file mode 100644 index 4efaff0e2..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKDeviceManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2d60428b6b88fc646909748d6b0d90b9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs b/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs deleted file mode 100644 index 8109e5515..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine.XR; - -namespace Microsoft.MixedReality.Toolkit.XRSDK -{ - /// - /// A helper class to provide easier access to active Unity XR SDK subsystems. - /// - [Obsolete("Use Microsoft.MixedReality.Toolkit.Utilities.XRSubsystemHelpers instead.")] - public static class XRSDKSubsystemHelpers - { - /// - /// The XR SDK input subsystem for the currently loaded XR plug-in. - /// - public static XRInputSubsystem InputSubsystem => XRSubsystemHelpers.InputSubsystem; - - /// - /// The XR SDK mesh subsystem for the currently loaded XR plug-in. - /// - public static XRMeshSubsystem MeshSubsystem => XRSubsystemHelpers.MeshSubsystem; - - /// - /// The XR SDK display subsystem for the currently loaded XR plug-in. - /// - public static XRDisplaySubsystem DisplaySubsystem => XRSubsystemHelpers.DisplaySubsystem; - } -} diff --git a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs.meta b/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs.meta deleted file mode 100644 index 1bce3475e..000000000 --- a/AR-ROS/Assets/MRTK/Providers/XRSDK/XRSDKSubsystemHelpers.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bcbbcd07fc4266742ad6b37a6a857785 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK.meta b/AR-ROS/Assets/MRTK/SDK.meta deleted file mode 100644 index b18db8caa..000000000 --- a/AR-ROS/Assets/MRTK/SDK.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3757e34bc1fa460892b4e2bc9fd47e1e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs.meta deleted file mode 100644 index cda9807e9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: be40743ee322bdc43b0790a2ead9773b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor.meta b/AR-ROS/Assets/MRTK/SDK/Editor.meta deleted file mode 100644 index c55ba573f..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7c5c2d1639a186f44aadbe4115f28290 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index c9cc746fc..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c4ee814ca4cd705499f495d696920953 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors.meta deleted file mode 100644 index ceff6bd53..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3282d1a8c54c40d396b6c00938904ce0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell.meta deleted file mode 100644 index 787387773..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f3ba00930c6b92d42bb47830f4a7193f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs deleted file mode 100644 index aa33761be..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Experimental.Dwell.Editor -{ - [CustomEditor(typeof(DwellHandler), true)] - public class DwellHandlerInspector : UnityEditor.Editor - { - private UnityEditor.Editor _editor; - - public override void OnInspectorGUI() - { - var dwellProfileAsset = this.serializedObject.FindProperty("dwellProfile"); - EditorGUILayout.PropertyField(dwellProfileAsset, true); - - EditorGUILayout.Foldout(true, "Dwell Profile Properties", true); - EditorGUI.indentLevel++; - if (dwellProfileAsset.objectReferenceValue != null) - { - CreateCachedEditor(dwellProfileAsset.objectReferenceValue, null, ref _editor); - _editor.OnInspectorGUI(); - } - EditorGUI.indentLevel--; - - EditorGUILayout.PropertyField(this.serializedObject.FindProperty("DwellIntended"), true); - EditorGUILayout.PropertyField(this.serializedObject.FindProperty("DwellStarted"), true); - EditorGUILayout.PropertyField(this.serializedObject.FindProperty("DwellCompleted"), true); - EditorGUILayout.PropertyField(this.serializedObject.FindProperty("DwellCanceled"), true); - - this.serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs.meta deleted file mode 100644 index 50235ca96..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Dwell/DwellHandlerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5c93383f3b343874a9be57b4a3ff76ac -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input.meta deleted file mode 100644 index 790add0db..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9eeb8de6fd1340aeae35e60e5265f1e5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers.meta deleted file mode 100644 index d35323d3b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cc29cf9d38394acea8e158105e7de42e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs deleted file mode 100644 index a5e3571f4..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - public class BaseInputHandlerInspector : UnityEditor.Editor - { - private SerializedProperty isFocusRequiredProperty; - - protected virtual void OnEnable() - { - isFocusRequiredProperty = serializedObject.FindProperty("isFocusRequired"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(isFocusRequiredProperty); - serializedObject.ApplyModifiedProperties(); - } - - /// - /// If MRTK is not initialized in scene, then show an error message and button to add MRTK to the scene - /// If MRTK does not has an active profile, show an error message - /// - /// true if MRTK is initialized and has active profile, false otherwise - protected bool CheckMixedRealityToolkit() - { - if (!MixedRealityToolkit.IsInitialized) - { - EditorGUILayout.HelpBox("There is no MRTK instance in the scene. Some properties may not be editable.", MessageType.Error); - if (GUILayout.Button(new GUIContent("Add Mixed Reality Toolkit instance to scene"), EditorStyles.miniButton)) - { - MixedRealityInspectorUtility.AddMixedRealityToolkitToScene(MixedRealityInspectorUtility.GetDefaultConfigProfile()); - // After the toolkit has been created, set the selection back to this item so the user doesn't get lost - Selection.activeObject = target; - } - return false; - } - else if (!MixedRealityToolkit.Instance.HasActiveProfile) - { - EditorGUILayout.HelpBox("There is no active profile assigned in the current MRTK instance. Some properties may not be editable.", MessageType.Error); - return false; - } - - return true; - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs.meta deleted file mode 100644 index e6a6010ca..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/BaseInputHandlerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 52c84dc4a89a4a69a45cc9754eab2531 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs deleted file mode 100644 index 4011503a8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(ControllerPoseSynchronizer))] - public class ControllerPoseSynchronizerInspector : UnityEditor.Editor - { - private const string SynchronizationSettingsKey = "MRTK_Inspector_SynchronizationSettingsFoldout"; - - private static bool synchronizationSettingsFoldout = true; - - private SerializedProperty handedness; - private SerializedProperty useSourcePoseData; - private SerializedProperty poseAction; - private SerializedProperty destroyOnSourceLost; - - protected bool DrawHandednessProperty = true; - - protected virtual void OnEnable() - { - synchronizationSettingsFoldout = SessionState.GetBool(SynchronizationSettingsKey, synchronizationSettingsFoldout); - handedness = serializedObject.FindProperty("handedness"); - useSourcePoseData = serializedObject.FindProperty("useSourcePoseData"); - poseAction = serializedObject.FindProperty("poseAction"); - destroyOnSourceLost = serializedObject.FindProperty("destroyOnSourceLost"); - } - - public override void OnInspectorGUI() - { - if (target != null) - { - InspectorUIUtility.RenderHelpURL(target.GetType()); - } - - serializedObject.Update(); - - using (var c = new EditorGUI.ChangeCheckScope()) - { - synchronizationSettingsFoldout = EditorGUILayout.Foldout(synchronizationSettingsFoldout, "Synchronization Settings", true); - if (c.changed) - { - SessionState.SetBool(SynchronizationSettingsKey, synchronizationSettingsFoldout); - } - } - - if (!synchronizationSettingsFoldout) - { - return; - } - - using (new EditorGUI.IndentLevelScope()) - { - if (DrawHandednessProperty) - { - Rect position = EditorGUILayout.GetControlRect(); - var label = new GUIContent(handedness.displayName); - using (new EditorGUI.PropertyScope(position, label, handedness)) - { - var currentHandedness = (Handedness)handedness.enumValueIndex; - - handedness.enumValueIndex = (int)(Handedness)EditorGUI.EnumPopup(position, label, currentHandedness, - (value) => { return (Handedness)value == Handedness.Left || (Handedness)value == Handedness.Right; }); - } - } - - EditorGUILayout.PropertyField(destroyOnSourceLost); - EditorGUILayout.PropertyField(useSourcePoseData); - - if (!useSourcePoseData.boolValue) - { - EditorGUILayout.PropertyField(poseAction); - } - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs.meta deleted file mode 100644 index 04206a29d..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/ControllerPoseSynchronizerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5f15683e58cc45b99d689c9c0af80b44 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs deleted file mode 100644 index b6ce09481..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(MixedRealityControllerVisualizer), true)] - public class MixedRealityControllerVisualizerInspector : ControllerPoseSynchronizerInspector { } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs.meta deleted file mode 100644 index 704200511..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/MixedRealityControllerVisualizerInspector.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 0814522a8be2421680586288f29b3014 -timeCreated: 1533592451 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs deleted file mode 100644 index 92f7c1779..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs +++ /dev/null @@ -1,223 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Collections.Generic; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(SpeechInputHandler))] - public class SpeechInputHandlerInspector : BaseInputHandlerInspector - { - private static readonly GUIContent RemoveButtonContent = new GUIContent("-", "Remove keyword"); - private static readonly GUIContent AddButtonContent = new GUIContent("+", "Add keyword"); - private static readonly GUIContent KeywordContent = new GUIContent("Keyword", "Speech keyword item"); - private static readonly GUILayoutOption MiniButtonWidth = GUILayout.Width(20.0f); - - private string[] distinctRegisteredKeywords; - - private SerializedProperty keywordsProperty; - private SerializedProperty persistentKeywordsProperty; - private SerializedProperty speechConfirmationTooltipPrefabProperty; - - protected override void OnEnable() - { - base.OnEnable(); - - keywordsProperty = serializedObject.FindProperty("keywords"); - persistentKeywordsProperty = serializedObject.FindProperty("persistentKeywords"); - speechConfirmationTooltipPrefabProperty = serializedObject.FindProperty("speechConfirmationTooltipPrefab"); - - if (MixedRealityInspectorUtility.CheckMixedRealityConfigured(false)) - { - distinctRegisteredKeywords = GetDistinctRegisteredKeywords(); - } - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - bool enabled = CheckMixedRealityToolkit(); - if (enabled) - { - if (!MixedRealityToolkit.Instance.ActiveProfile.IsInputSystemEnabled) - { - EditorGUILayout.HelpBox("No input system is enabled, or you need to specify the type in the main configuration profile.", MessageType.Warning); - } - - if (MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile == null) - { - EditorGUILayout.HelpBox("No Input System Profile Found, be sure to specify a profile in the main configuration profile.", MessageType.Error); - enabled = false; - } - else if (MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.SpeechCommandsProfile == null) - { - EditorGUILayout.HelpBox("No Speech Commands profile Found, be sure to specify a profile in the Input System's configuration profile.", MessageType.Error); - enabled = false; - } - } - - bool validKeywords = distinctRegisteredKeywords != null && distinctRegisteredKeywords.Length != 0; - - // If we should be enabled but there are no valid keywords, alert developer - if (enabled && !validKeywords) - { - distinctRegisteredKeywords = GetDistinctRegisteredKeywords(); - EditorGUILayout.HelpBox("No keywords registered. Some properties may not be editable.\n\nKeywords can be registered via Speech Commands Profile on the Mixed Reality Toolkit's Configuration Profile.", MessageType.Error); - } - enabled = enabled && validKeywords; - - serializedObject.Update(); - EditorGUILayout.PropertyField(persistentKeywordsProperty); - EditorGUILayout.PropertyField(speechConfirmationTooltipPrefabProperty); - - bool wasGUIEnabled = GUI.enabled; - GUI.enabled = enabled; - - ShowList(keywordsProperty); - - GUI.enabled = wasGUIEnabled; - - serializedObject.ApplyModifiedProperties(); - - // error and warning messages - if (keywordsProperty.arraySize == 0) - { - EditorGUILayout.HelpBox("No keywords have been assigned!", MessageType.Warning); - } - else - { - var handler = (SpeechInputHandler)target; - string duplicateKeyword = handler.Keywords - .GroupBy(keyword => keyword.Keyword.ToLower()) - .Where(group => group.Count() > 1) - .Select(group => group.Key).FirstOrDefault(); - - if (duplicateKeyword != null) - { - EditorGUILayout.HelpBox($"Keyword \'{duplicateKeyword}\' is assigned more than once!", MessageType.Warning); - } - } - } - - private void ShowList(SerializedProperty list) - { - using (new EditorGUI.IndentLevelScope()) - { - // remove the keywords already assigned from the registered list - var handler = (SpeechInputHandler)target; - var availableKeywords = System.Array.Empty(); - - if (handler.Keywords != null && distinctRegisteredKeywords != null) - { - availableKeywords = distinctRegisteredKeywords.Except(handler.Keywords.Select(keywordAndResponse => keywordAndResponse.Keyword)).ToArray(); - } - - // keyword rows - for (int index = 0; index < list.arraySize; index++) - { - // the element - SerializedProperty speechCommandProperty = list.GetArrayElementAtIndex(index); - GUILayout.BeginHorizontal(); - bool elementExpanded = EditorGUILayout.PropertyField(speechCommandProperty); - GUILayout.FlexibleSpace(); - // the remove element button - bool elementRemoved = GUILayout.Button(RemoveButtonContent, EditorStyles.miniButton, MiniButtonWidth); - - GUILayout.EndHorizontal(); - - if (elementRemoved) - { - list.DeleteArrayElementAtIndex(index); - - if (index == list.arraySize) - { - EditorGUI.indentLevel--; - return; - } - } - - SerializedProperty keywordProperty = speechCommandProperty.FindPropertyRelative("keyword"); - - bool invalidKeyword = true; - if (distinctRegisteredKeywords != null) - { - foreach (string keyword in distinctRegisteredKeywords) - { - if (keyword == keywordProperty.stringValue) - { - invalidKeyword = false; - break; - } - } - } - - if (invalidKeyword) - { - EditorGUILayout.HelpBox("Registered keyword is not recognized in the speech command profile!", MessageType.Error); - } - - if (!elementRemoved && elementExpanded) - { - Rect position = EditorGUILayout.GetControlRect(); - using (new EditorGUI.PropertyScope(position, KeywordContent, keywordProperty)) - { - string[] keywords = availableKeywords.Concat(new[] { keywordProperty.stringValue }).OrderBy(keyword => keyword).ToArray(); - int previousSelection = ArrayUtility.IndexOf(keywords, keywordProperty.stringValue); - int currentSelection = EditorGUILayout.Popup(KeywordContent, previousSelection, keywords); - - if (currentSelection != previousSelection) - { - keywordProperty.stringValue = keywords[currentSelection]; - } - } - - SerializedProperty responseProperty = speechCommandProperty.FindPropertyRelative("response"); - EditorGUILayout.PropertyField(responseProperty, true); - } - } - - // add button row - using (new EditorGUILayout.HorizontalScope()) - { - GUILayout.FlexibleSpace(); - - // the add element button - if (GUILayout.Button(AddButtonContent, EditorStyles.miniButton, MiniButtonWidth)) - { - var index = list.arraySize; - list.InsertArrayElementAtIndex(index); - var elementProperty = list.GetArrayElementAtIndex(index); - SerializedProperty keywordProperty = elementProperty.FindPropertyRelative("keyword"); - keywordProperty.stringValue = string.Empty; - } - } - } - } - - private static string[] GetDistinctRegisteredKeywords() - { - if (!MixedRealityToolkit.IsInitialized || - !MixedRealityToolkit.Instance.HasActiveProfile || - !MixedRealityToolkit.Instance.ActiveProfile.IsInputSystemEnabled || - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.SpeechCommandsProfile == null || - MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.SpeechCommandsProfile.SpeechCommands.Length == 0) - { - return null; - } - - List keywords = new List(); - var speechCommands = MixedRealityToolkit.Instance.ActiveProfile.InputSystemProfile.SpeechCommandsProfile.SpeechCommands; - for (var i = 0; i < speechCommands.Length; i++) - { - keywords.Add(speechCommands[i].Keyword); - } - - return keywords.Distinct().ToArray(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs.meta deleted file mode 100644 index 94190fde7..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Input/Handlers/SpeechInputHandlerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 70670e62ce1649a294e0ceea9ddbdbed -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX.meta deleted file mode 100644 index 3930a7a32..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 740faf7a7bc64a8da583b054aba16895 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox.meta deleted file mode 100644 index 7fe3bc95a..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: dc1c606dafca5c141b14eca6fe00f58b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs deleted file mode 100644 index d814e1b60..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs +++ /dev/null @@ -1,53 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -// - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(BoundingBox))] - [CanEditMultipleObjects] - public class BoundingBoxInspector : UnityEditor.Editor - { - public override void OnInspectorGUI() - { - // Draws warning message for deprecated object with button for migration option - MigrationTool.DrawDeprecated((BoundingBox)target); - - if (target != null) - { - // check if rigidbody is attached - if so show warning in case input profile is not configured for individual collider raycast - BoundingBox boundingBox = (BoundingBox)target; - Rigidbody rigidBody = boundingBox.GetComponent(); - - if (rigidBody != null) - { - MixedRealityInputSystemProfile profile = CoreServices.InputSystem?.InputSystemProfile; - if (profile != null && profile.FocusIndividualCompoundCollider == false) - { - EditorGUILayout.Space(); - // show warning and button to reconfigure profile - EditorGUILayout.HelpBox($"When using Bounding Box in combination with Rigidbody 'Focus Individual Compound Collider' must be enabled in Input Profile.", UnityEditor.MessageType.Warning); - if (GUILayout.Button($"Enable 'Focus Individual Compound Collider' in Input Profile")) - { - profile.FocusIndividualCompoundCollider = true; - } - - EditorGUILayout.Space(); - } - } - - InspectorUIUtility.RenderHelpURL(target.GetType()); - } - - DrawDefaultInspector(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs.meta deleted file mode 100644 index e469b96b7..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundingBox/BoundingBoxInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 008a231579837e543bcf566bdde62616 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl.meta deleted file mode 100644 index f5d335158..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 52dfc78c78d42ef4f9a07015f6c84ed6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs deleted file mode 100644 index ddfc88d06..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs +++ /dev/null @@ -1,221 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -// - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.UI.BoundsControl; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.Experimental.Editor; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(BoundsControl), true)] - [CanEditMultipleObjects] - public class BoundsControlInspector : UnityEditor.Editor - { - private SerializedProperty targetObject; - private SerializedProperty boundsOverride; - private SerializedProperty boundsCalculationMethod; - private SerializedProperty activationType; - private SerializedProperty controlPadding; - private SerializedProperty flattenAxis; - - private SerializedProperty smoothingActive; - private SerializedProperty rotateLerpTime; - private SerializedProperty scaleLerpTime; - - // Configs - private SerializedProperty boxDisplayConfiguration; - private SerializedProperty linksConfiguration; - private SerializedProperty scaleHandlesConfiguration; - private SerializedProperty rotationHandlesConfiguration; - private SerializedProperty translationHandlesConfiguration; - private SerializedProperty proximityEffectConfiguration; - - // Debug - private SerializedProperty hideElementsInHierarchyEditor; - - // Events - private SerializedProperty rotateStartedEvent; - private SerializedProperty rotateStoppedEvent; - private SerializedProperty scaleStartedEvent; - private SerializedProperty scaleStoppedEvent; - private SerializedProperty translateStartedEvent; - private SerializedProperty translateStoppedEvent; - - private SerializedProperty enableConstraints; - private SerializedProperty constraintManager; - - private SerializedProperty elasticsManager; - - private BoundsControl boundsControl; - - private static bool showBoxConfiguration = false; - private static bool showScaleHandlesConfiguration = false; - private static bool showRotationHandlesConfiguration = false; - private static bool showTranslationHandlesConfiguration = false; - private static bool showLinksConfiguration = false; - private static bool showProximityConfiguration = false; - private static bool constraintsFoldout = true; - - private void OnEnable() - { - boundsControl = (BoundsControl)target; - - targetObject = serializedObject.FindProperty("targetObject"); - activationType = serializedObject.FindProperty("activation"); - boundsOverride = serializedObject.FindProperty("boundsOverride"); - boundsCalculationMethod = serializedObject.FindProperty("boundsCalculationMethod"); - flattenAxis = serializedObject.FindProperty("flattenAxis"); - controlPadding = serializedObject.FindProperty("boxPadding"); - - smoothingActive = serializedObject.FindProperty("smoothingActive"); - rotateLerpTime = serializedObject.FindProperty("rotateLerpTime"); - scaleLerpTime = serializedObject.FindProperty("scaleLerpTime"); - - boxDisplayConfiguration = serializedObject.FindProperty("boxDisplayConfiguration"); - linksConfiguration = serializedObject.FindProperty("linksConfiguration"); - scaleHandlesConfiguration = serializedObject.FindProperty("scaleHandlesConfiguration"); - rotationHandlesConfiguration = serializedObject.FindProperty("rotationHandlesConfiguration"); - translationHandlesConfiguration = serializedObject.FindProperty("translationHandlesConfiguration"); - proximityEffectConfiguration = serializedObject.FindProperty("handleProximityEffectConfiguration"); - - hideElementsInHierarchyEditor = serializedObject.FindProperty("hideElementsInInspector"); - - rotateStartedEvent = serializedObject.FindProperty("rotateStarted"); - rotateStoppedEvent = serializedObject.FindProperty("rotateStopped"); - scaleStartedEvent = serializedObject.FindProperty("scaleStarted"); - scaleStoppedEvent = serializedObject.FindProperty("scaleStopped"); - translateStartedEvent = serializedObject.FindProperty("translateStarted"); - translateStoppedEvent = serializedObject.FindProperty("translateStopped"); - - // constraints - enableConstraints = serializedObject.FindProperty("enableConstraints"); - constraintManager = serializedObject.FindProperty("constraintsManager"); - - // Elastics - elasticsManager = serializedObject.FindProperty("elasticsManager"); - } - - public override void OnInspectorGUI() - { - if (target != null) - { - // Notification section - first thing to show in bounds control component - DrawRigidBodyWarning(); - - // Help url - InspectorUIUtility.RenderHelpURL(target.GetType()); - - // Data section - { - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(targetObject); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField(new GUIContent("Behavior"), EditorStyles.boldLabel); - EditorGUILayout.PropertyField(activationType); - EditorGUILayout.PropertyField(boundsOverride); - EditorGUILayout.PropertyField(boundsCalculationMethod); - EditorGUILayout.PropertyField(controlPadding); - EditorGUILayout.PropertyField(flattenAxis); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField(new GUIContent("Smoothing"), EditorStyles.boldLabel); - EditorGUILayout.PropertyField(smoothingActive); - EditorGUILayout.PropertyField(scaleLerpTime); - EditorGUILayout.PropertyField(rotateLerpTime); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField(new GUIContent("Visuals", "Bounds Control Visual Configurations"), EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - using (new EditorGUI.IndentLevelScope()) - { - showBoxConfiguration = InspectorUIUtility.DrawScriptableFoldout(boxDisplayConfiguration, - "Box Configuration", - showBoxConfiguration); - - showScaleHandlesConfiguration = InspectorUIUtility.DrawScriptableFoldout(scaleHandlesConfiguration, - "Scale Handles Configuration", - showScaleHandlesConfiguration); - - showRotationHandlesConfiguration = InspectorUIUtility.DrawScriptableFoldout(rotationHandlesConfiguration, - "Rotation Handles Configuration", - showRotationHandlesConfiguration); - - showTranslationHandlesConfiguration = InspectorUIUtility.DrawScriptableFoldout(translationHandlesConfiguration, - "Translation Handles Configuration", - showTranslationHandlesConfiguration); - - showLinksConfiguration = InspectorUIUtility.DrawScriptableFoldout(linksConfiguration, - "Links Configuration", - showLinksConfiguration); - - showProximityConfiguration = InspectorUIUtility.DrawScriptableFoldout(proximityEffectConfiguration, - "Proximity Configuration", - showProximityConfiguration); - } - - EditorGUILayout.Space(); - - constraintsFoldout = ConstraintManagerInspector.DrawConstraintManagerFoldout(boundsControl.gameObject, - enableConstraints, - constraintManager, - constraintsFoldout); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField(new GUIContent("Events", "Bounds Control Events"), EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - { - EditorGUILayout.PropertyField(rotateStartedEvent); - EditorGUILayout.PropertyField(rotateStoppedEvent); - EditorGUILayout.PropertyField(scaleStartedEvent); - EditorGUILayout.PropertyField(scaleStoppedEvent); - EditorGUILayout.PropertyField(translateStartedEvent); - EditorGUILayout.PropertyField(translateStoppedEvent); - } - - EditorGUILayout.Space(); - - ElasticsManagerInspector.DrawElasticsManagerLink(elasticsManager, boundsControl.gameObject); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField(new GUIContent("Debug", "Bounds Control Debug Section"), EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - { - EditorGUILayout.PropertyField(hideElementsInHierarchyEditor); - } - - if (EditorGUI.EndChangeCheck()) - { - serializedObject.ApplyModifiedProperties(); - } - } - } - } - - private void DrawRigidBodyWarning() - { - // Check if rigidbody is attached - if so show warning in case input profile is not configured for individual collider raycast - Rigidbody rigidBody = boundsControl.GetComponent(); - - if (rigidBody != null) - { - MixedRealityInputSystemProfile profile = Microsoft.MixedReality.Toolkit.CoreServices.InputSystem?.InputSystemProfile; - if (profile != null && profile.FocusIndividualCompoundCollider == false) - { - EditorGUILayout.Space(); - // Show warning and button to reconfigure profile - EditorGUILayout.HelpBox($"When using Bounds Control in combination with Rigidbody 'Focus Individual Compound Collider' must be enabled in Input Profile.", UnityEditor.MessageType.Warning); - if (GUILayout.Button($"Enable 'Focus Individual Compound Collider' in Input Profile")) - { - profile.FocusIndividualCompoundCollider = true; - } - - EditorGUILayout.Space(); - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs.meta deleted file mode 100644 index 70075cef3..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/BoundsControl/BoundsControlInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 810084785a25b3742afecb9e1bd512cb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections.meta deleted file mode 100644 index e99769f02..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9022e9a728cef4d4298b7d0a4a6edd9f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs deleted file mode 100644 index 4a70eb9f8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(BaseObjectCollection), true)] - public class BaseCollectionInspector : UnityEditor.Editor - { - private SerializedProperty ignoreInactiveTransforms; - private SerializedProperty sortType; - - protected virtual void OnEnable() - { - ignoreInactiveTransforms = serializedObject.FindProperty("ignoreInactiveTransforms"); - sortType = serializedObject.FindProperty("sortType"); - } - - sealed public override void OnInspectorGUI() - { - if (target != null) - { - InspectorUIUtility.RenderHelpURL(target.GetType()); - } - - serializedObject.Update(); - EditorGUILayout.PropertyField(ignoreInactiveTransforms); - EditorGUILayout.PropertyField(sortType); - OnInspectorGUIInsertion(); - serializedObject.ApplyModifiedProperties(); - - // Place the button at the bottom - BaseObjectCollection collection = (BaseObjectCollection)target; - if (GUILayout.Button("Update Collection")) - { - collection.UpdateCollection(); - } - } - - protected virtual void OnInspectorGUIInsertion() { } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs.meta deleted file mode 100644 index d4d745b04..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/BaseCollectionInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d0b14fb4b7e0f614e8587db8bf3d2adf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs deleted file mode 100644 index 5ed9cdd3b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(GridObjectCollection), true)] - public class GridObjectCollectionInspector : BaseCollectionInspector - { - private SerializedProperty surfaceType; - private SerializedProperty orientType; - private SerializedProperty layout; - private SerializedProperty radius; - private SerializedProperty radialRange; - private SerializedProperty distance; - private SerializedProperty rows; - private SerializedProperty cols; - private SerializedProperty cellWidth; - private SerializedProperty cellHeight; - private SerializedProperty anchor; - private SerializedProperty anchorAlongAxis; - private SerializedProperty rowAlignment; - private SerializedProperty columnAlignment; - - - protected override void OnEnable() - { - base.OnEnable(); - surfaceType = serializedObject.FindProperty("surfaceType"); - orientType = serializedObject.FindProperty("orientType"); - layout = serializedObject.FindProperty("layout"); - radius = serializedObject.FindProperty("radius"); - distance = serializedObject.FindProperty("distance"); - radialRange = serializedObject.FindProperty("radialRange"); - rows = serializedObject.FindProperty("rows"); - cols = serializedObject.FindProperty("columns"); - cellWidth = serializedObject.FindProperty("cellWidth"); - cellHeight = serializedObject.FindProperty("cellHeight"); - anchor = serializedObject.FindProperty("anchor"); - anchorAlongAxis = serializedObject.FindProperty("anchorAlongAxis"); - rowAlignment = serializedObject.FindProperty("rowAlignment"); - columnAlignment = serializedObject.FindProperty("columnAlignment"); - } - - protected override void OnInspectorGUIInsertion() - { - EditorGUILayout.PropertyField(surfaceType); - EditorGUILayout.PropertyField(orientType); - EditorGUILayout.PropertyField(layout); - - - - LayoutOrder layoutTypeIndex = (LayoutOrder)layout.enumValueIndex; - if (layoutTypeIndex == LayoutOrder.ColumnThenRow) - { - EditorGUILayout.HelpBox("ColumnThenRow will lay out content first horizontally (by column), then vertically (by row). NumColumns specifies number of columns per row.", MessageType.Info); - EditorGUILayout.PropertyField(cols, new GUIContent("Num Columns", "Number of columns per row.")); - EditorGUILayout.PropertyField(columnAlignment); - } - else if (layoutTypeIndex == LayoutOrder.RowThenColumn) - { - EditorGUILayout.HelpBox("RowThenColumns will lay out content first vertically (by row), then horizontally (by column). NumRows specifies number of rows per column.", MessageType.Info); - EditorGUILayout.PropertyField(rows, new GUIContent("Num Rows", "Number of rows per column.")); - EditorGUILayout.PropertyField(rowAlignment); - } - else - { - // do not show rows / cols field - } - - if (layoutTypeIndex != LayoutOrder.Vertical) - { - EditorGUILayout.PropertyField(cellWidth); - } - if (layoutTypeIndex != LayoutOrder.Horizontal) - { - EditorGUILayout.PropertyField(cellHeight); - } - - ObjectOrientationSurfaceType surfaceTypeIndex = (ObjectOrientationSurfaceType)surfaceType.enumValueIndex; - if (surfaceTypeIndex == ObjectOrientationSurfaceType.Plane) - { - EditorGUILayout.PropertyField(distance, new GUIContent("Distance from parent", "Distance from parent object's origin")); - } - else - { - EditorGUILayout.PropertyField(radius); - EditorGUILayout.PropertyField(radialRange); - } - - if (surfaceTypeIndex != ObjectOrientationSurfaceType.Radial) - { - // layout anchor has no effect on radial layout, it is always at center. - EditorGUILayout.PropertyField(anchor); - } - - LayoutAnchor layoutAnchor = (LayoutAnchor)anchor.enumValueIndex; - if (layoutAnchor != LayoutAnchor.MiddleCenter) - { - EditorGUILayout.PropertyField(anchorAlongAxis); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs.meta deleted file mode 100644 index 67d8e1c14..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Collections/GridObjectCollectionInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6275bf9dddeb8ab479f66923b646429b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints.meta deleted file mode 100644 index 9e79ab73e..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 90f467fe25a5a7f4193007be58e30375 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs deleted file mode 100644 index d2abc1dbe..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs +++ /dev/null @@ -1,366 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -// - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; -using Microsoft.MixedReality.Toolkit.UI; -using System; -using System.Linq; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// Custom inspector for constraint manager. - /// Offers two modes depending on if auto constraint selection is active or not. - /// In auto constraint selection mode, all constraints attached to the current game object - /// will be displayed with respective goto buttons as well as an add button that allows adding - /// new constraint components to the game object. - /// In manual constraint selection mode, a list of user configured constraints is shown with options - /// to modify the list, goto buttons as well as adding new constraints to the game object. - /// - [CustomEditor(typeof(ConstraintManager), true)] - [CanEditMultipleObjects] - public class ConstraintManagerInspector : UnityEditor.Editor - { - private SerializedProperty autoConstraintSelection; - private SerializedProperty selectedConstraints; - - private ConstraintManager constraintManager; - - private const string autoMsg = "Constraint manager is currently set to auto mode. In auto mode all" + - " constraints attached to this gameobject will automatically be processed by this manager."; - private const string manualMsg = "Constraint manager is currently set to manual mode. In manual mode" + - " only constraints that are linked in the below component list will be processed by this manager."; - - private List indicesToRemove = new List(); // list for deferred deletion in our selected constraint list to not break unity GUI layout - - private void OnEnable() - { - constraintManager = (ConstraintManager)target; - - autoConstraintSelection = serializedObject.FindProperty("autoConstraintSelection"); - selectedConstraints = serializedObject.FindProperty("selectedConstraints"); - } - - private enum EntryAction - { - None, - Attach, - Detach, - AddAndAttach, - Highlight - } - - private static EntryAction RenderManualConstraintItem(SerializedProperty constraintEntry, bool canRemove = true) - { - var constraint = constraintEntry.objectReferenceValue; - if (constraint == null) - { - // clean up deleted constraints - return EntryAction.Detach; - } - - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField(constraint.GetType().Name, GUILayout.ExpandWidth(true)); - - if (canRemove) - { - if (InspectorUIUtility.FlexButton(new GUIContent("Go to Constraint", "Scroll inspector to and visually highlight constraint."))) - { - return EntryAction.Highlight; - } - - if (InspectorUIUtility.FlexButton(new GUIContent("Remove Entry", "Remove constraint from constraint manager but keep constraint component attached to the gameobject."))) - { - return EntryAction.Detach; - } - } - return EntryAction.None; - } - } - - private void AddNewConstraint(Type t) - { - var constraint = constraintManager.gameObject.AddComponent((Type)t); - AttachConstraint((TransformConstraint)constraint); - } - - private void AttachConstraint(TransformConstraint constraint) - { - int newElementIndex = selectedConstraints.arraySize; - selectedConstraints.InsertArrayElementAtIndex(newElementIndex); - selectedConstraints.GetArrayElementAtIndex(newElementIndex).objectReferenceValue = constraint; - serializedObject.ApplyModifiedProperties(); - } - - private void RenderAutoConstraintMenu() - { - // component list - var constraints = constraintManager.gameObject.GetComponents(); - foreach (var constraint in constraints) - { - using (new EditorGUILayout.HorizontalScope()) - { - string constraintName = constraint.GetType().Name; - EditorGUILayout.LabelField(constraintName); - if (GUILayout.Button("Go to component")) - { - Highlighter.Highlight("Inspector", $"{ObjectNames.NicifyVariableName(constraintName)} (Script)"); - EditorGUIUtility.ExitGUI(); - } - } - } - - // add button - if (EditorGUILayout.DropdownButton(new GUIContent("Add Constraint to GameObject", "Add a constraint to the gameobject that will be picked up by the constraint manager auto mode."), FocusType.Keyboard)) - { - // create the menu and add items to it - GenericMenu menu = new GenericMenu(); - - var type = typeof(TransformConstraint); - var types = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(s => s.GetLoadableTypes()) - .Where(p => type.IsAssignableFrom(p) && !p.IsAbstract); - - foreach (var derivedType in types) - { - menu.AddItem(new GUIContent(derivedType.Name), false, t => - constraintManager.gameObject.AddComponent((Type)t), derivedType); - } - - menu.ShowAsContext(); - } - } - - private void RenderManualConstraintMenu() - { - for (int i = 0; i < selectedConstraints.arraySize; i++) - { - SerializedProperty constraintProperty = selectedConstraints.GetArrayElementAtIndex(i); - var buttonAction = RenderManualConstraintItem(constraintProperty, true); - if (buttonAction == EntryAction.Detach) - { - indicesToRemove.Add(i); - } - else if (buttonAction == EntryAction.Highlight) - { - string constraintName = constraintProperty.objectReferenceValue.GetType().Name; - Highlighter.Highlight("Inspector", $"{ObjectNames.NicifyVariableName(constraintName)} (Script)"); - EditorGUIUtility.ExitGUI(); - } - } - - // add buttons - { - using (new EditorGUILayout.HorizontalScope()) - { - if (EditorGUILayout.DropdownButton(new GUIContent("Add Entry", "Attach an already existing component from this gameobject to the constraint manager selection."), FocusType.Keyboard)) - { - // create the menu and add items to it - GenericMenu menu = new GenericMenu(); - - var constraints = constraintManager.gameObject.GetComponents(); - - bool hasEntries = false; - foreach (var constraint in constraints) - { - // only show available constraints that haven't been added yet - var existingConstraint = constraintManager.SelectedConstraints.Find(t => t == constraint); - if (existingConstraint == null) - { - hasEntries = true; - string constraintName = constraint.GetType().Name; - menu.AddItem(new GUIContent(constraintName), false, t => - AttachConstraint((TransformConstraint)t), constraint); - } - } - - // if all constraint components are already part of the list display disabled "no constraint available" entry - if (hasEntries == false) - { - var guiEnabledRestore = GUI.enabled; - GUI.enabled = false; - menu.AddItem(new GUIContent("No constraint available", - "Either there's no constraint attached to this game object or all available constraints " + - "are already part of the list."), false, null); - GUI.enabled = guiEnabledRestore; - } - - menu.ShowAsContext(); - } - - if (EditorGUILayout.DropdownButton(new GUIContent("Add New Constraint", "Add a constraint to the gameobject and attach to this constraint manager selection."), FocusType.Keyboard)) - { - // create the menu and add items to it - GenericMenu menu = new GenericMenu(); - - var type = typeof(TransformConstraint); - var types = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(s => s.GetLoadableTypes()) - .Where(p => type.IsAssignableFrom(p) && !p.IsAbstract); - - foreach (var derivedType in types) - { - menu.AddItem(new GUIContent(derivedType.Name), false, t => - AddNewConstraint((Type)t), derivedType); - } - - menu.ShowAsContext(); - } - } - } - } - - public override void OnInspectorGUI() - { - if (target != null) - { - serializedObject.Update(); - - // Help url - InspectorUIUtility.RenderHelpURL(target.GetType()); - - // Data section - using (var check = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.Space(); - - EditorGUILayout.HelpBox(autoConstraintSelection.boolValue == true ? autoMsg : manualMsg - , UnityEditor.MessageType.Info); - EditorGUILayout.Space(); - - int tab = autoConstraintSelection.boolValue == true ? 0 : 1; - tab = GUILayout.Toolbar(tab, new string[] { "Auto Constraint Selection", "Manual Constraint Selection" }); - EditorGUILayout.Space(); - switch (tab) - { - case 0: - autoConstraintSelection.boolValue = true; - RenderAutoConstraintMenu(); - break; - - case 1: - bool oldAutoConstraintSelection = autoConstraintSelection.boolValue; - autoConstraintSelection.boolValue = false; - bool newAutoConstraintSelection = autoConstraintSelection.boolValue; - - // manual constraint selection was enabled - if (newAutoConstraintSelection == false && oldAutoConstraintSelection != newAutoConstraintSelection) - { - // manual selection is active and manual list is empty -> auto populate with - // existing constraints so user has a base to work on - if (selectedConstraints.arraySize == 0) - { - var constraints = constraintManager.gameObject.GetComponents(); - foreach (var constraint in constraints) - { - int currentId = selectedConstraints.arraySize; - selectedConstraints.InsertArrayElementAtIndex(currentId); - selectedConstraints.GetArrayElementAtIndex(currentId).objectReferenceValue = constraint; - } - } - } - - RenderManualConstraintMenu(); - break; - } - - // we render the instance id of this component so our highlighting function can distinguish between - // the different instances of constraint manager - highlighting in the inspector is currently - // only available for string search which causes problems with multiple components of the same type - // attached to the same gameobject. - EditorGUILayout.Space(); - EditorGUILayout.LabelField("ComponentId: " + constraintManager.GetInstanceID(), EditorStyles.miniLabel); - - // deferred delete elements from array to not break unity layout - foreach (int i in indicesToRemove) - { - selectedConstraints.DeleteArrayElementAtIndex(i); - } - - indicesToRemove.Clear(); - - if (check.changed) - { - serializedObject.ApplyModifiedProperties(); - } - } - } - } - - /// - /// Util method for drawing a consistent constraints section. - /// Use this method in a component inspector for linking to a constraint manager. - /// - /// Game object the constraint manager is attached to. - /// Serialized property for enabling the manager - needs to be of type bool. - /// Serialized property of the constraint manager component link - needs to be type of ConstraintManager. - /// Flag for indicating if the constraint foldout was previously collapsed or expanded. - /// Current state of expanded or collapsed constraint foldout. Returns true if expanded / contents visible. - static public bool DrawConstraintManagerFoldout(GameObject gameObject, SerializedProperty managerEnabled, SerializedProperty managerRef, bool isExpanded) - { - isExpanded = EditorGUILayout.Foldout(isExpanded, "Constraints", true); - - if (isExpanded) - { - EditorGUILayout.PropertyField(managerEnabled); - GUI.enabled = managerEnabled.boolValue; - // Make sure we're having at least one constraint manager available. - // Usually this should be ensured by the component requirement. However - // for components that had this requirement added after they were serialized - // this won't work out of the box. - gameObject.EnsureComponent(); - var constraintManagers = gameObject.GetComponents(); - - int selected = 0; - - string[] options = new string[constraintManagers.Length]; - - int manualSelectionCount = 0; - for (int i = 0; i < constraintManagers.Length; ++i) - { - var manager = constraintManagers[i]; - if (managerRef.objectReferenceValue == manager) - { - selected = i; - } - - // popups will only show unqiue elements - // in case of auto selection we don't care which one we're selecting as the behavior will be the same. - // in case of manual selection users might want to differentiate which constraintmanager they are referring to. - if (manager.AutoConstraintSelection == true) - { - options[i] = manager.GetType().Name + " (auto)"; - } - else - { - manualSelectionCount++; - options[i] = manager.GetType().Name + " (manual " + manualSelectionCount + ")"; - } - } - - using (new EditorGUILayout.HorizontalScope()) - { - selected = EditorGUILayout.Popup("Constraint Manager", selected, options, GUILayout.ExpandWidth(true)); - ConstraintManager selectedConstraintManager = constraintManagers[selected]; - managerRef.objectReferenceValue = selectedConstraintManager; - if (GUILayout.Button("Go to component")) - { - EditorGUIUtility.PingObject(selectedConstraintManager); - Highlighter.Highlight("Inspector", $"ComponentId: {selectedConstraintManager.GetInstanceID()}"); - EditorGUIUtility.ExitGUI(); - } - } - - GUI.enabled = true; - } - - return isExpanded; - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs.meta deleted file mode 100644 index ef55a6f2c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Constraints/ConstraintManagerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e578aa1c40884ec4d981e28893fb0f12 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable.meta deleted file mode 100644 index 50a1a51a1..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4df34034e8ceb174c8721f958f91713d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs deleted file mode 100644 index b33ca9d6a..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs +++ /dev/null @@ -1,399 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEditor; -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; - -namespace Microsoft.MixedReality.Toolkit.Inspectors -{ - [CustomEditor(typeof(ButtonConfigHelper)), CanEditMultipleObjects] - public class ButtonConfigHelperInspector : UnityEditor.Editor - { - private const string LabelFoldoutKey = "MRTK.ButtonConfigHelper.Label"; - private const string BasicEventsFoldoutKey = "MRTK.ButtonConfigHelper.BasicEvents"; - private const string IconFoldoutKey = "MRTK.ButtonConfigHelper.Icon"; - private const string ShowComponentsKey = "MRTK.ButtonConfigHelper.ShowComponents"; - - private const string generatedIconSetName = "CustomIconSet"; - private const string customIconSetsFolderName = "CustomIconSets"; - private const string customIconUpgradeMessage = "This button appears to have a custom icon material. This is no longer required for custom icons.\n\n" + - "We recommend upgrading the buttons in your project by installing the Microsoft.MixedRealityToolkit.Unity.Tools package and using the Migration Tool."; - private const string missingIconWarningMessage = "The icon used by this button's custom material was not found in the icon set."; - private const string customIconSetCreatedMessage = "A new icon set has been created to hold your button's custom icons. It has been saved to:\n\n{0}"; - private const string upgradeDocUrl = "https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_Button.html#how-to-change-the-icon-and-text"; - - private SerializedProperty mainLabelTextProp; - private SerializedProperty seeItSayItLabelProp; - private SerializedProperty seeItSatItLabelTextProp; - - private SerializedProperty interactableProp; - - private SerializedProperty iconStyleProp; - private SerializedProperty iconSetProp; - - private SerializedProperty iconCharLabelProp; - private SerializedProperty iconCharProp; - private SerializedProperty iconFontProp; - - private SerializedProperty iconSpriteRendererProp; - private SerializedProperty iconSpriteProp; - - private SerializedProperty iconQuadRendererProp; - private SerializedProperty iconQuadTextureNameIDProp; - private SerializedProperty iconQuadTextureProp; - - private ButtonConfigHelper cb = null; - - private void OnEnable() - { - mainLabelTextProp = serializedObject.FindProperty("mainLabelText"); - seeItSayItLabelProp = serializedObject.FindProperty("seeItSayItLabel"); - seeItSatItLabelTextProp = serializedObject.FindProperty("seeItSatItLabelText"); - - interactableProp = serializedObject.FindProperty("interactable"); - - iconStyleProp = serializedObject.FindProperty("iconStyle"); - iconSetProp = serializedObject.FindProperty("iconSet"); - - iconCharLabelProp = serializedObject.FindProperty("iconCharLabel"); - iconCharProp = serializedObject.FindProperty("iconChar"); - iconFontProp = serializedObject.FindProperty("iconCharFont"); - - iconSpriteRendererProp = serializedObject.FindProperty("iconSpriteRenderer"); - iconSpriteProp = serializedObject.FindProperty("iconSprite"); - - iconQuadRendererProp = serializedObject.FindProperty("iconQuadRenderer"); - iconQuadTextureNameIDProp = serializedObject.FindProperty("iconQuadTextureNameID"); - iconQuadTextureProp = serializedObject.FindProperty("iconQuadTexture"); - } - - public override void OnInspectorGUI() - { - cb = (ButtonConfigHelper)target; - - bool labelFoldout = SessionState.GetBool(LabelFoldoutKey, true); - bool basicEventsFoldout = SessionState.GetBool(BasicEventsFoldoutKey, true); - bool iconFoldout = SessionState.GetBool(IconFoldoutKey, true); - bool showComponents = SessionState.GetBool(ShowComponentsKey, false); - - if (cb.EditorCheckForCustomIcon()) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - EditorGUILayout.LabelField("Custom Icon Migration", EditorStyles.boldLabel); - EditorGUILayout.HelpBox(customIconUpgradeMessage, MessageType.Error); - - using (new EditorGUILayout.HorizontalScope()) - { - if (GUILayout.Button("Use migration tool to upgrade buttons")) - { - if (!EditorApplication.ExecuteMenuItem("Mixed Reality Toolkit/Utilities/Migration Window")) - { - EditorUtility.DisplayDialog("Package Required", "You need to install the MRTK tools (Microsoft.MixedRealityToolkit.Unity.Tools) package to use the Migration Tool", "OK"); - } - } - - InspectorUIUtility.RenderDocumentationButton(upgradeDocUrl); - } - } - } - - showComponents = EditorGUILayout.Toggle("Show Component References", showComponents); - - ButtonIconStyle oldStyle = (ButtonIconStyle)iconStyleProp.enumValueIndex; - - using (new EditorGUI.IndentLevelScope(1)) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - labelFoldout = EditorGUILayout.Foldout(labelFoldout, "Labels", true); - - if (labelFoldout) - { - EditorGUI.BeginChangeCheck(); - - if (showComponents) - { - EditorGUILayout.PropertyField(mainLabelTextProp); - } - - if (mainLabelTextProp.objectReferenceValue != null) - { - Component mainLabelText = (Component)mainLabelTextProp.objectReferenceValue; - bool mainLabelTextActive = EditorGUILayout.Toggle("Enable Main Label", mainLabelText.gameObject.activeSelf); - if (mainLabelText.gameObject.activeSelf != mainLabelTextActive) - { - mainLabelText.gameObject.SetActive(mainLabelTextActive); - EditorUtility.SetDirty(mainLabelText.gameObject); - } - if (mainLabelText.gameObject.activeSelf) - { - SerializedObject labelTextObject = new SerializedObject(mainLabelText); - SerializedProperty textProp = labelTextObject.FindProperty("m_text"); - EditorGUILayout.PropertyField(textProp, new GUIContent("Main Label Text")); - EditorGUILayout.Space(); - - if (EditorGUI.EndChangeCheck()) - { - labelTextObject.ApplyModifiedProperties(); - } - } - } - - if (showComponents) - { - EditorGUILayout.PropertyField(seeItSayItLabelProp); - } - - if (seeItSayItLabelProp.objectReferenceValue != null) - { - GameObject seeItSayItLabel = (GameObject)seeItSayItLabelProp.objectReferenceValue; - bool seeItSayItLabelActive = EditorGUILayout.Toggle("Enable See it / Say it Label", seeItSayItLabel.activeSelf); - if (seeItSayItLabel.activeSelf != seeItSayItLabelActive) - { - seeItSayItLabel.SetActive(seeItSayItLabelActive); - EditorUtility.SetDirty(seeItSayItLabel.gameObject); - } - - if (seeItSayItLabel.activeSelf) - { - if (showComponents) - { - EditorGUILayout.PropertyField(seeItSatItLabelTextProp); - } - - EditorGUI.BeginChangeCheck(); - - SerializedObject sisiLabelTextObject = new SerializedObject(seeItSatItLabelTextProp.objectReferenceValue); - SerializedProperty sisiTextProp = sisiLabelTextObject.FindProperty("m_text"); - EditorGUILayout.PropertyField(sisiTextProp, new GUIContent("See it / Say it Label")); - EditorGUILayout.Space(); - - if (EditorGUI.EndChangeCheck()) - { - sisiLabelTextObject.ApplyModifiedProperties(); - } - } - } - } - } - } - - using (new EditorGUI.IndentLevelScope(1)) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - basicEventsFoldout = EditorGUILayout.Foldout(basicEventsFoldout, "Basic Events", true); - - if (basicEventsFoldout) - { - EditorGUI.BeginChangeCheck(); - - if (showComponents) - { - EditorGUILayout.PropertyField(interactableProp); - } - - SerializedObject interactableObject = new SerializedObject(interactableProp.objectReferenceValue); - SerializedProperty onClickProp = interactableObject.FindProperty("OnClick"); - EditorGUILayout.PropertyField(onClickProp); - - if (EditorGUI.EndChangeCheck()) - { - interactableObject.ApplyModifiedProperties(); - } - } - } - } - - using (new EditorGUI.IndentLevelScope(1)) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - iconFoldout = EditorGUILayout.Foldout(iconFoldout, "Icon", true); - ButtonIconSet iconSet = (ButtonIconSet)iconSetProp.objectReferenceValue; - - if (iconFoldout) - { - EditorGUILayout.PropertyField(iconStyleProp); - - switch (cb.IconStyle) - { - case ButtonIconStyle.Char: - DrawIconCharEditor(showComponents, iconSet); - break; - - case ButtonIconStyle.Quad: - DrawIconQuadEditor(showComponents, iconSet); - break; - - case ButtonIconStyle.Sprite: - DrawIconSpriteEditor(showComponents, iconSet); - break; - } - - EditorGUILayout.Space(); - } - } - } - - SessionState.SetBool(LabelFoldoutKey, labelFoldout); - SessionState.SetBool(BasicEventsFoldoutKey, basicEventsFoldout); - SessionState.SetBool(IconFoldoutKey, iconFoldout); - SessionState.SetBool(ShowComponentsKey, showComponents); - - serializedObject.ApplyModifiedProperties(); - - if (oldStyle != (ButtonIconStyle)iconStyleProp.enumValueIndex) - { - cb.ForceRefresh(); - } - } - - private void DrawIconSpriteEditor(bool showComponents, ButtonIconSet iconSet) - { - if (showComponents) - { - EditorGUILayout.PropertyField(iconSpriteRendererProp); - } - - Sprite currentIconSprite = null; - - if (iconQuadTextureProp.objectReferenceValue != null) - { - currentIconSprite = iconSpriteProp.objectReferenceValue as Sprite; - } - else - { - if (iconSpriteRendererProp.objectReferenceValue != null) - { - currentIconSprite = ((SpriteRenderer)iconSpriteRendererProp.objectReferenceValue).sprite; - } - else - { - EditorGUILayout.HelpBox("This button has no icon quad renderer assigned.", MessageType.Warning); - return; - } - } - - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(iconSetProp); - if (iconSet != null) - { - Sprite newIconSprite; - if (iconSet.EditorDrawSpriteIconSelector(currentIconSprite, out newIconSprite, 1)) - { - iconSpriteProp.objectReferenceValue = newIconSprite; - cb.SetSpriteIcon(newIconSprite); - } - } - else - { - EditorGUILayout.HelpBox("No icon set assigned. You can specify custom icons manually by assigning them to the field below:", MessageType.Info); - EditorGUILayout.PropertyField(iconSpriteProp); - } - } - - private void DrawIconQuadEditor(bool showComponents, ButtonIconSet iconSet) - { - if (showComponents) - { - EditorGUILayout.PropertyField(iconQuadRendererProp); - } - - Texture currentIconTexture = null; - - if (iconQuadTextureProp.objectReferenceValue != null) - { - currentIconTexture = iconQuadTextureProp.objectReferenceValue as Texture; - } - else - { - if (iconQuadRendererProp.objectReferenceValue != null) - { - currentIconTexture = ((Renderer)iconQuadRendererProp.objectReferenceValue).sharedMaterial.GetTexture(iconQuadTextureNameIDProp.stringValue); - } - else - { - EditorGUILayout.HelpBox("This button has no icon quad renderer assigned.", MessageType.Warning); - return; - } - } - - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(iconSetProp); - if (iconSet != null) - { - Texture newIconTexture; - bool foundTexture; - if (iconSet.EditorDrawQuadIconSelector(currentIconTexture, out foundTexture, out newIconTexture, 1)) - { - iconQuadTextureProp.objectReferenceValue = newIconTexture; - cb.SetQuadIcon(newIconTexture); - } - - if (!foundTexture) - { - EditorGUILayout.HelpBox(missingIconWarningMessage, MessageType.Warning); - } - } - else - { - EditorGUILayout.HelpBox("No icon set assigned. You can specify custom icons manually by assigning them to the field below:", MessageType.Info); - EditorGUILayout.PropertyField(iconQuadTextureProp); - } - } - - private void DrawIconCharEditor(bool showComponents, ButtonIconSet iconSet) - { - if (showComponents) - { - EditorGUILayout.PropertyField(iconCharLabelProp); - } - - uint currentIconChar = 0; - - if (iconCharProp.longValue > 0) - { - currentIconChar = (uint)iconCharProp.longValue; - } - else - { - if (iconCharLabelProp != null) - { - SerializedObject tmpObject = new SerializedObject(iconCharLabelProp.objectReferenceValue); - SerializedProperty tmpTextProp = tmpObject.FindProperty("m_text"); - string iconCharString = tmpTextProp.stringValue; - currentIconChar = ButtonIconSet.ConvertCharStringToUInt32(iconCharString); - } - else - { - EditorGUILayout.HelpBox("This button has no icon char renderer assigned.", MessageType.Warning); - return; - } - } - - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(iconSetProp); - if (iconSet != null) - { - uint newIconChar; - if (iconSet.EditorDrawCharIconSelector(currentIconChar, out newIconChar, 1)) - { - iconCharProp.longValue = newIconChar; - SerializedObject iconSetObject = new SerializedObject(iconSet); - SerializedProperty charIconFontProp = iconSetObject.FindProperty("charIconFont"); - iconFontProp.objectReferenceValue = charIconFontProp.objectReferenceValue; - cb.SetCharIcon(newIconChar); - } - } - else - { - EditorGUILayout.HelpBox("No icon set assigned. You can specify custom icons manually by assigning them to the field below:", MessageType.Info); - EditorGUILayout.PropertyField(iconQuadTextureProp); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs.meta deleted file mode 100644 index f00c54f1c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aceedc1c2bc689a4d98cf346bac4e008 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs deleted file mode 100644 index 9c466e306..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Linq; -using UnityEditor; -using UnityEngine; -using UnityEngine.Events; - -namespace Microsoft.MixedReality.Toolkit.UI -{ - public static class InteractableEventInspector - { - private static readonly GUIContent SelectEventLabel = new GUIContent("Select Event Type", "Select the event type from the list"); - - /// - /// Render event properties for the given event item. If item has been removed, returns true. False otherwise - /// - /// serialized property of the event item to render properties from - /// If item has been removed, returns true. False otherwise - public static bool RenderEvent(SerializedProperty eventItem, bool canRemove = true) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - SerializedProperty uEvent = eventItem.FindPropertyRelative("Event"); - SerializedProperty eventName = eventItem.FindPropertyRelative("Name"); - SerializedProperty className = eventItem.FindPropertyRelative("ClassName"); - SerializedProperty assemblyQualifiedName = eventItem.FindPropertyRelative("AssemblyQualifiedName"); - Type receiverType; - - InspectorUIUtility.DrawHeader("Event Receiver Type"); - using (new EditorGUILayout.HorizontalScope()) - { - Rect position = EditorGUILayout.GetControlRect(); - using (new EditorGUI.PropertyScope(position, SelectEventLabel, className)) - { - var receiverTypes = TypeCacheUtility.GetSubClasses(); - var recevierClassNames = receiverTypes.Select(t => t?.Name).ToArray(); - int id = Array.IndexOf(recevierClassNames, className.stringValue); - int newId = EditorGUI.Popup(position, id, recevierClassNames); - if (newId == -1) { newId = 0; } - - receiverType = receiverTypes[newId]; - - // Temporary workaround to fix bug shipped in GA where assemblyQualifiedName was never set - if (string.IsNullOrEmpty(assemblyQualifiedName.stringValue)) - { - assemblyQualifiedName.stringValue = receiverType.AssemblyQualifiedName; - } - - if (id != newId) - { - EventChanged(receiverType, eventItem); - } - } - - if (canRemove) - { - if (InspectorUIUtility.FlexButton(new GUIContent("Remove Event"))) - { - return true; - } - } - } - - EditorGUILayout.Space(); - InspectorUIUtility.DrawHeader("Event Properties"); - - ReceiverBase receiver = (ReceiverBase)Activator.CreateInstance(receiverType, new UnityEvent()); - - if (!receiver.HideUnityEvents) - { - EditorGUILayout.PropertyField(uEvent, new GUIContent(receiver.Name)); - } - - SerializedProperty eventSettings = eventItem.FindPropertyRelative("Settings"); - - // If fields for given receiver class type have been changed, update the related inspector field data - var fieldList = InspectorFieldsUtility.GetInspectorFields(receiver); - if (!InspectorFieldsUtility.AreFieldsSame(eventSettings, fieldList)) - { - InspectorFieldsUtility.UpdateSettingsList(eventSettings, fieldList); - } - - for (int index = 0; index < eventSettings.arraySize; index++) - { - SerializedProperty propertyField = eventSettings.GetArrayElementAtIndex(index); - bool isEvent = InspectorFieldsUtility.IsPropertyType(propertyField, InspectorField.FieldTypes.Event); - - if (!receiver.HideUnityEvents || !isEvent) - { - InspectorFieldsUtility.DisplayPropertyField(eventSettings.GetArrayElementAtIndex(index)); - } - } - } - - return false; - } - - /// - /// Update the given InteractableEvent to the new type (which extends ReceiverBase) - /// - /// new receiverbase subclass type to target - /// InteractableEvent to target and update - private static void EventChanged(Type newType, SerializedProperty eventItem) - { - SerializedProperty className = eventItem.FindPropertyRelative("ClassName"); - SerializedProperty assemblyQualifiedName = eventItem.FindPropertyRelative("AssemblyQualifiedName"); - - className.stringValue = newType.Name; - assemblyQualifiedName.stringValue = newType.AssemblyQualifiedName; - - SerializedProperty settings = eventItem.FindPropertyRelative("Settings"); - - ReceiverBase defaultReceiver = (ReceiverBase)Activator.CreateInstance(newType, new UnityEvent()); - InspectorFieldsUtility.ClearSettingsList(settings, InspectorFieldsUtility.GetInspectorFields(defaultReceiver)); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs.meta deleted file mode 100644 index d84b8fe99..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableEventInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0b704d97d87fb1e42ad0649d02e6846e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs deleted file mode 100644 index 9ae3b990b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs +++ /dev/null @@ -1,628 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Collections.Generic; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.UI.Editor -{ - [CustomEditor(typeof(Interactable))] - [CanEditMultipleObjects] - public class InteractableInspector : UnityEditor.Editor - { - protected Interactable instance; - - protected SerializedProperty profileList; - protected SerializedProperty statesProperty; - protected SerializedProperty enabledProperty; - protected SerializedProperty voiceCommands; - protected SerializedProperty actionId; - protected SerializedProperty isGlobal; - protected SerializedProperty canSelect; - protected SerializedProperty canDeselect; - protected SerializedProperty startDimensionIndex; - protected SerializedProperty dimensionIndex; - protected SerializedProperty dimensions; - protected SerializedProperty resetOnDestroy; - - protected const string ShowProfilesPrefKey = "InteractableInspectorProfiles"; - protected const string ShowEventsPrefKey = "InteractableInspectorProfiles_ShowEvents"; - protected const string ShowEventReceiversPrefKey = "InteractableInspectorProfiles_ShowEvents_Receivers"; - protected bool enabled = false; - - protected string[] inputActionOptions = null; - protected string[] speechKeywordOptions = null; - - private static readonly GUIContent InputActionsLabel = new GUIContent("Input Actions"); - private static readonly GUIContent selectionModeLabel = new GUIContent("Selection Mode", "The selection mode of the Interactable is based on the number of dimensions available."); - private static readonly GUIContent dimensionsLabel = new GUIContent("Dimensions", "The amount of theme layers for sequence button functionality (3-9)"); - private static readonly GUIContent startDimensionLabel = new GUIContent("Start Dimension Index", "The dimensionIndex value to set on start."); - private static readonly GUIContent isToggledLabel = new GUIContent("Is Toggled", "Should this Interactable be toggled on or off by default on start."); - private static readonly GUIContent CreateThemeLabel = new GUIContent("Create and Assign New Theme", "Create a new theme"); - private static readonly GUIContent SpeechComamndsLabel = new GUIContent("Speech Command", "Speech Commands to use with Interactable, pulled from MRTK/Input/Speech Commands Profile"); - private static readonly GUIContent OnClickEventLabel = new GUIContent("OnClick", "Fired when this Interactable is triggered by a click."); - private static readonly GUIContent AddEventReceiverLabel = new GUIContent("Add Event", "Add event receiver to this Interactable for special event handling."); - private static readonly GUIContent VoiceRequiresFocusLabel = new GUIContent("Requires Focus"); - - protected virtual void OnEnable() - { - instance = (Interactable)target; - - profileList = serializedObject.FindProperty("profiles"); - statesProperty = serializedObject.FindProperty("states"); - enabledProperty = serializedObject.FindProperty("enabledOnStart"); - voiceCommands = serializedObject.FindProperty("VoiceCommand"); - actionId = serializedObject.FindProperty("InputActionId"); - isGlobal = serializedObject.FindProperty("isGlobal"); - canSelect = serializedObject.FindProperty("CanSelect"); - canDeselect = serializedObject.FindProperty("CanDeselect"); - startDimensionIndex = serializedObject.FindProperty("startDimensionIndex"); - dimensionIndex = serializedObject.FindProperty("dimensionIndex"); - dimensions = serializedObject.FindProperty("Dimensions"); - resetOnDestroy = serializedObject.FindProperty("resetOnDestroy"); - - enabled = true; - } - - protected virtual void RenderBaseInspector() - { - base.OnInspectorGUI(); - } - - /// - /// There is a check in here that verifies whether or not we can get InputActions, if we can't we show an error help box; otherwise we get them. - /// This method is sealed, if you wish to override , then override method instead. - /// - public sealed override void OnInspectorGUI() - { - if ((inputActionOptions == null && !TryGetInputActions(out inputActionOptions)) - || (speechKeywordOptions == null && !TryGetSpeechKeywords(out speechKeywordOptions))) - { - EditorGUILayout.HelpBox("Mixed Reality Toolkit is missing, configure it by invoking the 'Mixed Reality Toolkit > Add to Scene and Configure...' menu", MessageType.Error); - } - - RenderCustomInspector(); - } - - public virtual void RenderCustomInspector() - { - serializedObject.Update(); - - // Disable inspector UI if in play mode - bool isPlayMode = EditorApplication.isPlaying || EditorApplication.isPaused; - using (new EditorGUI.DisabledScope(isPlayMode)) - { - RenderGeneralSettings(); - - EditorGUILayout.Space(); - - RenderProfileSettings(); - - EditorGUILayout.Space(); - - RenderEventSettings(); - } - - serializedObject.ApplyModifiedProperties(); - } - - private void RenderProfileSettings() - { - if (profileList.arraySize < 1) - { - AddProfile(0); - } - - if (InspectorUIUtility.DrawSectionFoldoutWithKey("Profiles", ShowProfilesPrefKey, MixedRealityStylesUtility.BoldTitleFoldoutStyle)) - { - EditorGUILayout.PropertyField(resetOnDestroy); - - // Render all profile items. Profiles are per GameObject/ThemeContainer - for (int i = 0; i < profileList.arraySize; i++) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - SerializedProperty profileItem = profileList.GetArrayElementAtIndex(i); - SerializedProperty hostGameObject = profileItem.FindPropertyRelative("Target"); - - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.PropertyField(hostGameObject, new GUIContent("Target", "Target gameObject for this theme properties to manipulate")); - if (InspectorUIUtility.SmallButton(new GUIContent(InspectorUIUtility.Minus, "Remove Profile"), i, RemoveProfile)) - { - // Profile removed via RemoveProfile callback - continue; - } - } - - if (hostGameObject.objectReferenceValue == null) - { - InspectorUIUtility.DrawError("Assign a GameObject to apply visual effects"); - if (GUILayout.Button("Assign Self")) - { - hostGameObject.objectReferenceValue = instance.gameObject; - } - } - - SerializedProperty themes = profileItem.FindPropertyRelative("Themes"); - ValidateThemesForDimensions(dimensions, themes); - - // Render all themes for current target - for (int t = 0; t < themes.arraySize; t++) - { - SerializedProperty themeItem = themes.GetArrayElementAtIndex(t); - string themeLabel = BuildThemeTitle(dimensions.intValue, t); - - if (themeItem.objectReferenceValue != null) - { - bool showThemeSettings = false; - using (new EditorGUILayout.HorizontalScope()) - { - string prefKey = themeItem.objectReferenceValue.name + "Profiles" + i + "_Theme" + t + "_Edit"; - showThemeSettings = InspectorUIUtility.DrawSectionFoldoutWithKey(themeLabel, prefKey, null, false); - EditorGUILayout.PropertyField(themeItem, new GUIContent(string.Empty, "Theme properties for interaction feedback")); - } - - if (themeItem.objectReferenceValue != null) - { - // TODO: Odd bug where themeStates below is null when it shouldn't be. Use instance object as workaround atm - // SerializedProperty themeStates = themeItem.FindPropertyRelative("States"); - var themeInstance = themeItem.objectReferenceValue as Theme; - if (statesProperty.objectReferenceValue != themeInstance.States) - { - InspectorUIUtility.DrawWarning($"{themeInstance.name}'s States property does not match Interactable's States property"); - } - - if (showThemeSettings) - { - using (new EditorGUI.IndentLevelScope()) - { - UnityEditor.Editor themeEditor = UnityEditor.Editor.CreateEditor(themeItem.objectReferenceValue); - themeEditor.OnInspectorGUI(); - } - } - } - } - else - { - EditorGUILayout.PropertyField(themeItem, new GUIContent(themeLabel, "Theme properties for interaction feedback")); - - InspectorUIUtility.DrawError("Assign a Theme to add visual effects"); - if (GUILayout.Button(CreateThemeLabel)) - { - themeItem.objectReferenceValue = CreateThemeAsset(hostGameObject.objectReferenceValue.name); - return; - } - } - - EditorGUILayout.Space(); - } - } - } - - if (GUILayout.Button(new GUIContent("Add Profile"))) - { - AddProfile(profileList.arraySize); - } - } - } - - private void RenderEventSettings() - { - if (InspectorUIUtility.DrawSectionFoldoutWithKey("Events", ShowEventsPrefKey, MixedRealityStylesUtility.BoldTitleFoldoutStyle)) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - EditorGUILayout.PropertyField(serializedObject.FindProperty("OnClick"), OnClickEventLabel); - - if (InspectorUIUtility.DrawSectionFoldoutWithKey("Receivers", ShowEventReceiversPrefKey, MixedRealityStylesUtility.TitleFoldoutStyle, false)) - { - SerializedProperty events = serializedObject.FindProperty("Events"); - for (int i = 0; i < events.arraySize; i++) - { - SerializedProperty eventItem = events.GetArrayElementAtIndex(i); - if (InteractableEventInspector.RenderEvent(eventItem)) - { - events.DeleteArrayElementAtIndex(i); - // If removed, skip rendering rest of list till next redraw - break; - } - - EditorGUILayout.Space(); - } - - if (GUILayout.Button(AddEventReceiverLabel)) - { - AddEvent(events.arraySize); - } - } - } - } - } - - protected void RenderGeneralSettings() - { - Rect position; - using (new EditorGUILayout.HorizontalScope()) - { - InspectorUIUtility.DrawLabel("General", InspectorUIUtility.TitleFontSize, InspectorUIUtility.ColorTint10); - - if (target != null) - { - var helpURL = target.GetType().GetCustomAttribute(); - if (helpURL != null) - { - InspectorUIUtility.RenderDocumentationButton(helpURL.URL); - } - } - } - - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - // If states value is not provided, try to use Default states type - if (statesProperty.objectReferenceValue == null) - { - statesProperty.objectReferenceValue = GetDefaultInteractableStatesFile(); - } - - EditorGUILayout.PropertyField(statesProperty, new GUIContent("States")); - - if (statesProperty.objectReferenceValue == null) - { - InspectorUIUtility.DrawError("Please assign a States object!"); - serializedObject.ApplyModifiedProperties(); - return; - } - - EditorGUILayout.PropertyField(enabledProperty, new GUIContent("Enabled")); - - // Input Actions - bool validActionOptions = inputActionOptions != null; - using (new EditorGUI.DisabledScope(!validActionOptions)) - { - var actionOptions = validActionOptions ? inputActionOptions : new string[] { "Missing Mixed Reality Toolkit" }; - DrawDropDownProperty(EditorGUILayout.GetControlRect(), actionId, actionOptions, InputActionsLabel); - } - - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(isGlobal, new GUIContent("Is Global")); - } - - // Speech keywords - bool validSpeechKeywords = speechKeywordOptions != null; - using (new EditorGUI.DisabledScope(!validSpeechKeywords)) - { - string[] keywordOptions = validSpeechKeywords ? speechKeywordOptions : new string[] { "Missing Speech Commands" }; - int currentIndex = validSpeechKeywords ? SpeechKeywordLookup(voiceCommands.stringValue, speechKeywordOptions) : 0; - position = EditorGUILayout.GetControlRect(); - - // BeginProperty allows tracking of serialized properties for bolding prefab changes etc - using (new EditorGUI.PropertyScope(position, SpeechComamndsLabel, voiceCommands)) - { - currentIndex = EditorGUI.Popup(position, SpeechComamndsLabel.text, currentIndex, keywordOptions); - if (validSpeechKeywords) - { - voiceCommands.stringValue = currentIndex > 0 ? speechKeywordOptions[currentIndex] : string.Empty; - } - } - } - - // show requires gaze because voice command has a value - if (!string.IsNullOrEmpty(voiceCommands.stringValue)) - { - using (new EditorGUI.IndentLevelScope()) - { - SerializedProperty requireGaze = serializedObject.FindProperty("voiceRequiresFocus"); - EditorGUILayout.PropertyField(requireGaze, VoiceRequiresFocusLabel); - } - } - - // should be 1 or more - dimensions.intValue = Mathf.Clamp(dimensions.intValue, 1, 9); - - // user-friendly dimension settings - SelectionModes selectionMode = SelectionModes.Button; - position = EditorGUILayout.GetControlRect(); - using (new EditorGUI.PropertyScope(position, selectionModeLabel, dimensions)) - { - // Show enum popup for selection mode, hide option to select SelectionModes.Invalid - selectionMode = (SelectionModes)EditorGUI.EnumPopup(position, selectionModeLabel, - Interactable.ConvertToSelectionMode(dimensions.intValue), - (value) => { return (SelectionModes)value != SelectionModes.Invalid; }); - - switch (selectionMode) - { - case SelectionModes.Button: - dimensions.intValue = 1; - break; - case SelectionModes.Toggle: - dimensions.intValue = 2; - break; - case SelectionModes.MultiDimension: - // multi dimension mode - set min value to 3 - dimensions.intValue = Mathf.Max(3, dimensions.intValue); - position = EditorGUILayout.GetControlRect(); - dimensions.intValue = EditorGUI.IntField(position, dimensionsLabel, dimensions.intValue); - break; - default: - break; - } - } - - if (dimensions.intValue > 1) - { - // toggle or multi dimensional button - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(canSelect, new GUIContent("Can Select", "The user can toggle this button")); - EditorGUILayout.PropertyField(canDeselect, new GUIContent("Can Deselect", "The user can untoggle this button, set false for a radial interaction.")); - - position = EditorGUILayout.GetControlRect(); - using (new EditorGUI.PropertyScope(position, startDimensionLabel, startDimensionIndex)) - { - var mode = Interactable.ConvertToSelectionMode(dimensions.intValue); - if (mode == SelectionModes.Toggle) - { - bool isToggled = EditorGUI.Toggle(position, isToggledLabel, startDimensionIndex.intValue > 0); - startDimensionIndex.intValue = isToggled ? 1 : 0; - } - else if (mode == SelectionModes.MultiDimension) - { - startDimensionIndex.intValue = EditorGUI.IntField(position, startDimensionLabel, startDimensionIndex.intValue); - } - - startDimensionIndex.intValue = Mathf.Clamp(startDimensionIndex.intValue, 0, dimensions.intValue - 1); - } - } - } - } - } - - public static States GetDefaultInteractableStatesFile() - { - AssetDatabase.Refresh(); - string[] stateLocations = AssetDatabase.FindAssets("DefaultInteractableStates"); - if (stateLocations.Length > 0) - { - for (int i = 0; i < stateLocations.Length; i++) - { - string path = AssetDatabase.GUIDToAssetPath(stateLocations[i]); - States defaultStates = (States)AssetDatabase.LoadAssetAtPath(path, typeof(States)); - if (defaultStates != null) - { - return defaultStates; - } - } - } - - return null; - } - - private static string BuildThemeTitle(int dimensions, int themeIndex) - { - if (dimensions == 2) - { - return "Theme " + (themeIndex % 2 == 0 ? "(Deselected)" : "(Selected)"); - } - else if (dimensions >= 3) - { - return "Theme " + (themeIndex + 1); - } - - return "Theme"; - } - - #region Profiles - - protected void AddProfile(int index) - { - profileList.InsertArrayElementAtIndex(profileList.arraySize); - SerializedProperty newProfile = profileList.GetArrayElementAtIndex(profileList.arraySize - 1); - - SerializedProperty newTarget = newProfile.FindPropertyRelative("Target"); - SerializedProperty themes = newProfile.FindPropertyRelative("Themes"); - newTarget.objectReferenceValue = null; - - themes.ClearArray(); - } - - protected void RemoveProfile(int index, SerializedProperty prop = null) - { - profileList.DeleteArrayElementAtIndex(index); - } - - #endregion Profiles - - #region Themes - - protected static Theme CreateThemeAsset(string themeName = null) - { - string themeFileName = (string.IsNullOrEmpty(themeName) ? "New " : themeName) + "Theme.asset"; - - string path = EditorUtility.SaveFilePanelInProject( - "Save New Theme", - themeFileName, - "asset", - "Create a name and select a location for this theme"); - - if (path.Length != 0) - { - Theme newTheme = ScriptableObject.CreateInstance(); - newTheme.States = GetDefaultInteractableStatesFile(); - newTheme.Definitions = new List(); - AssetDatabase.CreateAsset(newTheme, path); - return newTheme; - } - - return null; - } - - /// - /// Ensure the number of theme containers is equal to the number of dimensions - /// - /// dimensions property of interactable - /// List of ThemeContainers in Interactable profile - private static void ValidateThemesForDimensions(SerializedProperty dimensions, SerializedProperty themes) - { - int numOfDimensions = dimensions.intValue; - if (themes.arraySize < numOfDimensions) - { - for (int index = themes.arraySize; index < numOfDimensions; index++) - { - themes.InsertArrayElementAtIndex(themes.arraySize); - - SerializedProperty newTheme = themes.GetArrayElementAtIndex(themes.arraySize - 1); - newTheme.objectReferenceValue = null; - } - } - else - { - for (int index = themes.arraySize - 1; index > numOfDimensions - 1; index--) - { - themes.DeleteArrayElementAtIndex(index); - } - } - } - - #endregion Themes - - #region Events - - protected void RemoveEvent(int index, SerializedProperty prop = null) - { - SerializedProperty events = serializedObject.FindProperty("Events"); - if (events.arraySize > index) - { - events.DeleteArrayElementAtIndex(index); - } - } - - protected void AddEvent(int index) - { - SerializedProperty events = serializedObject.FindProperty("Events"); - events.InsertArrayElementAtIndex(events.arraySize); - } - - #endregion Events - - #region PopupUtilities - /// - /// Get the index of the speech keyword array item based on its name, pop-up field helper - /// Skips the first item in the array (internal added blank value to turn feature off) - /// and returns a 0 if no match is found for the blank value - /// - protected int SpeechKeywordLookup(string option, string[] options) - { - // starting on 1 to skip the blank value - for (int i = 1; i < options.Length; i++) - { - if (options[i] == option) - { - return i; - } - } - return 0; - } - - /// - /// Draws a popup UI with PropertyField type features. - /// Displays prefab pending updates - /// - protected void DrawDropDownProperty(Rect position, SerializedProperty prop, string[] options, GUIContent label) - { - EditorGUI.BeginProperty(position, label, prop); - { - prop.intValue = EditorGUI.Popup(position, label.text, prop.intValue, options); - } - EditorGUI.EndProperty(); - } - #endregion KeywordUtilities - - #region Inspector Helpers - - /// - /// Get a list of Mixed Reality Input Actions from the input actions profile. - /// - public static bool TryGetInputActions(out string[] descriptionsArray) - { - if (!MixedRealityToolkit.ConfirmInitialized() || !MixedRealityToolkit.Instance.HasActiveProfile) - { - descriptionsArray = null; - return false; - } - - MixedRealityInputAction[] actions = CoreServices.InputSystem.InputSystemProfile.InputActionsProfile.InputActions; - - descriptionsArray = new string[actions.Length]; - for (int i = 0; i < actions.Length; i++) - { - descriptionsArray[i] = actions[i].Description; - } - - return true; - } - - /// - /// Try to get a list of speech commands from the MRTK/Input/SpeechCommands profile - /// - public static bool TryGetMixedRealitySpeechCommands(out SpeechCommands[] commands) - { - if (!MixedRealityToolkit.ConfirmInitialized() || !MixedRealityToolkit.Instance.HasActiveProfile) - { - commands = null; - return false; - } - - MixedRealityInputSystemProfile inputSystemProfile = CoreServices.InputSystem?.InputSystemProfile; - if (inputSystemProfile != null && inputSystemProfile.SpeechCommandsProfile != null) - { - commands = inputSystemProfile.SpeechCommandsProfile.SpeechCommands; - } - else - { - commands = null; - } - - if (commands == null || commands.Length < 1) - { - return false; - } - - return true; - } - - /// - /// Look for speech commands in the MRTK Speech Command profile - /// Adds a blank value at index zero so the developer can turn the feature off. - /// - public static bool TryGetSpeechKeywords(out string[] keywords) - { - SpeechCommands[] commands; - if (!TryGetMixedRealitySpeechCommands(out commands)) - { - keywords = null; - return false; - } - - List keys = new List - { - "(No Selection)" - }; - - for (var i = 0; i < commands.Length; i++) - { - keys.Add(commands[i].Keyword); - } - - keywords = keys.ToArray(); - return true; - } - - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs.meta deleted file mode 100644 index 5d3f4b7af..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableInspector.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: 9ac3b8077532f2f42a90d7155ac5cde8 -timeCreated: 1517593721 -licenseType: Pro -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs deleted file mode 100644 index a929a7166..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.UI.Editor -{ - /// - /// Class controls inspector rendering logic for the InteractableOnFocus class - /// - [CustomEditor(typeof(InteractableOnFocus))] - public class InteractableOnFocusInspector : UnityEditor.Editor - { - private static readonly GUIContent AddProfileContent = new GUIContent("+ Add New Profile", "Add Visual Profile"); - private static readonly GUIContent RemoveProfileContent = new GUIContent("-", "Remove Profile"); - - protected SerializedProperty profilesProperty; - protected List listSettings; - - protected virtual void OnEnable() - { - profilesProperty = serializedObject.FindProperty("Profiles"); - listSettings = InspectorUIUtility.AdjustListSettings(null, profilesProperty.arraySize); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - InspectorUIUtility.DrawTitle("Profiles"); - - if (profilesProperty.arraySize == 0) - { - AddProfile(); - } - - for (int i = 0; i < profilesProperty.arraySize; i++) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - SerializedProperty profile = profilesProperty.GetArrayElementAtIndex(i); - - using (new EditorGUILayout.HorizontalScope()) - { - SerializedProperty targetGameObject = profile.FindPropertyRelative("Target"); - EditorGUILayout.PropertyField(targetGameObject, new GUIContent("Target", "Target gameObject for this theme properties to manipulate")); - - if (InspectorUIUtility.SmallButton(RemoveProfileContent)) - { - profilesProperty.DeleteArrayElementAtIndex(i); - serializedObject.ApplyModifiedProperties(); - continue; - } - } - - SerializedProperty theme = profile.FindPropertyRelative("Theme"); - EditorGUILayout.PropertyField(theme, new GUIContent("Theme", "Theme properties for interaction feedback")); - - // Render Theme Settings - if (theme.objectReferenceValue != null) - { - InspectorUIUtility.ListSettings settings = listSettings[i]; - settings.Show = InspectorUIUtility.DrawSectionFoldout("Theme Settings (Click to edit)", listSettings[i].Show); - if (settings.Show) - { - UnityEditor.Editor themeEditor = UnityEditor.Editor.CreateEditor(theme.objectReferenceValue); - themeEditor.OnInspectorGUI(); - } - - listSettings[i] = settings; - } - } - }// profile for loop - - if (InspectorUIUtility.RenderIndentedButton(AddProfileContent, EditorStyles.miniButton)) - { - AddProfile(); - } - - serializedObject.ApplyModifiedProperties(); - } - - private void AddProfile() - { - profilesProperty.InsertArrayElementAtIndex(profilesProperty.arraySize); - SerializedProperty newProfile = profilesProperty.GetArrayElementAtIndex(profilesProperty.arraySize - 1); - - var theme = newProfile.FindPropertyRelative("Theme"); - theme.objectReferenceValue = null; - - listSettings = InspectorUIUtility.AdjustListSettings(null, profilesProperty.arraySize); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs.meta deleted file mode 100644 index df1b6786b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableOnFocusInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3f878e4fa9608dc4aa7aaa11c7154fd2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs deleted file mode 100644 index 9720cc0b3..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.UI -{ - [CustomEditor(typeof(InteractableReceiver))] - public class InteractableReceiverInspector : InteractableReceiverListInspector - { - public override void OnInspectorGUI() - { - serializedObject.Update(); - - RenderInspectorHeader(); - - SerializedProperty events = serializedObject.FindProperty("Events"); - - if (events.arraySize < 1) - { - AddEvent(0); - } - else - { - SerializedProperty eventItem = events.GetArrayElementAtIndex(0); - InteractableEventInspector.RenderEvent(eventItem, false); - } - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs.meta deleted file mode 100644 index 33c89907e..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f713ccdad5f6d574d933c7497fa61fec -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs deleted file mode 100644 index 495dba5a6..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.UI -{ - [CustomEditor(typeof(InteractableReceiverList))] - public class InteractableReceiverListInspector : UnityEditor.Editor - { - private static readonly GUIContent InteractableLabel = new GUIContent("Interactable", "The Interactable that will be monitored"); - private static readonly GUIContent SearchScopeLabel = new GUIContent("Search Scope", "Where to look for an Interactable if one is not assigned"); - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - RenderInspectorHeader(); - - SerializedProperty events = serializedObject.FindProperty("Events"); - - if (events.arraySize < 1) - { - AddEvent(0); - } - else - { - for (int i = 0; i < events.arraySize; i++) - { - SerializedProperty eventItem = events.GetArrayElementAtIndex(i); - - bool canRemove = i > 0; - if (InteractableEventInspector.RenderEvent(eventItem, canRemove)) - { - events.DeleteArrayElementAtIndex(i); - // If removed, skip rendering rest of list till next redraw - break; - } - } - - if (GUILayout.Button(new GUIContent("Add Event"))) - { - AddEvent(events.arraySize); - } - } - - serializedObject.ApplyModifiedProperties(); - } - - protected virtual void RenderInspectorHeader() - { - SerializedProperty interactable = serializedObject.FindProperty("Interactable"); - SerializedProperty searchScope = serializedObject.FindProperty("InteractableSearchScope"); - - EditorGUILayout.PropertyField(interactable, InteractableLabel); - EditorGUILayout.PropertyField(searchScope, SearchScopeLabel); - } - - protected virtual void AddEvent(int index) - { - SerializedProperty events = serializedObject.FindProperty("Events"); - events.InsertArrayElementAtIndex(events.arraySize); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs.meta deleted file mode 100644 index e7597366d..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableReceiverListInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c07e122013e243d46acf628ac0c1d0af -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs deleted file mode 100644 index ff4bcaf2b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.UI.Editor -{ - [CustomEditor(typeof(InteractableToggleCollection))] - /// - /// Custom inspector for InteractableToggleCollection - /// - internal class InteractableToggleCollectionInspector : UnityEditor.Editor - { - protected InteractableToggleCollection instance; - protected SerializedProperty toggleListProperty; - protected SerializedProperty currentIndexProperty; - protected SerializedProperty onSelectionEventsProperty; - - protected virtual void OnEnable() - { - instance = (InteractableToggleCollection)target; - toggleListProperty = serializedObject.FindProperty("toggleList"); - currentIndexProperty = serializedObject.FindProperty("currentIndex"); - onSelectionEventsProperty = serializedObject.FindProperty("OnSelectionEvents"); - } - - public override void OnInspectorGUI() - { - RenderCustomInspector(); - - if (Application.isPlaying && instance != null && GUI.changed) - { - int currentIndex = instance.CurrentIndex; - currentIndex = Mathf.Clamp(currentIndex, 0, instance.ToggleList.Length - 1); - - if (currentIndex >= instance.ToggleList.Length || currentIndex < 0) - { - Debug.Log("Index out of range: " + currentIndex); - } - else - { - instance.SetSelection(currentIndex, true, true); - } - } - } - - public virtual void RenderCustomInspector() - { - serializedObject.Update(); - - // Disable ability to edit ToggleList through the inspector if in play mode - bool isPlayMode = EditorApplication.isPlaying || EditorApplication.isPaused; - using (new EditorGUI.DisabledScope(isPlayMode)) - { - EditorGUILayout.PropertyField(toggleListProperty, true); - } - - EditorGUILayout.PropertyField(currentIndexProperty); - EditorGUILayout.PropertyField(onSelectionEventsProperty); - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs.meta deleted file mode 100644 index ba4fb1067..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/InteractableToggleCollectionInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2bc40e8257872334d9e21de9ec69b9d2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs deleted file mode 100644 index bd5e1ddec..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs +++ /dev/null @@ -1,453 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System.Reflection; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(PressableButton), true)] - public class PressableButtonInspector : UnityEditor.Editor - { - // Struct used to store state of preview. - // This lets us display accurate info while button is being pressed. - // All vectors / distances are in local space. - private struct ButtonInfo - { - public Vector3 LocalCenter; - public Vector2 PlaneExtents; - - // The rotation of the push space. - public Quaternion PushRotationLocal; - - // The actual values that the button uses - public float StartPushDistance; - public float MaxPushDistance; - public float PressDistance; - public float ReleaseDistance; - } - - const string EditingEnabledKey = "MRTK_PressableButtonInspector_EditingEnabledKey"; - const string VisiblePlanesKey = "MRTK_PressableButtonInspector_VisiblePlanesKey"; - private static bool EditingEnabled = false; - private static bool VisiblePlanes = true; - - private const float labelMouseOverDistance = 0.025f; - - private static GUIStyle labelStyle; - - private PressableButton button; - private Transform transform; - private NearInteractionTouchableSurface touchable; - - private ButtonInfo currentInfo; - - private SerializedProperty movingButtonVisuals; - private SerializedProperty distanceSpaceMode; - private SerializedProperty startPushDistance; - private SerializedProperty maxPushDistance; - private SerializedProperty pressDistance; - private SerializedProperty releaseDistanceDelta; - - private static readonly Vector3[] startPlaneVertices = new Vector3[4]; - private static readonly Vector3[] endPlaneVertices = new Vector3[4]; - private static readonly Vector3[] pressPlaneVertices = new Vector3[4]; - private static readonly Vector3[] pressStartPlaneVertices = new Vector3[4]; - private static readonly Vector3[] releasePlaneVertices = new Vector3[4]; - - private static readonly GUIContent DistanceSpaceModeLabel = new GUIContent("Coordinate Space Mode"); - private static readonly string[] excludeProperties = new string[] { "distanceSpaceMode", "movingButtonVisuals", "m_Script" }; - - private void OnEnable() - { - button = (PressableButton)target; - transform = button.transform; - - if (labelStyle == null) - { - labelStyle = new GUIStyle(); - labelStyle.normal.textColor = Color.white; - } - - movingButtonVisuals = serializedObject.FindProperty("movingButtonVisuals"); - distanceSpaceMode = serializedObject.FindProperty("distanceSpaceMode"); - startPushDistance = serializedObject.FindProperty("startPushDistance"); - maxPushDistance = serializedObject.FindProperty("maxPushDistance"); - pressDistance = serializedObject.FindProperty("pressDistance"); - releaseDistanceDelta = serializedObject.FindProperty("releaseDistanceDelta"); - - touchable = button.GetComponent(); - } - - [DrawGizmo(GizmoType.Selected)] - private void OnSceneGUI() - { - if (touchable == null) - { - // The inspector code will prompt a developer to add a touchable. - return; - } - - if (!VisiblePlanes) - { - return; - } - - // If the button is being pressed, don't gather new info - // Just display the info we already gathered - // This lets people view button presses in real-time - if (button.IsTouching) - { - DrawButtonInfo(currentInfo, false); - } - else - { - currentInfo = GatherCurrentInfo(); - DrawButtonInfo(currentInfo, EditingEnabled); - } - } - - private ButtonInfo GatherCurrentInfo() - { - Vector3 pressDirLocal = (touchable != null) ? touchable.LocalPressDirection : Vector3.forward; - Vector3 upDirLocal = Vector3.up; - - if (touchable is NearInteractionTouchable touchableConcrete) - { - upDirLocal = touchableConcrete.LocalUp; - } - - return new ButtonInfo - { - LocalCenter = touchable.LocalCenter, - PlaneExtents = touchable.Bounds, - PushRotationLocal = Quaternion.LookRotation(pressDirLocal, upDirLocal), - StartPushDistance = startPushDistance.floatValue, - MaxPushDistance = maxPushDistance.floatValue, - PressDistance = pressDistance.floatValue, - ReleaseDistance = pressDistance.floatValue - releaseDistanceDelta.floatValue - }; - } - - private void DrawButtonInfo(ButtonInfo info, bool editingEnabled) - { - if (editingEnabled) - { - EditorGUI.BeginChangeCheck(); - } - - var targetBehaviour = (MonoBehaviour)target; - bool isOpaque = targetBehaviour.isActiveAndEnabled; - float alpha = (isOpaque) ? 1.0f : 0.5f; - - // START PUSH - Handles.color = ApplyAlpha(Color.cyan, alpha); - float newStartPushDistance = DrawPlaneAndHandle(startPlaneVertices, info.PlaneExtents * 0.5f, info.StartPushDistance, info, "Start Push Distance", editingEnabled); - if (editingEnabled && newStartPushDistance != info.StartPushDistance) - { - EnforceDistanceOrdering(ref info); - info.StartPushDistance = ClampStartPushDistance(Mathf.Min(newStartPushDistance, info.ReleaseDistance)); - } - - // RELEASE DISTANCE - Handles.color = ApplyAlpha(Color.red, alpha); - float newReleaseDistance = DrawPlaneAndHandle(releasePlaneVertices, info.PlaneExtents * 0.3f, info.ReleaseDistance, info, "Release Distance", editingEnabled); - if (editingEnabled && newReleaseDistance != info.ReleaseDistance) - { - EnforceDistanceOrdering(ref info); - info.ReleaseDistance = Mathf.Clamp(newReleaseDistance, info.StartPushDistance, info.PressDistance); - } - - // PRESS DISTANCE - Handles.color = ApplyAlpha(Color.yellow, alpha); - float newPressDistance = DrawPlaneAndHandle(pressPlaneVertices, info.PlaneExtents * 0.35f, info.PressDistance, info, "Press Distance", editingEnabled); - if (editingEnabled && newPressDistance != info.PressDistance) - { - EnforceDistanceOrdering(ref info); - info.PressDistance = Mathf.Clamp(newPressDistance, info.ReleaseDistance, info.MaxPushDistance); - } - - // MAX PUSH - var purple = new Color(0.28f, 0.0f, 0.69f); - Handles.color = ApplyAlpha(purple, alpha); - float newMaxPushDistance = DrawPlaneAndHandle(endPlaneVertices, info.PlaneExtents * 0.5f, info.MaxPushDistance, info, "Max Push Distance", editingEnabled); - if (editingEnabled && newMaxPushDistance != info.MaxPushDistance) - { - EnforceDistanceOrdering(ref info); - info.MaxPushDistance = Mathf.Max(newMaxPushDistance, info.PressDistance); - } - - if (editingEnabled && EditorGUI.EndChangeCheck()) - { - Undo.RecordObject(target, string.Concat("Modify Button Planes of ", button.name)); - - startPushDistance.floatValue = info.StartPushDistance; - maxPushDistance.floatValue = info.MaxPushDistance; - pressDistance.floatValue = info.PressDistance; - releaseDistanceDelta.floatValue = info.PressDistance - info.ReleaseDistance; - - serializedObject.ApplyModifiedProperties(); - } - - // Draw dotted lines showing path from beginning to end of button path - Handles.color = Color.Lerp(Color.cyan, Color.clear, 0.25f); - Handles.DrawDottedLine(startPlaneVertices[0], endPlaneVertices[0], 2.5f); - Handles.DrawDottedLine(startPlaneVertices[1], endPlaneVertices[1], 2.5f); - Handles.DrawDottedLine(startPlaneVertices[2], endPlaneVertices[2], 2.5f); - Handles.DrawDottedLine(startPlaneVertices[3], endPlaneVertices[3], 2.5f); - } - - private void EnforceDistanceOrdering(ref ButtonInfo info) - { - info.StartPushDistance = ClampStartPushDistance(Mathf.Min(new[] { info.StartPushDistance, info.ReleaseDistance, info.PressDistance, info.MaxPushDistance })); - info.ReleaseDistance = Mathf.Min(new[] { info.ReleaseDistance, info.PressDistance, info.MaxPushDistance }); - info.PressDistance = Mathf.Min(info.PressDistance, info.MaxPushDistance); - } - - private float DrawPlaneAndHandle(Vector3[] vertices, Vector2 halfExtents, float distance, ButtonInfo info, string label, bool editingEnabled) - { - Vector3 centerWorld = button.GetWorldPositionAlongPushDirection(distance); - MakeQuadFromPoint(vertices, centerWorld, halfExtents, info); - - if (VisiblePlanes) - { - Handles.DrawSolidRectangleWithOutline(vertices, Color.Lerp(Handles.color, Color.clear, 0.65f), Handles.color); - } - - // Label - { - Vector3 mousePosition = SceneView.currentDrawingSceneView.camera.ScreenToViewportPoint(Event.current.mousePosition); - mousePosition.y = 1f - mousePosition.y; - mousePosition.z = 0; - Vector3 handleVisiblePos = SceneView.currentDrawingSceneView.camera.WorldToViewportPoint(vertices[1]); - handleVisiblePos.z = 0; - - if (Vector3.Distance(mousePosition, handleVisiblePos) < labelMouseOverDistance) - { - DrawLabel(vertices[1], transform.up - transform.right, label, labelStyle); - HandleUtility.Repaint(); - } - } - - // Draw forward / backward arrows so people know they can drag - if (editingEnabled) - { - float handleSize = HandleUtility.GetHandleSize(vertices[1]) * 0.15f; - - Vector3 dir = (touchable != null) ? touchable.LocalPressDirection : Vector3.forward; - Vector3 planeNormal = button.transform.TransformDirection(dir); - Handles.ArrowHandleCap(0, vertices[1], Quaternion.LookRotation(planeNormal), handleSize * 2, EventType.Repaint); - Handles.ArrowHandleCap(0, vertices[1], Quaternion.LookRotation(-planeNormal), handleSize * 2, EventType.Repaint); - - Vector3 newPosition = Handles.FreeMoveHandle(vertices[1], Quaternion.identity, handleSize, Vector3.zero, Handles.SphereHandleCap); - if (!newPosition.Equals(vertices[1])) - { - distance = button.GetDistanceAlongPushDirection(newPosition); - } - } - - return distance; - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - if (target != null) - { - var helpURL = target.GetType().GetCustomAttribute(); - if (helpURL != null) - { - InspectorUIUtility.RenderDocumentationButton(helpURL.URL); - } - } - - // Ensure there is a touchable. - if (touchable == null) - { - EditorGUILayout.HelpBox($"{target.GetType().Name} requires a {nameof(NearInteractionTouchableSurface)}-derived component on this game object to function.", MessageType.Warning); - - bool isUnityUI = (button.GetComponent() != null); - var typeToAdd = isUnityUI ? typeof(NearInteractionTouchableUnityUI) : typeof(NearInteractionTouchable); - - if (GUILayout.Button($"Add {typeToAdd.Name} component")) - { - Undo.RecordObject(target, string.Concat($"Add {typeToAdd.Name}")); - var addedComponent = button.gameObject.AddComponent(typeToAdd); - touchable = (NearInteractionTouchableSurface)addedComponent; - } - else - { - // It won't work without it, return to avoid nullrefs. - return; - } - } - - // Ensure that the touchable has EventsToReceive set to Touch - if (touchable.EventsToReceive != TouchableEventType.Touch) - { - EditorGUILayout.HelpBox($"The {nameof(NearInteractionTouchableSurface)}-derived component on this game object currently has its EventsToReceive set to '{touchable.EventsToReceive}'. It must be set to 'Touch' in order for PressableButton to function properly.", MessageType.Warning); - - if (GUILayout.Button("Set EventsToReceive to 'Touch'")) - { - Undo.RecordObject(touchable, string.Concat("Set EventsToReceive to Touch on ", touchable.name)); - touchable.EventsToReceive = TouchableEventType.Touch; - } - } - - EditorGUILayout.Space(); - EditorGUILayout.PropertyField(movingButtonVisuals); - - // Ensure that there is a moving button visuals in the UnityUI case. Even if it is not visible, it must be present to receive GraphicsRaycasts. - if (touchable is NearInteractionTouchableUnityUI) - { - if (movingButtonVisuals.objectReferenceValue == null) - { - EditorGUILayout.HelpBox($"When used with a NearInteractionTouchableUnityUI, a MovingButtonVisuals is required, as it receives the GraphicsRaycast that allows pressing the button with near/hand interactions. It does not need to be visible, but it must be able to receive GraphicsRaycasts.", MessageType.Warning); - } - else - { - var movingVisualGameObject = (GameObject)movingButtonVisuals.objectReferenceValue; - var movingGraphic = movingVisualGameObject.GetComponentInChildren(); - if (movingGraphic == null) - { - EditorGUILayout.HelpBox($"When used with a NearInteractionTouchableUnityUI, the MovingButtonVisuals must contain an Image, RawImage, or other Graphic element so that it can receive a GraphicsRaycast.", MessageType.Warning); - } - } - } - - EditorGUILayout.LabelField("Press Settings", EditorStyles.boldLabel); - - EditorGUI.BeginChangeCheck(); - var currentMode = distanceSpaceMode.intValue; - EditorGUILayout.PropertyField(distanceSpaceMode); - // EndChangeCheck returns true when something was selected in the dropdown, but - // doesn't necessarily mean that the value itself changed. Check for that too. - if (EditorGUI.EndChangeCheck() && currentMode != distanceSpaceMode.intValue) - { - // Changing the DistanceSpaceMode requires updating the plane distance values so they stay in the same relative ratio positions - Undo.RecordObject(target, string.Concat("Trigger Plane Distance Conversion of ", button.name)); - button.DistanceSpaceMode = (PressableButton.SpaceMode)distanceSpaceMode.enumValueIndex; - serializedObject.Update(); - } - - DrawPropertiesExcluding(serializedObject, excludeProperties); - - startPushDistance.floatValue = ClampStartPushDistance(startPushDistance.floatValue); - - // show button state in play mode - { - EditorGUI.BeginDisabledGroup(Application.isPlaying == false); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Button State", EditorStyles.boldLabel); - EditorGUILayout.LabelField("Current Push Distance", button.CurrentPushDistance.ToString()); - EditorGUILayout.Toggle("Touching", button.IsTouching); - EditorGUILayout.Toggle("Pressing", button.IsPressing); - EditorGUI.EndDisabledGroup(); - } - - // editor settings - { - EditorGUI.BeginDisabledGroup(Application.isPlaying == true); - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Editor Settings", EditorStyles.boldLabel); - var prevVisiblePlanes = SessionState.GetBool(VisiblePlanesKey, true); - VisiblePlanes = EditorGUILayout.Toggle("Show Button Event Planes", prevVisiblePlanes); - if (VisiblePlanes != prevVisiblePlanes) - { - SessionState.SetBool(VisiblePlanesKey, VisiblePlanes); - EditorUtility.SetDirty(target); - } - - // enable plane editing - { - EditorGUI.BeginDisabledGroup(VisiblePlanes == false); - var prevEditingEnabled = SessionState.GetBool(EditingEnabledKey, false); - EditingEnabled = EditorGUILayout.Toggle("Make Planes Editable", EditingEnabled); - if (EditingEnabled != prevEditingEnabled) - { - SessionState.SetBool(EditingEnabledKey, EditingEnabled); - EditorUtility.SetDirty(target); - } - EditorGUI.EndDisabledGroup(); - } - - EditorGUI.EndDisabledGroup(); - } - - serializedObject.ApplyModifiedProperties(); - } - - private bool IsMouseOverQuad(ButtonInfo info, Vector3 halfExtents, Vector3 centerLocal) - { - Vector3 mousePosition = Event.current.mousePosition; - mousePosition.y = SceneView.currentDrawingSceneView.camera.pixelHeight - mousePosition.y; - Ray mouseRay = SceneView.currentDrawingSceneView.camera.ScreenPointToRay(mousePosition); - - // Transform to local object space. - mouseRay.direction = button.transform.InverseTransformDirection(mouseRay.direction); - mouseRay.origin = button.transform.InverseTransformPoint(mouseRay.origin); - - // Transform to plane space, which transform the plane into the XY plane. - Quaternion quadRotationInverse = Quaternion.Inverse(info.PushRotationLocal); - mouseRay.direction = quadRotationInverse * mouseRay.direction; - mouseRay.origin = quadRotationInverse * (mouseRay.origin - centerLocal); - - // Intersect ray with XY plane. - Plane xyPlane = new Plane(Vector3.forward, 0.0f); - if (xyPlane.Raycast(mouseRay, out float intersectionDistance)) - { - Vector3 intersection = mouseRay.GetPoint(intersectionDistance); - return (Mathf.Abs(intersection.x) <= halfExtents.x && Mathf.Abs(intersection.y) <= halfExtents.y); - } - - return false; - } - - private void DrawLabel(Vector3 origin, Vector3 direction, string content, GUIStyle labelStyle) - { - Color colorOnEnter = Handles.color; - - float handleSize = HandleUtility.GetHandleSize(origin); - Vector3 handlePos = origin + direction.normalized * handleSize * 2; - Handles.Label(handlePos + (Vector3.up * handleSize * 0.1f), content, labelStyle); - Handles.color = Color.Lerp(colorOnEnter, Color.clear, 0.25f); - Handles.DrawDottedLine(origin, handlePos, 5f); - - Handles.color = colorOnEnter; - } - - private void MakeQuadFromPoint(Vector3[] vertices, Vector3 centerWorld, Vector2 halfExtents, ButtonInfo info) - { - Vector3 touchCageOrigin = touchable.LocalCenter; - touchCageOrigin.z = 0.0f; - vertices[0] = transform.TransformVector(info.PushRotationLocal * (new Vector3(-halfExtents.x, -halfExtents.y, 0.0f) + touchCageOrigin)) + centerWorld; - vertices[1] = transform.TransformVector(info.PushRotationLocal * (new Vector3(-halfExtents.x, +halfExtents.y, 0.0f) + touchCageOrigin)) + centerWorld; - vertices[2] = transform.TransformVector(info.PushRotationLocal * (new Vector3(+halfExtents.x, +halfExtents.y, 0.0f) + touchCageOrigin)) + centerWorld; - vertices[3] = transform.TransformVector(info.PushRotationLocal * (new Vector3(+halfExtents.x, -halfExtents.y, 0.0f) + touchCageOrigin)) + centerWorld; - } - - private float ClampStartPushDistance(float startDistance) - { - // If the touchable is UnityUI based, then the start distance must be positive. - if (touchable is NearInteractionTouchableUnityUI && startDistance < 0.0f) - { - return 0.0f; - } - else - { - return startDistance; - } - } - - private static Color ApplyAlpha(Color color, float alpha) - { - return new Color(color.r, color.g, color.b, color.a * alpha); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs.meta deleted file mode 100644 index 25caf4da2..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/PressableButtonInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 64dec9079ac5b5a4890d93fc2336bfe3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler.meta deleted file mode 100644 index e2c9beef8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f35064fd29de030458f4640d10382161 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs deleted file mode 100644 index 5f23813fb..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(ManipulationHandler))] - [CanEditMultipleObjects] - public class ManipulationHandlerInspector : UnityEditor.Editor - { - private SerializedProperty hostTransform; - private SerializedProperty manipulationType; - private SerializedProperty allowFarManipulation; - private SerializedProperty oneHandRotationModeNear; - private SerializedProperty oneHandRotationModeFar; - private SerializedProperty twoHandedManipulationType; - private SerializedProperty releaseBehavior; - private SerializedProperty constraintOnRotation; - private SerializedProperty useLocalSpaceForConstraint; - private SerializedProperty constraintOnMovement; - private SerializedProperty smoothingActive; - private SerializedProperty smoothingAmountOneHandManip; - private SerializedProperty onManipulationStarted; - private SerializedProperty onManipulationEnded; - private SerializedProperty onHoverEntered; - private SerializedProperty onHoverExited; - - bool oneHandedFoldout = true; - bool twoHandedFoldout = true; - bool physicsFoldout = true; - bool constraintsFoldout = true; - bool smoothingFoldout = true; - bool eventsFoldout = true; - - public void OnEnable() - { - // General properties - hostTransform = serializedObject.FindProperty("hostTransform"); - manipulationType = serializedObject.FindProperty("manipulationType"); - allowFarManipulation = serializedObject.FindProperty("allowFarManipulation"); - - // One handed - oneHandRotationModeNear = serializedObject.FindProperty("oneHandRotationModeNear"); - oneHandRotationModeFar = serializedObject.FindProperty("oneHandRotationModeFar"); - - // Two handed - twoHandedManipulationType = serializedObject.FindProperty("twoHandedManipulationType"); - - // Physics - releaseBehavior = serializedObject.FindProperty("releaseBehavior"); - - // Constraints - constraintOnRotation = serializedObject.FindProperty("constraintOnRotation"); - useLocalSpaceForConstraint = serializedObject.FindProperty("useLocalSpaceForConstraint"); - constraintOnMovement = serializedObject.FindProperty("constraintOnMovement"); - - // Smoothing - smoothingActive = serializedObject.FindProperty("smoothingActive"); - smoothingAmountOneHandManip = serializedObject.FindProperty("smoothingAmountOneHandManip"); - - // Manipulation Events - onManipulationStarted = serializedObject.FindProperty("onManipulationStarted"); - onManipulationEnded = serializedObject.FindProperty("onManipulationEnded"); - onHoverEntered = serializedObject.FindProperty("onHoverEntered"); - onHoverExited = serializedObject.FindProperty("onHoverExited"); - } - - public override void OnInspectorGUI() - { - // Draws warning message for deprecated object with button for migration option - MigrationTool.DrawDeprecated((ManipulationHandler)target); - - EditorGUILayout.PropertyField(hostTransform); - EditorGUILayout.PropertyField(manipulationType); - EditorGUILayout.PropertyField(allowFarManipulation); - - var handedness = (ManipulationHandler.HandMovementType)manipulationType.intValue; - - EditorGUILayout.Space(); - GUIStyle style = EditorStyles.foldout; - FontStyle previousStyle = style.fontStyle; - style.fontStyle = FontStyle.Bold; - oneHandedFoldout = EditorGUILayout.Foldout(oneHandedFoldout, "One Handed Manipulation", true); - - if (oneHandedFoldout) - { - if (handedness == ManipulationHandler.HandMovementType.OneHandedOnly || - handedness == ManipulationHandler.HandMovementType.OneAndTwoHanded) - { - EditorGUILayout.PropertyField(oneHandRotationModeNear); - EditorGUILayout.PropertyField(oneHandRotationModeFar); - } - else - { - EditorGUILayout.HelpBox("One handed manipulation disabled. If you wish to enable one handed manipulation select it as a Manipulation Type above.", MessageType.Info); - } - } - - EditorGUILayout.Space(); - twoHandedFoldout = EditorGUILayout.Foldout(twoHandedFoldout, "Two Handed Manipulation", true); - - if (twoHandedFoldout) - { - if (handedness == ManipulationHandler.HandMovementType.TwoHandedOnly || - handedness == ManipulationHandler.HandMovementType.OneAndTwoHanded) - { - EditorGUILayout.PropertyField(twoHandedManipulationType); - } - else - { - EditorGUILayout.HelpBox("Two handed manipulation disabled. If you wish to enable two handed manipulation select it as a Manipulation Type above.", MessageType.Info); - } - } - - var mh = (ManipulationHandler)target; - var rb = mh.GetComponent(); - - EditorGUILayout.Space(); - physicsFoldout = EditorGUILayout.Foldout(physicsFoldout, "Physics", true); - - if (physicsFoldout) - { - if (rb != null) - { - EditorGUILayout.PropertyField(releaseBehavior); - } - else - { - EditorGUILayout.HelpBox("Physics options disabled. If you wish to enable physics options, add a Rigidbody component to this object.", MessageType.Info); - } - } - - EditorGUILayout.Space(); - constraintsFoldout = EditorGUILayout.Foldout(constraintsFoldout, "Constraints", true); - - if (constraintsFoldout) - { - EditorGUILayout.PropertyField(constraintOnRotation); - EditorGUILayout.PropertyField(useLocalSpaceForConstraint); - EditorGUILayout.PropertyField(constraintOnMovement); - } - - EditorGUILayout.Space(); - smoothingFoldout = EditorGUILayout.Foldout(smoothingFoldout, "Smoothing", true); - - if (smoothingFoldout) - { - EditorGUILayout.PropertyField(smoothingActive); - EditorGUILayout.PropertyField(smoothingAmountOneHandManip); - } - - EditorGUILayout.Space(); - eventsFoldout = EditorGUILayout.Foldout(eventsFoldout, "Manipulation Events", true); - - if (eventsFoldout) - { - EditorGUILayout.PropertyField(onManipulationStarted); - EditorGUILayout.PropertyField(onManipulationEnded); - EditorGUILayout.PropertyField(onHoverEntered); - EditorGUILayout.PropertyField(onHoverExited); - } - - // reset foldouts style - style.fontStyle = previousStyle; - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs.meta deleted file mode 100644 index 88f419f95..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ManipulationHandler/ManipulationHandlerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1ccdebd97d3a97940ba5a73f0bd637eb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator.meta deleted file mode 100644 index 6cca10dc9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3533cf7a24e0bc94bb062e62ace84b31 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs deleted file mode 100644 index 768aeb9ee..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - /// - /// A custom inspector for ObjectManipulator used to separate - /// ObjectManipulator options into distinct foldout panels. - /// - [CustomEditor(typeof(ObjectManipulator))] - [CanEditMultipleObjects] - public class ObjectManipulatorInspector : UnityEditor.Editor - { - private SerializedProperty hostTransform; - private SerializedProperty manipulationType; - private SerializedProperty allowFarManipulation; - private SerializedProperty useForcesForNearManipulation; - - private SerializedProperty oneHandRotationModeNear; - private SerializedProperty oneHandRotationModeFar; - - private SerializedProperty twoHandedManipulationType; - - private SerializedProperty releaseBehavior; - - private SerializedProperty smoothingFar; - private SerializedProperty smoothingNear; - private SerializedProperty moveLerpTime; - private SerializedProperty rotateLerpTime; - private SerializedProperty scaleLerpTime; - - private SerializedProperty onManipulationStarted; - private SerializedProperty onManipulationEnded; - private SerializedProperty onHoverEntered; - private SerializedProperty onHoverExited; - - private SerializedProperty enableConstraints; - private SerializedProperty constraintManager; - - private SerializedProperty elasticsManager; - - bool oneHandedFoldout = true; - bool twoHandedFoldout = true; - bool constraintsFoldout = true; - bool physicsFoldout = true; - bool smoothingFoldout = true; - bool eventsFoldout = true; - - public void OnEnable() - { - // General properties - hostTransform = serializedObject.FindProperty("hostTransform"); - manipulationType = serializedObject.FindProperty("manipulationType"); - allowFarManipulation = serializedObject.FindProperty("allowFarManipulation"); - - // One handed - oneHandRotationModeNear = serializedObject.FindProperty("oneHandRotationModeNear"); - oneHandRotationModeFar = serializedObject.FindProperty("oneHandRotationModeFar"); - - // Two handed - twoHandedManipulationType = serializedObject.FindProperty("twoHandedManipulationType"); - - // Physics - releaseBehavior = serializedObject.FindProperty("releaseBehavior"); - useForcesForNearManipulation = serializedObject.FindProperty("useForcesForNearManipulation"); - - // Smoothing - smoothingFar = serializedObject.FindProperty("smoothingFar"); - smoothingNear = serializedObject.FindProperty("smoothingNear"); - moveLerpTime = serializedObject.FindProperty("moveLerpTime"); - rotateLerpTime = serializedObject.FindProperty("rotateLerpTime"); - scaleLerpTime = serializedObject.FindProperty("scaleLerpTime"); - - // Constraints - enableConstraints = serializedObject.FindProperty("enableConstraints"); - constraintManager = serializedObject.FindProperty("constraintsManager"); - - // Elastics - elasticsManager = serializedObject.FindProperty("elasticsManager"); - - // Manipulation Events - onManipulationStarted = serializedObject.FindProperty("onManipulationStarted"); - onManipulationEnded = serializedObject.FindProperty("onManipulationEnded"); - onHoverEntered = serializedObject.FindProperty("onHoverEntered"); - onHoverExited = serializedObject.FindProperty("onHoverExited"); - } - - public override void OnInspectorGUI() - { - EditorGUILayout.PropertyField(hostTransform); - EditorGUILayout.PropertyField(manipulationType); - EditorGUILayout.PropertyField(allowFarManipulation); - - var handedness = (ManipulationHandFlags)manipulationType.intValue; - - EditorGUILayout.Space(); - GUIStyle style = EditorStyles.foldout; - FontStyle previousStyle = style.fontStyle; - style.fontStyle = FontStyle.Bold; - oneHandedFoldout = EditorGUILayout.Foldout(oneHandedFoldout, "One Handed Manipulation", true); - - if (oneHandedFoldout) - { - if (handedness.HasFlag(ManipulationHandFlags.OneHanded)) - { - EditorGUILayout.PropertyField(oneHandRotationModeNear); - EditorGUILayout.PropertyField(oneHandRotationModeFar); - } - else - { - EditorGUILayout.HelpBox("One handed manipulation disabled. If you wish to enable one handed manipulation select it as a Manipulation Type above.", MessageType.Info); - } - } - - EditorGUILayout.Space(); - twoHandedFoldout = EditorGUILayout.Foldout(twoHandedFoldout, "Two Handed Manipulation", true); - - if (twoHandedFoldout) - { - if (handedness.HasFlag(ManipulationHandFlags.TwoHanded)) - { - EditorGUILayout.PropertyField(twoHandedManipulationType); - } - else - { - EditorGUILayout.HelpBox("Two handed manipulation disabled. If you wish to enable two handed manipulation select it as a Manipulation Type above.", MessageType.Info); - } - } - - var mh = (ObjectManipulator)target; - var rb = mh.HostTransform.GetComponent(); - - EditorGUILayout.Space(); - - constraintsFoldout = ConstraintManagerInspector.DrawConstraintManagerFoldout(mh.gameObject, - enableConstraints, - constraintManager, - constraintsFoldout); - - EditorGUILayout.Space(); - physicsFoldout = EditorGUILayout.Foldout(physicsFoldout, "Physics", true); - - if (physicsFoldout) - { - if (rb != null) - { - EditorGUILayout.PropertyField(releaseBehavior); - EditorGUILayout.PropertyField(useForcesForNearManipulation); - } - else - { - EditorGUILayout.HelpBox("Physics options disabled. If you wish to enable physics options, add a Rigidbody component to this object.", MessageType.Info); - } - } - - EditorGUILayout.Space(); - smoothingFoldout = EditorGUILayout.Foldout(smoothingFoldout, "Smoothing", true); - - if (smoothingFoldout) - { - EditorGUILayout.PropertyField(smoothingFar); - EditorGUILayout.PropertyField(smoothingNear); - EditorGUILayout.PropertyField(moveLerpTime); - EditorGUILayout.PropertyField(rotateLerpTime); - EditorGUILayout.PropertyField(scaleLerpTime); - } - - EditorGUILayout.Space(); - eventsFoldout = EditorGUILayout.Foldout(eventsFoldout, "Manipulation Events", true); - - if (eventsFoldout) - { - EditorGUILayout.PropertyField(onManipulationStarted); - EditorGUILayout.PropertyField(onManipulationEnded); - EditorGUILayout.PropertyField(onHoverEntered); - EditorGUILayout.PropertyField(onHoverExited); - } - - EditorGUILayout.Space(); - - Microsoft.MixedReality.Toolkit.Experimental.Editor.ElasticsManagerInspector.DrawElasticsManagerLink(elasticsManager, mh.gameObject); - - EditorGUILayout.Space(); - - // reset foldouts style - style.fontStyle = previousStyle; - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs.meta deleted file mode 100644 index 9f6144cae..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ObjectManipulator/ObjectManipulatorInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 65a9f333b4077be42a00a8fddd8f127c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers.meta deleted file mode 100644 index ae074caa3..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b010cab48cb64c8580770851e861de40 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs deleted file mode 100644 index c0789f974..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Input.Editor -{ - [CustomEditor(typeof(BaseControllerPointer))] - public class BaseControllerPointerInspector : ControllerPoseSynchronizerInspector - { - private SerializedProperty cursorPrefab; - private SerializedProperty disableCursorOnStart; - private SerializedProperty setCursorVisibilityOnSourceDetected; - private SerializedProperty raycastOrigin; - private SerializedProperty pointerExtent; - private SerializedProperty defaultPointerExtent; - private SerializedProperty activeHoldAction; - private SerializedProperty pointerAction; - private SerializedProperty pointerOrientation; - private SerializedProperty requiresHoldAction; - private SerializedProperty requiresActionBeforeEnabling; - - private bool basePointerFoldout = true; - - protected bool DrawBasePointerActions = true; - - protected override void OnEnable() - { - base.OnEnable(); - - cursorPrefab = serializedObject.FindProperty("cursorPrefab"); - disableCursorOnStart = serializedObject.FindProperty("disableCursorOnStart"); - setCursorVisibilityOnSourceDetected = serializedObject.FindProperty("setCursorVisibilityOnSourceDetected"); - raycastOrigin = serializedObject.FindProperty("raycastOrigin"); - pointerExtent = serializedObject.FindProperty("pointerExtent"); - defaultPointerExtent = serializedObject.FindProperty("defaultPointerExtent"); - activeHoldAction = serializedObject.FindProperty("activeHoldAction"); - pointerAction = serializedObject.FindProperty("pointerAction"); - pointerOrientation = serializedObject.FindProperty("pointerOrientation"); - requiresHoldAction = serializedObject.FindProperty("requiresHoldAction"); - requiresActionBeforeEnabling = serializedObject.FindProperty("requiresActionBeforeEnabling"); - - DrawHandednessProperty = false; - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - serializedObject.Update(); - - basePointerFoldout = EditorGUILayout.Foldout(basePointerFoldout, "Base Pointer Settings", true); - - if (basePointerFoldout) - { - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(cursorPrefab); - EditorGUILayout.PropertyField(disableCursorOnStart); - EditorGUILayout.PropertyField(setCursorVisibilityOnSourceDetected); - EditorGUILayout.PropertyField(raycastOrigin); - EditorGUILayout.PropertyField(pointerExtent); - EditorGUILayout.PropertyField(defaultPointerExtent); - - // Pointer orientation is a field that is present on some pointers (for example, TeleportPointer) - // but not on others (for example, BaseControllerPointer). - if (pointerOrientation != null) - { - EditorGUILayout.PropertyField(pointerOrientation); - } - - EditorGUILayout.PropertyField(pointerAction); - - if (DrawBasePointerActions) - { - EditorGUILayout.PropertyField(requiresHoldAction); - - if (requiresHoldAction.boolValue) - { - EditorGUILayout.PropertyField(activeHoldAction); - } - - EditorGUILayout.PropertyField(requiresActionBeforeEnabling); - } - - EditorGUI.indentLevel--; - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs.meta deleted file mode 100644 index 9f0e88296..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2f03c53c91bc42e4bdabc77816066a4f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs deleted file mode 100644 index 4a9ef1ed1..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input.Editor; -using Microsoft.MixedReality.Toolkit.Input; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(BaseMousePointer))] - public class BaseMousePointerInspector : BaseControllerPointerInspector - { - private SerializedProperty hideCursorWhenInactive; - private SerializedProperty hideTimeout; - private SerializedProperty movementThresholdToUnHide; - private bool mousePointerFoldout = true; - - protected override void OnEnable() - { - DrawBasePointerActions = false; - base.OnEnable(); - - hideCursorWhenInactive = serializedObject.FindProperty("hideCursorWhenInactive"); - movementThresholdToUnHide = serializedObject.FindProperty("movementThresholdToUnHide"); - hideTimeout = serializedObject.FindProperty("hideTimeout"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - mousePointerFoldout = EditorGUILayout.Foldout(mousePointerFoldout, "Mouse Pointer Settings", true); - - if (mousePointerFoldout) - { - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(hideCursorWhenInactive); - - if (hideCursorWhenInactive.boolValue) - { - EditorGUILayout.PropertyField(hideTimeout); - EditorGUILayout.PropertyField(movementThresholdToUnHide); - } - - EditorGUI.indentLevel--; - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs.meta deleted file mode 100644 index a8317a3ae..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/BaseMousePointerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d9fa402228f346469ec300be7430b5aa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs deleted file mode 100644 index 006d69891..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input.Editor; -using Microsoft.MixedReality.Toolkit.Input; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(LinePointer))] - public class LinePointerInspector : BaseControllerPointerInspector - { - private SerializedProperty lineColorSelected; - private SerializedProperty lineColorValid; - private SerializedProperty lineColorInvalid; - private SerializedProperty lineColorNoTarget; - private SerializedProperty lineColorLockFocus; - private SerializedProperty lineCastResolution; - private SerializedProperty lineRenderers; - - private bool linePointerFoldout = true; - private const int maxRecommendedLinecastResolution = 20; - - protected override void OnEnable() - { - base.OnEnable(); - - lineColorSelected = serializedObject.FindProperty("LineColorSelected"); - lineColorValid = serializedObject.FindProperty("LineColorValid"); - lineColorInvalid = serializedObject.FindProperty("LineColorInvalid"); - lineColorNoTarget = serializedObject.FindProperty("LineColorNoTarget"); - lineColorLockFocus = serializedObject.FindProperty("LineColorLockFocus"); - lineCastResolution = serializedObject.FindProperty("LineCastResolution"); - lineRenderers = serializedObject.FindProperty("lineRenderers"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - linePointerFoldout = EditorGUILayout.Foldout(linePointerFoldout, "Line Pointer Settings", true); - - if (linePointerFoldout) - { - EditorGUI.indentLevel++; - - int lineCastResolutionValue = lineCastResolution.intValue; - if (lineCastResolutionValue > maxRecommendedLinecastResolution) - { - EditorGUILayout.LabelField("Note: values above " + maxRecommendedLinecastResolution + " should only be used when your line is expected to be highly non-uniform.", EditorStyles.miniLabel); - } - - EditorGUILayout.PropertyField(lineCastResolution); - EditorGUILayout.PropertyField(lineColorSelected); - EditorGUILayout.PropertyField(lineColorValid); - EditorGUILayout.PropertyField(lineColorInvalid); - EditorGUILayout.PropertyField(lineColorNoTarget); - EditorGUILayout.PropertyField(lineColorLockFocus); - EditorGUILayout.PropertyField(lineRenderers, true); - EditorGUI.indentLevel--; - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs.meta deleted file mode 100644 index 9ec60ef84..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/LinePointerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 02a01e29338f420fb8b988844a911b91 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs deleted file mode 100644 index cab529fe8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Teleport.Editor -{ - [CustomEditor(typeof(ParabolicTeleportPointer))] - public class ParabolicTeleportPointerInspector : TeleportPointerInspector - { - private SerializedProperty minParabolaVelocity; - private SerializedProperty maxParabolaVelocity; - private SerializedProperty minDistanceModifier; - private SerializedProperty maxDistanceModifier; - - private bool parabolicTeleportFoldout = true; - - protected override void OnEnable() - { - base.OnEnable(); - - minParabolaVelocity = serializedObject.FindProperty("minParabolaVelocity"); - maxParabolaVelocity = serializedObject.FindProperty("maxParabolaVelocity"); - minDistanceModifier = serializedObject.FindProperty("minDistanceModifier"); - maxDistanceModifier = serializedObject.FindProperty("maxDistanceModifier"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - parabolicTeleportFoldout = EditorGUILayout.Foldout(parabolicTeleportFoldout, "Parabolic Pointer Options", true); - - if (parabolicTeleportFoldout) - { - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(minParabolaVelocity); - EditorGUILayout.PropertyField(maxParabolaVelocity); - EditorGUILayout.PropertyField(minDistanceModifier); - EditorGUILayout.PropertyField(maxDistanceModifier); - EditorGUI.indentLevel--; - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs.meta deleted file mode 100644 index ffbb569d3..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bc63e2c056334cbaa27759373a9ba8ec -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs deleted file mode 100644 index 589f367c9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input.Editor; -using Microsoft.MixedReality.Toolkit.Input; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Input -{ - [CustomEditor(typeof(SpherePointer))] - public class SpherePointerInspector : BaseControllerPointerInspector - { - private SerializedProperty nearObjectSectorAngle; - private SerializedProperty sphereCastRadius; - private SerializedProperty pullbackDistance; - private SerializedProperty nearObjectMargin; - private SerializedProperty nearObjectSmoothingFactor; - private SerializedProperty grabLayerMasks; - private SerializedProperty triggerInteraction; - private SerializedProperty sceneQueryBufferSize; - private SerializedProperty ignoreCollidersNotInFOV; - - - private bool spherePointerFoldout = true; - - protected override void OnEnable() - { - base.OnEnable(); - - sphereCastRadius = serializedObject.FindProperty("sphereCastRadius"); - pullbackDistance = serializedObject.FindProperty("pullbackDistance"); - sceneQueryBufferSize = serializedObject.FindProperty("sceneQueryBufferSize"); - nearObjectSectorAngle = serializedObject.FindProperty("nearObjectSectorAngle"); - nearObjectMargin = serializedObject.FindProperty("nearObjectMargin"); - nearObjectSmoothingFactor = serializedObject.FindProperty("nearObjectSmoothingFactor"); - grabLayerMasks = serializedObject.FindProperty("grabLayerMasks"); - triggerInteraction = serializedObject.FindProperty("triggerInteraction"); - ignoreCollidersNotInFOV = serializedObject.FindProperty("ignoreCollidersNotInFOV"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - serializedObject.Update(); - - spherePointerFoldout = EditorGUILayout.Foldout(spherePointerFoldout, "Sphere Pointer Settings", true); - - if (spherePointerFoldout) - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(nearObjectSectorAngle); - EditorGUILayout.PropertyField(sphereCastRadius); - EditorGUILayout.PropertyField(pullbackDistance); - EditorGUILayout.PropertyField(sceneQueryBufferSize); - EditorGUILayout.PropertyField(nearObjectMargin); - EditorGUILayout.PropertyField(nearObjectSmoothingFactor); - EditorGUILayout.PropertyField(triggerInteraction); - EditorGUILayout.PropertyField(grabLayerMasks, true); - EditorGUILayout.PropertyField(ignoreCollidersNotInFOV); - } - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs.meta deleted file mode 100644 index 9abb7ec00..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/SpherePointerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5ea8c3a9834e99f4dada04051d52f347 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs deleted file mode 100644 index 5972a2f7b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Teleport.Editor -{ - [CustomEditor(typeof(TeleportPointer))] - public class TeleportPointerInspector : LinePointerInspector - { - private SerializedProperty teleportAction; - private SerializedProperty inputThreshold; - private SerializedProperty angleOffset; - private SerializedProperty teleportActivationAngle; - private SerializedProperty rotateActivationAngle; - private SerializedProperty rotationAmount; - private SerializedProperty backStrafeActivationAngle; - private SerializedProperty strafeAmount; - private SerializedProperty upDirectionThreshold; - private SerializedProperty lineColorHotSpot; - private SerializedProperty validLayers; - private SerializedProperty invalidLayers; - private SerializedProperty pointerAudioSource; - private SerializedProperty teleportRequestedClip; - private SerializedProperty teleportCompletedClip; - - private bool teleportPointerFoldout = true; - - protected override void OnEnable() - { - DrawBasePointerActions = false; - base.OnEnable(); - - teleportAction = serializedObject.FindProperty("teleportAction"); - inputThreshold = serializedObject.FindProperty("inputThreshold"); - angleOffset = serializedObject.FindProperty("angleOffset"); - teleportActivationAngle = serializedObject.FindProperty("teleportActivationAngle"); - rotateActivationAngle = serializedObject.FindProperty("rotateActivationAngle"); - rotationAmount = serializedObject.FindProperty("rotationAmount"); - backStrafeActivationAngle = serializedObject.FindProperty("backStrafeActivationAngle"); - strafeAmount = serializedObject.FindProperty("strafeAmount"); - upDirectionThreshold = serializedObject.FindProperty("upDirectionThreshold"); - lineColorHotSpot = serializedObject.FindProperty("LineColorHotSpot"); - validLayers = serializedObject.FindProperty("ValidLayers"); - invalidLayers = serializedObject.FindProperty("InvalidLayers"); - - pointerAudioSource = serializedObject.FindProperty("pointerAudioSource"); - teleportRequestedClip = serializedObject.FindProperty("teleportRequestedClip"); - teleportCompletedClip = serializedObject.FindProperty("teleportCompletedClip"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - serializedObject.Update(); - - teleportPointerFoldout = EditorGUILayout.Foldout(teleportPointerFoldout, "Teleport Pointer Settings", true); - - if (teleportPointerFoldout) - { - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(teleportAction); - EditorGUILayout.PropertyField(inputThreshold); - EditorGUILayout.PropertyField(angleOffset); - EditorGUILayout.PropertyField(teleportActivationAngle); - EditorGUILayout.PropertyField(rotateActivationAngle); - EditorGUILayout.PropertyField(rotationAmount); - EditorGUILayout.PropertyField(backStrafeActivationAngle); - EditorGUILayout.PropertyField(strafeAmount); - EditorGUILayout.PropertyField(upDirectionThreshold); - EditorGUILayout.PropertyField(lineColorHotSpot); - EditorGUILayout.PropertyField(validLayers); - EditorGUILayout.PropertyField(invalidLayers); - EditorGUILayout.PropertyField(pointerAudioSource); - EditorGUILayout.PropertyField(teleportRequestedClip); - EditorGUILayout.PropertyField(teleportCompletedClip); - EditorGUI.indentLevel--; - } - - serializedObject.ApplyModifiedProperties(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs.meta deleted file mode 100644 index 10cfbda06..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Pointers/TeleportPointerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ad4a34f98b834de1b43f3db85e2512c8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection.meta deleted file mode 100644 index dbff701d4..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cbfa23149065d944f8df6e3c4039cd4b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs deleted file mode 100644 index b372313f0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs +++ /dev/null @@ -1,550 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -using EditMode = Microsoft.MixedReality.Toolkit.UI.ScrollingObjectCollection.EditMode; -using PaginationMode = Microsoft.MixedReality.Toolkit.UI.ScrollingObjectCollection.PaginationMode; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(ScrollingObjectCollection))] - public class ScrollingObjectCollectionInspector : UnityEditor.Editor - { - private SerializedProperty cellHeight; - private SerializedProperty cellWidth; - private SerializedProperty cellDepth; - - private SerializedProperty canScroll; - private SerializedProperty scrollDirection; - private SerializedProperty maskEditMode; - private SerializedProperty maskEnabled; - private SerializedProperty colliderEditMode; - private SerializedProperty tiersPerPage; - private SerializedProperty cellsPerTier; - private SerializedProperty useCameraPreRender; - - private SerializedProperty velocityType; - private SerializedProperty velocityMultiplier; - private SerializedProperty velocityDampen; - private SerializedProperty bounceMultiplier; - private SerializedProperty animationCurve; - private SerializedProperty animationLength; - - private SerializedProperty clickEvent; - private SerializedProperty touchStartedEvent; - private SerializedProperty touchEndedEvent; - private SerializedProperty momentumStartedEvent; - private SerializedProperty momentumEndedEvent; - - private SerializedProperty handDeltaScrollThreshold; - private SerializedProperty frontTouchDistance; - - private SerializedProperty releaseThresholdFront; - private SerializedProperty releaseThresholdBack; - private SerializedProperty releaseThresholdLeftRight; - private SerializedProperty releaseThresholdTopBottom; - - private Shader MRTKtmp; - - private ScrollingObjectCollection scrollView; - - private static bool visibleDebugPlanes = false; - - private Color touchPlaneColor = Color.cyan; - private Color releasePlaneColor = Color.magenta; - private static GUIStyle labelStyle; - private Vector3 mouseScreenPosition; - private float smallestMouseHandleDistance; - - private const string TouchPlaneDescription = "Touch plane"; - private const string LeftReleasePlaneDescription = "Left Release Plane"; - private const string RightReleasePlaneDescription = "Right Release Plane"; - private const string TopReleasePlaneDescription = "Top release Plane"; - private const string BottomReleasePlaneDescription = "Bottom Release Plane"; - private const string BackReleasePlaneDescription = "Back release Plane"; - private const string FrontReleasePlaneDescription = "Front Release Plane"; - - private const string ScrollViewDocURL = "https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_ScrollView.html"; - - protected const string ShowAdvancedPrefKey = "ScrollViewInspectorShowAdvanced"; - protected const string ShowEventsPrefKey = "ScrollViewInspectorShowEvents"; - protected const string ShowDebugOptionsPrefKey = "ScrollViewInspectorShowDebugOptions"; - - private bool ShowDebugPagination; - private PaginationMode debugPaginationMode; - - private bool animateTransition = true; - private int paginationMoveNumber = 1; - - private void OnEnable() - { - cellHeight = serializedObject.FindProperty("cellHeight"); - cellWidth = serializedObject.FindProperty("cellWidth"); - cellDepth = serializedObject.FindProperty("cellDepth"); - - cellsPerTier = serializedObject.FindProperty("cellsPerTier"); - canScroll = serializedObject.FindProperty("canScroll"); - scrollDirection = serializedObject.FindProperty("scrollDirection"); - maskEditMode = serializedObject.FindProperty("maskEditMode"); - maskEnabled = serializedObject.FindProperty("maskEnabled"); - colliderEditMode = serializedObject.FindProperty("colliderEditMode"); - tiersPerPage = serializedObject.FindProperty("tiersPerPage"); - useCameraPreRender = serializedObject.FindProperty("useOnPreRender"); - - handDeltaScrollThreshold = serializedObject.FindProperty("handDeltaScrollThreshold"); - - velocityType = serializedObject.FindProperty("typeOfVelocity"); - velocityMultiplier = serializedObject.FindProperty("velocityMultiplier"); - velocityDampen = serializedObject.FindProperty("velocityDampen"); - bounceMultiplier = serializedObject.FindProperty("bounceMultiplier"); - animationCurve = serializedObject.FindProperty("paginationCurve"); - animationLength = serializedObject.FindProperty("animationLength"); - - clickEvent = serializedObject.FindProperty("OnClick"); - touchStartedEvent = serializedObject.FindProperty("OnTouchStarted"); - touchEndedEvent = serializedObject.FindProperty("OnTouchEnded"); - momentumStartedEvent = serializedObject.FindProperty("OnMomentumStarted"); - momentumEndedEvent = serializedObject.FindProperty("OnMomentumEnded"); - - // Serialized properties for visualization - releaseThresholdFront = serializedObject.FindProperty("releaseThresholdFront"); - releaseThresholdBack = serializedObject.FindProperty("releaseThresholdBack"); - releaseThresholdLeftRight = serializedObject.FindProperty("releaseThresholdLeftRight"); - releaseThresholdTopBottom = serializedObject.FindProperty("releaseThresholdTopBottom"); - frontTouchDistance = serializedObject.FindProperty("frontTouchDistance"); - - scrollView = (ScrollingObjectCollection)target; - MRTKtmp = Shader.Find("Mixed Reality Toolkit/TextMeshPro"); - - if (labelStyle == null) - { - labelStyle = new GUIStyle(); - labelStyle.normal.textColor = Color.white; - } - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - using (var check = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.Space(); - - DrawGeneralSection(); - DrawPaginationSection(); - DrawAdvancedSettingsSection(); - DrawEventsSection(); - - serializedObject.ApplyModifiedProperties(); - - if (check.changed) - { - scrollView.UpdateContent(); - - foreach (var renderer in scrollView.GetComponentsInChildren(true)) - { - if (renderer.sharedMaterial == null) - { - continue; - } - - if (!CheckForStandardShader(renderer)) - { - Debug.LogWarning(renderer.name + " has a renderer that is not using " + StandardShaderUtility.MrtkStandardShaderName + ". This will result in unexpected results with ScrollingObjectCollection."); - } - } - } - } - } - - private void DrawEventsSection() - { - if (InspectorUIUtility.DrawSectionFoldoutWithKey("Events", ShowEventsPrefKey, MixedRealityStylesUtility.BoldFoldoutStyle)) - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(clickEvent); - EditorGUILayout.PropertyField(touchStartedEvent); - EditorGUILayout.PropertyField(touchEndedEvent); - EditorGUILayout.PropertyField(momentumStartedEvent); - EditorGUILayout.PropertyField(momentumEndedEvent); - EditorGUILayout.Space(); - } - } - } - - private void DrawPaginationSection() - { - EditorGUILayout.LabelField("Pagination", EditorStyles.boldLabel); - - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(cellsPerTier); - EditorGUILayout.PropertyField(tiersPerPage); - - // Draw cell dimension fields - Rect rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); - EditorGUI.PrefixLabel(rect, new GUIContent("Page Cell")); - - int oldIndent = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - - EditorGUIUtility.labelWidth = 0; - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth - 5f) / 3f; - EditorGUIUtility.labelWidth = Mathf.Min(rect.width * 0.39f, 80f); - - EditorGUI.PropertyField(rect, cellWidth, new GUIContent("Width")); - rect.x += rect.width + 2f; - EditorGUI.PropertyField(rect, cellHeight, new GUIContent("Height")); - - rect.x += rect.width + 2f; - EditorGUI.PropertyField(rect, cellDepth, new GUIContent("Depth")); - - // Reseting layout - EditorGUIUtility.labelWidth = 0; - EditorGUI.indentLevel = oldIndent; - EditorGUILayout.Space(); - } - } - - private void DrawGeneralSection() - { - using (new EditorGUILayout.HorizontalScope()) - { - EditorGUILayout.LabelField("General", EditorStyles.boldLabel); - InspectorUIUtility.RenderDocumentationButton(ScrollViewDocURL); - } - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.PropertyField(scrollDirection); - EditorGUILayout.Space(); - } - } - - private void DrawAdvancedSettingsSection() - { - if (InspectorUIUtility.DrawSectionFoldoutWithKey("Advanced settings", ShowAdvancedPrefKey, MixedRealityStylesUtility.BoldFoldoutStyle)) - { - using (new EditorGUI.IndentLevelScope(2)) - { - EditorGUILayout.PropertyField(maskEditMode); - EditorGUILayout.PropertyField(colliderEditMode); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(canScroll); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(useCameraPreRender); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(animationCurve); - EditorGUILayout.PropertyField(animationLength); - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(handDeltaScrollThreshold); - EditorGUILayout.PropertyField(frontTouchDistance); - EditorGUILayout.Space(); - - DrawTouchReleaseThresholdsSection(); - EditorGUILayout.Space(); - - DrawVelocitySection(); - EditorGUILayout.Space(); - - DrawDebugSection(); - EditorGUILayout.Space(); - } - } - } - - private void DrawDebugSection() - { - if (InspectorUIUtility.DrawSectionFoldoutWithKey("Debug Options", ShowDebugOptionsPrefKey, MixedRealityStylesUtility.BoldFoldoutStyle)) - { - using (new EditorGUI.IndentLevelScope()) - { - using (var check = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(maskEnabled); - if (check.changed) - { - scrollView.MaskEnabled = maskEnabled.boolValue; - } - } - - using (new EditorGUI.DisabledGroupScope(EditorApplication.isPlaying)) - { - visibleDebugPlanes = EditorGUILayout.Toggle("Show Threshold Planes", visibleDebugPlanes); - EditorGUILayout.Space(); - } - } - - using (new EditorGUI.IndentLevelScope()) - { - using (new EditorGUI.DisabledGroupScope(!EditorApplication.isPlaying)) - { - if (ShowDebugPagination = EditorGUILayout.Foldout(ShowDebugPagination, new GUIContent("Debug Pagination", "Pagination is only available during playmode."), MixedRealityStylesUtility.BoldFoldoutStyle)) - { - using (new EditorGUI.IndentLevelScope()) - { - animateTransition = EditorGUILayout.Toggle(new GUIContent("Animate", "Toggling will use animation to move scroller to new position."), animateTransition); - - using (new EditorGUILayout.HorizontalScope()) - { - debugPaginationMode = (PaginationMode)EditorGUILayout.EnumPopup(new GUIContent("Pagination Mode"), debugPaginationMode, GUILayout.Width(400.0f)); - paginationMoveNumber = EditorGUILayout.IntField(paginationMoveNumber); - - if (GUILayout.Button("Move")) - { - switch (debugPaginationMode) - { - case PaginationMode.ByTier: - default: - scrollView.MoveByTiers(paginationMoveNumber, animateTransition); - break; - case PaginationMode.ByPage: - scrollView.MoveByPages(paginationMoveNumber, animateTransition); - break; - case PaginationMode.ToCellIndex: - scrollView.MoveToIndex(paginationMoveNumber, animateTransition); - break; - } - } - } - } - } - } - } - } - } - - private void DrawVelocitySection() - { - EditorGUILayout.LabelField("Velocity", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(velocityType); - - if (velocityType.enumValueIndex <= 1) - { - EditorGUILayout.PropertyField(velocityMultiplier); - EditorGUILayout.PropertyField(velocityDampen); - EditorGUILayout.PropertyField(bounceMultiplier); - } - } - - private void DrawTouchReleaseThresholdsSection() - { - Rect rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); - EditorGUI.PrefixLabel(rect, new GUIContent("Release threshold", "Withdraw amount, in meters, from the the scroll view boundaries that triggers a touch release."), EditorStyles.boldLabel); - - int oldIndent = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth - 3f) / 2f; - EditorGUIUtility.labelWidth = Mathf.Min(rect.width * 0.55f, 80f); - - EditorGUI.PropertyField(rect, releaseThresholdFront, new GUIContent("Front")); - rect.x += rect.width + 3f; - EditorGUI.PropertyField(rect, releaseThresholdLeftRight, new GUIContent("Left-Right")); - rect.x += rect.width + 3f; - - rect = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight); - EditorGUIUtility.labelWidth = 0; - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth - 3f) / 2f; - EditorGUIUtility.labelWidth = Mathf.Min(rect.width * 0.55f, 80f); - - EditorGUI.PropertyField(rect, releaseThresholdBack, new GUIContent("Back")); - rect.x += rect.width + 3f; - EditorGUI.PropertyField(rect, releaseThresholdTopBottom, new GUIContent("Top-Bottom")); - - // Reseting layout - EditorGUIUtility.labelWidth = 0; - EditorGUI.indentLevel = oldIndent; - } - - [DrawGizmo(GizmoType.Selected)] - private void OnSceneGUI() - { - if (Event.current.type == EventType.Repaint) - { - if (visibleDebugPlanes) - { - GetMouseViewportPosition(); - - smallestMouseHandleDistance = float.PositiveInfinity; - - DrawAllDebugPlanes(); - } - } - } - - /// - /// Draws the touch plane used for scroll engage detection. - /// - private void DrawTouchPlane() - { - Vector3 planeLocalPosition = Vector3.forward * frontTouchDistance.floatValue * -1.0f; - Vector3 widthHalfExtent = scrollView.transform.right * scrollView.ClippingObject.transform.lossyScale.x / 2; - Vector3 heightHalfExtent = scrollView.transform.up * scrollView.ClippingObject.transform.lossyScale.y / 2; - - Quaternion handleRotation = Quaternion.LookRotation(scrollView.transform.forward * -1.0f); - - DrawPlaneAndHandle(planeLocalPosition, widthHalfExtent, heightHalfExtent, handleRotation, touchPlaneColor, TouchPlaneDescription); - } - - /// - /// Draws the front release plane used for scroll engage release detection. - /// - private void DrawFrontReleasePlane() - { - Vector3 planeLocalPosition = Vector3.forward * releaseThresholdFront.floatValue * -1.0f; - Vector3 widthHalfExtent = scrollView.transform.right * scrollView.ClippingObject.transform.lossyScale.x / 2; - Vector3 heightHalfExtent = scrollView.transform.up * scrollView.ClippingObject.transform.lossyScale.y / 2; - - Quaternion handleRotation = Quaternion.LookRotation(scrollView.transform.forward); - - DrawPlaneAndHandle(planeLocalPosition, widthHalfExtent, heightHalfExtent, handleRotation, releasePlaneColor, FrontReleasePlaneDescription); - } - - /// - /// Draws the back release plane used for scroll engage release detection. - /// - private void DrawBackReleasePlane() - { - Vector3 planeLocalPosition = Vector3.forward * releaseThresholdBack.floatValue; - Vector3 widthHalfExtent = scrollView.transform.right * scrollView.ClippingObject.transform.lossyScale.x / 2; - Vector3 heightHalfExtent = scrollView.transform.up * scrollView.ClippingObject.transform.lossyScale.y / 2; - - Quaternion handleRotation = Quaternion.LookRotation(scrollView.transform.forward * -1.0f); - - DrawPlaneAndHandle(planeLocalPosition, widthHalfExtent, heightHalfExtent, handleRotation, releasePlaneColor, BackReleasePlaneDescription); - } - - /// - /// Draws the right release plane used for scroll engage release detection. - /// - private void DrawRightReleasePlane() - { - Vector3 planeLocalPosition = Vector3.right * releaseThresholdLeftRight.floatValue; - Vector3 widthHalfExtent = scrollView.transform.forward * scrollView.ClippingObject.transform.lossyScale.z / 2; - Vector3 heightHalfExtent = scrollView.transform.up * scrollView.ClippingObject.transform.lossyScale.y / 2; - - Quaternion handleRotation = Quaternion.LookRotation(scrollView.transform.right * -1.0f); - - DrawPlaneAndHandle(planeLocalPosition, widthHalfExtent, heightHalfExtent, handleRotation, releasePlaneColor, RightReleasePlaneDescription); - } - - /// - /// Draws the left release plane used for scroll engage release detection. - /// - private void DrawLeftReleasePlane() - { - Vector3 planeLocalPosition = Vector3.right * releaseThresholdLeftRight.floatValue * -1.0f; - Vector3 widthHalfExtent = scrollView.transform.forward * scrollView.ClippingObject.transform.lossyScale.z / 2; - Vector3 heightHalfExtent = scrollView.transform.up * scrollView.ClippingObject.transform.lossyScale.y / 2; - - Quaternion handleRotation = Quaternion.LookRotation(scrollView.transform.right); - - DrawPlaneAndHandle(planeLocalPosition, widthHalfExtent, heightHalfExtent, handleRotation, releasePlaneColor, LeftReleasePlaneDescription); - } - - /// - /// Draws the top release plane used for scroll engage release detection. - /// - private void DrawTopReleasePlane() - { - Vector3 planeLocalPosition = Vector3.up * releaseThresholdTopBottom.floatValue; - Vector3 widthHalfExtent = scrollView.transform.right * scrollView.ClippingObject.transform.lossyScale.x / 2; - Vector3 heightHalfExtent = scrollView.transform.forward * scrollView.ClippingObject.transform.lossyScale.z / 2; - - Quaternion handleRotation = Quaternion.LookRotation(scrollView.transform.up * -1.0f); - - DrawPlaneAndHandle(planeLocalPosition, widthHalfExtent, heightHalfExtent, handleRotation, releasePlaneColor, TopReleasePlaneDescription); - } - - /// - /// Draws the top release plane used for scroll engage release detection. - /// - private void DrawBottomReleasePlane() - { - Vector3 planeLocalPosition = Vector3.up * releaseThresholdTopBottom.floatValue * -1.0f; - Vector3 widthHalfExtent = scrollView.transform.right * scrollView.ClippingObject.transform.lossyScale.x / 2; - Vector3 heightHalfExtent = scrollView.transform.forward * scrollView.ClippingObject.transform.lossyScale.z / 2; - - Quaternion handleRotation = Quaternion.LookRotation(scrollView.transform.up); - - DrawPlaneAndHandle(planeLocalPosition, widthHalfExtent, heightHalfExtent, handleRotation, releasePlaneColor, BottomReleasePlaneDescription); - } - - /// - /// Draws the scroll interaction debug planes. - /// - private void DrawPlaneAndHandle(Vector3 planeLocalPosition, Vector3 widthHalfExtent, Vector3 hightHalfExtent, Quaternion handleRotation, Color color, string labelText) - { - Vector3 planePosition = scrollView.ClippingObject.transform.position + scrollView.ClippingObject.transform.TransformDirection(planeLocalPosition); - - Vector3[] points = new Vector3[4]; - points[0] = planePosition - widthHalfExtent + hightHalfExtent; - points[1] = planePosition + widthHalfExtent + hightHalfExtent; - points[2] = planePosition + widthHalfExtent - hightHalfExtent; - points[3] = planePosition - widthHalfExtent - hightHalfExtent; - - float handleSize = HandleUtility.GetHandleSize(planePosition) * 0.30f; - - // Draw handle and plane - Handles.color = color; - Handles.ArrowHandleCap(0, planePosition, handleRotation, handleSize, EventType.Repaint); - Handles.DrawSolidRectangleWithOutline(points, Color.Lerp(color, Color.clear, 0.5f), color); - - // Draw label if handle has smallest vieport distance from the mouse pointer - Vector3 handleViewportPosition = SceneView.currentDrawingSceneView.camera.WorldToScreenPoint(planePosition); - handleViewportPosition = SceneView.currentDrawingSceneView.camera.ScreenToViewportPoint(handleViewportPosition); - - float mouseHandleDistance = Vector2.Distance(mouseScreenPosition, handleViewportPosition); - - // Check if mouse is hovering circle centered on plane center. Keep circle ratio as a multiple of the current unity handle size. - if (mouseHandleDistance < handleSize * 10.0f && mouseHandleDistance < smallestMouseHandleDistance) - { - smallestMouseHandleDistance = mouseHandleDistance; - - Handles.Label(planePosition + (Vector3.up * handleSize * 3.0f), new GUIContent(labelText), labelStyle); - Handles.DrawDottedLine(planePosition + (Vector3.up * handleSize * 2.0f) + (Vector3.right * handleSize), planePosition, 5f); - } - } - - private void DrawAllDebugPlanes() - { - DrawTouchPlane(); - DrawFrontReleasePlane(); - DrawBackReleasePlane(); - DrawRightReleasePlane(); - DrawLeftReleasePlane(); - DrawTopReleasePlane(); - DrawBottomReleasePlane(); - } - - /// - /// Simple check for the use of MRTK standard shader. - /// - /// to check for the MRTK standard shader. - /// true when render is using the MRTK standard shader. - private bool CheckForStandardShader(Renderer renderer) - { - return StandardShaderUtility.IsUsingMrtkStandardShader(renderer.sharedMaterial) || renderer.sharedMaterial.shader == MRTKtmp; - } - - private void GetMouseViewportPosition() - { - mouseScreenPosition = HandleUtility.GUIPointToScreenPixelCoordinate(Event.current.mousePosition); - mouseScreenPosition = SceneView.currentDrawingSceneView.camera.ScreenToViewportPoint(mouseScreenPosition); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs.meta deleted file mode 100644 index 9d899d954..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/ScrollingObjectCollection/ScrollingObjectCollectionInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a1aa94d887a46854bbeb8dd9c7804659 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders.meta deleted file mode 100644 index a8f78b82d..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: dd349b4dac8573849a1f505d89be9060 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs deleted file mode 100644 index a1f0bdf75..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs +++ /dev/null @@ -1,80 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -// -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Editor -{ - [CustomEditor(typeof(PinchSlider))] - public class PinchSliderInspector : UnityEditor.Editor - { - private static GUIStyle labelStyle; - - public override void OnInspectorGUI() - { - if (target != null) - { - InspectorUIUtility.RenderHelpURL(target.GetType()); - } - - DrawDefaultInspector(); - } - - private void OnSceneGUI() - { - if (labelStyle == null) - { - labelStyle = new GUIStyle(); - labelStyle.normal.textColor = Color.white; - } - - PinchSlider slider = target as PinchSlider; - if (slider != null) - { - Handles.color = Color.cyan; - Vector3 startPos = slider.SliderStartPosition; - Vector3 endPos = slider.SliderEndPosition; - Handles.DrawLine(startPos, endPos); - - - EditorGUI.BeginChangeCheck(); - - float handleSize = HandleUtility.GetHandleSize(startPos) * 0.15f; - slider.SliderStartPosition = Handles.FreeMoveHandle(startPos, - Quaternion.identity, - handleSize, - Vector3.zero, - Handles.SphereHandleCap); - slider.SliderEndPosition = Handles.FreeMoveHandle(endPos, - Quaternion.identity, - handleSize, - Vector3.zero, - Handles.SphereHandleCap); - - if (EditorGUI.EndChangeCheck()) - { - var sliderStartSerialized = serializedObject.FindProperty("sliderStartDistance"); - var sliderEndSerialized = serializedObject.FindProperty("sliderEndDistance"); - sliderStartSerialized.floatValue = slider.SliderStartDistance; - sliderEndSerialized.floatValue = slider.SliderEndDistance; - serializedObject.ApplyModifiedProperties(); - } - - DrawLabelWithDottedLine(startPos + (Vector3.up * handleSize * 10f), startPos, handleSize, "slider start"); - DrawLabelWithDottedLine(endPos + (Vector3.up * handleSize * 10f), endPos, handleSize, "slider end"); - } - } - - private void DrawLabelWithDottedLine(Vector3 labelPos, Vector3 dottedLineStart, float handleSize, string labelText) - { - Handles.color = Color.white; - Handles.Label(labelPos + Vector3.up * handleSize, labelText, labelStyle); - Handles.DrawDottedLine(dottedLineStart, labelPos, 5f); - } - } - -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs.meta deleted file mode 100644 index 794e93913..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Sliders/PinchSliderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1db9a631d443a6f469f86f33fd2ec681 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips.meta deleted file mode 100644 index e57ce0288..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a384e11dcf8f28c4ab0d1d15cbb22243 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs deleted file mode 100644 index 9423fa00f..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs +++ /dev/null @@ -1,280 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(ToolTipConnector))] - public class ToolTipConnectorInspector : UnityEditor.Editor - { - private const string EditorSettingsFoldoutKey = "MRTK_ToolTipConnector_Inspector_EditorSettings"; - private const string DrawManualDirectionHandleKey = "MRTK_ToopTipConnector_Inspector_DrawManualDirectionHandle"; - - private static bool editorSettingsFoldout = false; - private static float pivotDirectionControlWidth = 50; - private static float pivotDirectionControlHeight = 35; - private static bool DrawManualDirectionHandle = false; - - protected ToolTipConnector connector; - - private static readonly GUIContent EditorSettingsContent = new GUIContent("Editor Settings"); - private static GUIStyle multiLineHelpBoxStyle; - private static float connectorPivotDirectionArrowLength = 1f; - - private SerializedProperty connectorTarget; - private SerializedProperty connectorFollowType; - private SerializedProperty pivotMode; - private SerializedProperty pivotDirection; - private SerializedProperty pivotDirectionOrient; - private SerializedProperty manualPivotDirection; - private SerializedProperty manualPivotLocalPosition; - private SerializedProperty pivotDistance; - - protected virtual void OnEnable() - { - DrawManualDirectionHandle = SessionState.GetBool(DrawManualDirectionHandleKey, DrawManualDirectionHandle); - - editorSettingsFoldout = SessionState.GetBool(EditorSettingsFoldoutKey, editorSettingsFoldout); - - connector = (ToolTipConnector)target; - - serializedObject.ApplyModifiedProperties(); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - if (multiLineHelpBoxStyle == null) - { - multiLineHelpBoxStyle = new GUIStyle(EditorStyles.helpBox); - multiLineHelpBoxStyle.wordWrap = true; - } - - connectorTarget = serializedObject.FindProperty("target"); - connectorFollowType = serializedObject.FindProperty("connectorFollowType"); - pivotMode = serializedObject.FindProperty("pivotMode"); - pivotDirection = serializedObject.FindProperty("pivotDirection"); - pivotDirectionOrient = serializedObject.FindProperty("pivotDirectionOrient"); - manualPivotDirection = serializedObject.FindProperty("manualPivotDirection"); - manualPivotLocalPosition = serializedObject.FindProperty("manualPivotLocalPosition"); - pivotDistance = serializedObject.FindProperty("pivotDistance"); - - editorSettingsFoldout = EditorGUILayout.Foldout(editorSettingsFoldout, EditorSettingsContent, true); - SessionState.SetBool(EditorSettingsFoldoutKey, editorSettingsFoldout); - - if (editorSettingsFoldout) - { - EditorGUI.BeginChangeCheck(); - DrawManualDirectionHandle = EditorGUILayout.Toggle("Draw Manual Direction Handle", DrawManualDirectionHandle); - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetBool(DrawManualDirectionHandleKey, DrawManualDirectionHandle); - } - } - - if (connectorTarget.objectReferenceValue == null) - { - EditorGUILayout.HelpBox("No target set. ToolTip will not use connector component.", MessageType.Info); - EditorGUILayout.PropertyField(connectorTarget); - } - else - { - EditorGUILayout.PropertyField(connectorTarget); - - string helpText = string.Empty; - switch (connector.ConnectorFollowingType) - { - case ConnectorFollowType.AnchorOnly: - helpText = "Only the tooltip's anchor will follow the target. Tooltip content will not be altered."; - break; - - case ConnectorFollowType.Position: - helpText = "The entire tooltip will follow the target. Tooltip will not rotate."; - break; - - case ConnectorFollowType.PositionAndYRotation: - helpText = "The entire tooltip will follow the target. Tooltip will match target's Y rotation."; - break; - - case ConnectorFollowType.PositionAndXYRotation: - helpText = "The entire tooltip will follow the target. Tooltip will match target's X and Y rotation."; - break; - - } - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField(helpText, EditorStyles.miniLabel); - EditorGUILayout.EndVertical(); - EditorGUILayout.PropertyField(connectorFollowType); - - switch (connector.ConnectorFollowingType) - { - case ConnectorFollowType.AnchorOnly: - // Pivot mode doesn't apply to anchor-only connections - break; - - default: - EditorGUILayout.PropertyField(pivotMode); - switch (connector.PivotMode) - { - case ConnectorPivotMode.Manual: - // We just want to set the pivot ourselves - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField("Pivot will not be altered by connector.", EditorStyles.miniLabel); - EditorGUILayout.EndVertical(); - break; - - case ConnectorPivotMode.Automatic: - EditorGUILayout.PropertyField(pivotDirectionOrient); - switch (connector.PivotDirectionOrient) - { - case ConnectorOrientType.OrientToCamera: - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField("Pivot will be set in direction relative to camera.", EditorStyles.miniLabel); - EditorGUILayout.EndVertical(); - break; - - case ConnectorOrientType.OrientToObject: - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField("Pivot will be set in direction relative to target.", EditorStyles.miniLabel); - EditorGUILayout.EndVertical(); - break; - } - ConnectorPivotDirection newPivotDirection = DrawPivotDirection(connector.PivotDirection); - pivotDirection.enumValueIndex = (int)newPivotDirection; - switch (connector.PivotDirection) - { - case ConnectorPivotDirection.Manual: - EditorGUILayout.PropertyField(manualPivotDirection); - break; - - default: - break; - } - EditorGUILayout.PropertyField(pivotDistance); - break; - - case ConnectorPivotMode.LocalPosition: - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - EditorGUILayout.LabelField("Pivot will be set to position relative to target.", EditorStyles.miniLabel); - EditorGUILayout.EndVertical(); - EditorGUILayout.PropertyField(manualPivotLocalPosition); - break; - } - break; - } - } - - serializedObject.ApplyModifiedProperties(); - } - - public override bool RequiresConstantRepaint() - { - return true; - } - - private ConnectorPivotDirection DrawPivotDirection(ConnectorPivotDirection selection) - { - EditorGUILayout.Space(); - EditorGUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - - EditorGUILayout.BeginVertical(); - - selection = DrawPivotDirectionButton(ConnectorPivotDirection.Manual, "Manual", selection, 3); - - EditorGUILayout.BeginHorizontal(); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.Northeast, "NE", selection); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.North, "North", selection); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.Northwest, "NW", selection); - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.BeginHorizontal(); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.East, "East", selection); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.InFront, "Front", selection); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.West, "West", selection); - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.BeginHorizontal(); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.Southeast, "SE", selection); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.South, "South", selection); - selection = DrawPivotDirectionButton(ConnectorPivotDirection.Southwest, "SW", selection); - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.EndVertical(); - - GUILayout.FlexibleSpace(); - EditorGUILayout.EndHorizontal(); - EditorGUILayout.Space(); - - return selection; - } - - private ConnectorPivotDirection DrawPivotDirectionButton(ConnectorPivotDirection direction, string displayName, ConnectorPivotDirection selection, float widthMultiplier = 1) - { - GUI.color = (direction == selection) ? Color.white : Color.gray; - if (GUILayout.Button( - displayName, - EditorStyles.miniButtonMid, - GUILayout.MinWidth(pivotDirectionControlWidth * widthMultiplier), - GUILayout.MinHeight(pivotDirectionControlHeight), - GUILayout.MaxWidth(pivotDirectionControlWidth * widthMultiplier), - GUILayout.MaxHeight(pivotDirectionControlHeight))) - { - return direction; - } - GUI.color = Color.white; - return selection; - } - - protected virtual void OnSceneGUI() - { - if (connector.Target == null) - return; - - - ToolTip toolTip = connector.GetComponent(); - if (toolTip == null) - return; - - switch (connector.PivotMode) - { - case ConnectorPivotMode.Automatic: - switch (connector.PivotDirection) - { - case ConnectorPivotDirection.Manual: - // If we're using an automatic / manual combination, draw a handle that lets us set a manual pivot direction - Transform targetTransform = connector.Target.transform; - Vector3 targetPosition = targetTransform.position; - Vector3 pivotPosition = toolTip.PivotPosition; - - float handleSize = HandleUtility.GetHandleSize(pivotPosition) * connectorPivotDirectionArrowLength; - Handles.color = MixedRealityInspectorUtility.LineVelocityColor; - Handles.ArrowHandleCap(0, pivotPosition, Quaternion.LookRotation(connector.ManualPivotDirection, targetTransform.up), handleSize, EventType.Repaint); - Vector3 newPivotPosition = Handles.PositionHandle(pivotPosition, targetTransform.rotation); - - if ((newPivotPosition - pivotPosition).sqrMagnitude > 0) - { - manualPivotDirection = serializedObject.FindProperty("manualPivotDirection"); - manualPivotDirection.vector3Value = (newPivotPosition - targetPosition).normalized; - - serializedObject.ApplyModifiedProperties(); - } - break; - - default: - break; - } - break; - - default: - break; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs.meta deleted file mode 100644 index bb8cb4134..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 92e1d600527d7e240900ceef3065b2b1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs deleted file mode 100644 index 0610651b6..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs +++ /dev/null @@ -1,311 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor -{ - [CustomEditor(typeof(ToolTip))] - public class ToolTipInspector : UnityEditor.Editor - { - private const float handleSizeMultiplier = 0.35f; - - private const string EditorSettingsFoldoutKey = "MRTK_ToolTip_Inspector_EditorSettings"; - private const string DrawAttachPointsKey = "MRTK_ToopTip_Inspector_DrawAttachPoints"; - private const string DrawHandlesKey = "MRTK_ToopTip_Inspector_DrawHandles"; - private const string EditAttachPointKey = "MRTK_ToopTip_Inspector_EditAttachPoint"; - private const string ContentSettingsFoldoutKey = "MRTK_ToolTip_Inspector_ContentSettings"; - private const string BasicSettingsFoldoutKey = "MRTK_ToolTip_Inspector_BasicSettings"; - private const string GroupSettingsFoldoutKey = "MRTK_ToolTip_Inspector_GroupSettings"; - private const string ObjectSettingsFoldoutKey = "MRTK_ToolTip_Inspector_Objects"; - - private static bool editorSettingsFoldout = false; - private static bool contentSettingsFoldout = true; - private static bool basicSettingsFoldout = true; - private static bool groupSettingsFoldout = false; - private static bool objectSettingsFoldout = false; - - private static readonly GUIContent EditorSettingsContent = new GUIContent("Editor Settings"); - private static readonly GUIContent ContentSettingsContent = new GUIContent("Content Settings"); - private static readonly GUIContent BasicSettingsContent = new GUIContent("Basic Settings"); - private static readonly GUIContent GroupSettingsContent = new GUIContent("Group Display Settings"); - private static readonly GUIContent ObjectSettingsContent = new GUIContent("Object Settings"); - - private static bool DrawAttachPoints = false; - private static bool DrawHandles = true; - private static bool EditAttachPoint = false; - private static Vector3[] localAttachPointPositions; - - protected ToolTip toolTip; - - private SerializedProperty toolTipText; - private SerializedProperty backgroundPadding; - private SerializedProperty backgroundOffset; - private SerializedProperty contentScale; - private SerializedProperty fontSize; - private SerializedProperty anchor; - private SerializedProperty pivot; - private SerializedProperty contentParent; - private SerializedProperty label; - private SerializedProperty toolTipLine; - private SerializedProperty showBackground; - private SerializedProperty showHighlight; - private SerializedProperty showConnector; - private SerializedProperty tipState; - private SerializedProperty groupTipState; - private SerializedProperty masterTipState; - private SerializedProperty attachPointType; - private SerializedProperty attachPointOffset; - - protected virtual void OnEnable() - { - DrawAttachPoints = SessionState.GetBool(DrawAttachPointsKey, DrawAttachPoints); - DrawHandles = SessionState.GetBool(DrawHandlesKey, DrawHandles); - EditAttachPoint = SessionState.GetBool(EditAttachPointKey, EditAttachPoint); - - basicSettingsFoldout = SessionState.GetBool(BasicSettingsFoldoutKey, basicSettingsFoldout); - groupSettingsFoldout = SessionState.GetBool(GroupSettingsFoldoutKey, groupSettingsFoldout); - contentSettingsFoldout = SessionState.GetBool(ContentSettingsFoldoutKey, contentSettingsFoldout); - editorSettingsFoldout = SessionState.GetBool(EditorSettingsFoldoutKey, editorSettingsFoldout); - objectSettingsFoldout = SessionState.GetBool(ObjectSettingsFoldoutKey, objectSettingsFoldout); - - toolTip = (ToolTip)target; - - serializedObject.ApplyModifiedProperties(); - } - - public override void OnInspectorGUI() - { - if (target != null) - { - InspectorUIUtility.RenderHelpURL(target.GetType()); - } - - serializedObject.Update(); - - toolTipText = serializedObject.FindProperty("toolTipText"); - backgroundPadding = serializedObject.FindProperty("backgroundPadding"); - backgroundOffset = serializedObject.FindProperty("backgroundOffset"); - contentScale = serializedObject.FindProperty("contentScale"); - fontSize = serializedObject.FindProperty("fontSize"); - anchor = serializedObject.FindProperty("anchor"); - pivot = serializedObject.FindProperty("pivot"); - contentParent = serializedObject.FindProperty("contentParent"); - label = serializedObject.FindProperty("label"); - toolTipLine = serializedObject.FindProperty("toolTipLine"); - showBackground = serializedObject.FindProperty("showBackground"); - showHighlight = serializedObject.FindProperty("showHighlight"); - showConnector = serializedObject.FindProperty("showConnector"); - tipState = serializedObject.FindProperty("tipState"); - groupTipState = serializedObject.FindProperty("groupTipState"); - masterTipState = serializedObject.FindProperty("masterTipState"); - attachPointType = serializedObject.FindProperty("attachPointType"); - attachPointOffset = serializedObject.FindProperty("attachPointOffset"); - - bool hasAnchor = anchor.objectReferenceValue != null; - bool hasPivot = pivot.objectReferenceValue != null; - bool hasContentParent = contentParent.objectReferenceValue != null; - bool hasLabel = label.objectReferenceValue != null; - bool hasToolTipLine = toolTipLine.objectReferenceValue != null; - bool hasAllObjects = (hasAnchor & hasPivot & hasContentParent & hasLabel & hasToolTipLine); - - editorSettingsFoldout = EditorGUILayout.Foldout(editorSettingsFoldout, EditorSettingsContent, true); - SessionState.SetBool(EditorSettingsFoldoutKey, editorSettingsFoldout); - - if (editorSettingsFoldout) - { - EditorGUI.BeginChangeCheck(); - DrawAttachPoints = EditorGUILayout.Toggle("Draw Attach Points", DrawAttachPoints); - DrawHandles = EditorGUILayout.Toggle("Draw Handles", DrawHandles); - - if (DrawHandles) - { - EditAttachPoint = EditorGUILayout.Toggle("Edit Attach Point", EditAttachPoint); - } - - if (EditorGUI.EndChangeCheck()) - { - SessionState.SetBool(DrawAttachPointsKey, DrawAttachPoints); - SessionState.SetBool(DrawHandlesKey, DrawHandles); - SessionState.SetBool(EditAttachPointKey, EditAttachPoint); - } - } - - contentSettingsFoldout = EditorGUILayout.Foldout(contentSettingsFoldout, ContentSettingsContent, true); - SessionState.SetBool(ContentSettingsFoldoutKey, contentSettingsFoldout); - - if (contentSettingsFoldout) - { - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(toolTipText); - EditorGUILayout.PropertyField(backgroundPadding); - EditorGUILayout.PropertyField(backgroundOffset); - EditorGUILayout.PropertyField(contentScale); - EditorGUILayout.PropertyField(fontSize); - EditorGUILayout.PropertyField(attachPointOffset); - - EditorGUI.indentLevel--; - } - - basicSettingsFoldout = EditorGUILayout.Foldout(basicSettingsFoldout, BasicSettingsContent, true); - SessionState.SetBool(BasicSettingsFoldoutKey, basicSettingsFoldout); - - if (basicSettingsFoldout) - { - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(showBackground); - EditorGUILayout.PropertyField(showConnector); - EditorGUILayout.PropertyField(showHighlight); - EditorGUILayout.PropertyField(attachPointType); - - EditorGUI.indentLevel--; - } - - groupSettingsFoldout = EditorGUILayout.Foldout(groupSettingsFoldout, GroupSettingsContent, true); - SessionState.SetBool(GroupSettingsFoldoutKey, groupSettingsFoldout); - - if (groupSettingsFoldout) - { - EditorGUILayout.HelpBox("Higher states will override lower states unless set to 'None.'", MessageType.Info); - - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(masterTipState); - - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(groupTipState); - - EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(tipState); - - EditorGUI.indentLevel--; - EditorGUI.indentLevel--; - EditorGUILayout.LabelField("Final Tip State: " + (toolTip.IsOn ? "On" : "Off"), EditorStyles.boldLabel); - EditorGUILayout.Space(); - EditorGUI.indentLevel--; - } - - objectSettingsFoldout = EditorGUILayout.Foldout(objectSettingsFoldout, ObjectSettingsContent, true); - SessionState.SetBool(ObjectSettingsFoldoutKey, objectSettingsFoldout); - - if (objectSettingsFoldout || !hasAllObjects) - { - EditorGUI.indentLevel++; - - if (!hasAllObjects) - { - EditorGUILayout.HelpBox("ToolTip will not function unless all objects are present.", MessageType.Warning); - } - - EditorGUILayout.PropertyField(anchor); - EditorGUILayout.PropertyField(pivot); - EditorGUILayout.PropertyField(contentParent); - EditorGUILayout.PropertyField(label); - EditorGUILayout.PropertyField(toolTipLine); - - EditorGUI.indentLevel--; - } - - serializedObject.ApplyModifiedProperties(); - } - - public override bool RequiresConstantRepaint() - { - return true; - } - - protected virtual void OnSceneGUI() - { - if (DrawAttachPoints) - { - Handles.color = Color.Lerp(Color.clear, Color.red, 0.5f); - float scale = toolTip.ContentScale * 0.01f; - - ToolTipUtility.GetAttachPointPositions(ref localAttachPointPositions, toolTip.LocalContentSize); - foreach (Vector3 attachPoint in localAttachPointPositions) - { - Handles.SphereHandleCap(0, toolTip.ContentParentTransform.TransformPoint(attachPoint), Quaternion.identity, scale, EventType.Repaint); - } - } - - if (DrawHandles) - { - ToolTip toolTip = (ToolTip)target; - float handleSize = 0; - float arrowSize = 0; - - BaseMixedRealityLineDataProvider line = toolTip.GetComponent(); - if (line == null) - { - Handles.color = Color.white; - Handles.DrawDottedLine(toolTip.AnchorPosition, toolTip.AttachPointPosition, 5f); - } - - EditorGUI.BeginChangeCheck(); - - Handles.color = Color.cyan; - handleSize = HandleUtility.GetHandleSize(toolTip.PivotPosition) * handleSizeMultiplier; - arrowSize = handleSize * 2; - Vector3 newPivotPosition = Handles.FreeMoveHandle(toolTip.PivotPosition, Quaternion.identity, handleSize, Vector3.zero, Handles.SphereHandleCap); - Handles.ArrowHandleCap(0, newPivotPosition, Quaternion.LookRotation(Vector3.up), arrowSize, EventType.Repaint); - Handles.ArrowHandleCap(0, newPivotPosition, Quaternion.LookRotation(Vector3.forward), arrowSize, EventType.Repaint); - Handles.ArrowHandleCap(0, newPivotPosition, Quaternion.LookRotation(Vector3.right), arrowSize, EventType.Repaint); - - Handles.color = Color.white; - Handles.Label(newPivotPosition + (Vector3.up * arrowSize), "Pivot", EditorStyles.whiteLabel); - - Handles.color = Color.cyan; - handleSize = HandleUtility.GetHandleSize(toolTip.AnchorPosition) * handleSizeMultiplier; - arrowSize = handleSize * 2; - Vector3 newAnchorPosition = Handles.FreeMoveHandle(toolTip.AnchorPosition, Quaternion.identity, HandleUtility.GetHandleSize(toolTip.AnchorPosition) * handleSizeMultiplier, Vector3.zero, Handles.SphereHandleCap); - Handles.ArrowHandleCap(0, newAnchorPosition, Quaternion.LookRotation(Vector3.up), arrowSize, EventType.Repaint); - Handles.ArrowHandleCap(0, newAnchorPosition, Quaternion.LookRotation(Vector3.forward), arrowSize, EventType.Repaint); - Handles.ArrowHandleCap(0, newAnchorPosition, Quaternion.LookRotation(Vector3.right), arrowSize, EventType.Repaint); - - Handles.color = Color.white; - Handles.Label(newAnchorPosition + (Vector3.up * arrowSize), "Anchor", EditorStyles.whiteLabel); - - if (EditorGUI.EndChangeCheck()) - { - if (newAnchorPosition != toolTip.AnchorPosition) - { - Undo.RegisterCompleteObjectUndo(toolTip.Anchor.transform, "Moved Anchor"); - toolTip.Anchor.transform.position = newAnchorPosition; - } - - if (newPivotPosition != toolTip.PivotPosition) - { - Undo.RegisterCompleteObjectUndo(toolTip.Pivot.transform, "Moved Pivot"); - toolTip.Pivot.transform.position = newPivotPosition; - } - } - - if (EditAttachPoint) - { - EditorGUI.BeginChangeCheck(); - - Handles.color = Color.cyan; - handleSize = HandleUtility.GetHandleSize(toolTip.AttachPointPosition) * handleSizeMultiplier; - arrowSize = handleSize * 2; - Vector3 newAttachPointPosition = Handles.FreeMoveHandle(toolTip.AttachPointPosition, Quaternion.identity, HandleUtility.GetHandleSize(toolTip.AttachPointPosition) * handleSizeMultiplier, Vector3.zero, Handles.SphereHandleCap); - Handles.ArrowHandleCap(0, newAttachPointPosition, Quaternion.LookRotation(Vector3.up), arrowSize, EventType.Repaint); - Handles.ArrowHandleCap(0, newAttachPointPosition, Quaternion.LookRotation(Vector3.forward), arrowSize, EventType.Repaint); - Handles.ArrowHandleCap(0, newAttachPointPosition, Quaternion.LookRotation(Vector3.right), arrowSize, EventType.Repaint); - - Handles.color = Color.white; - Handles.Label(newAttachPointPosition + (Vector3.up * arrowSize), "Attach Point", EditorStyles.whiteLabel); - - if (EditorGUI.EndChangeCheck()) - { - Undo.RegisterCompleteObjectUndo(toolTip, "Moved Attach Point"); - Undo.RegisterCompleteObjectUndo(toolTip.Anchor.transform, "Moved Attach Point"); - toolTip.AttachPointPosition = newAttachPointPosition; - } - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs.meta deleted file mode 100644 index 3678abb35..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/Tooltips/ToolTipInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0b0107e7e2bbdb8478004c3429bbe31b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes.meta deleted file mode 100644 index 5f5394d27..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 783d7920a8bc9344283e9b3fe3b10e95 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs deleted file mode 100644 index 704472520..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.UI.Editor -{ - [CustomEditor(typeof(States))] - public class StatesInspector : UnityEditor.Editor - { - protected States instance; - protected SerializedProperty stateList; - - private static GUIContent RemoveStateLabel; - private static readonly GUIContent AddStateLabel = new GUIContent("+", "Add State"); - - protected virtual void OnEnable() - { - instance = (States)target; - - RemoveStateLabel = new GUIContent(InspectorUIUtility.Minus, "Remove State"); - stateList = serializedObject.FindProperty("stateList"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - InspectorUIUtility.DrawTitle("States"); - EditorGUILayout.HelpBox("Manage state configurations to drive Interactables or Transitions", MessageType.None); - - SerializedProperty stateModelClassName = serializedObject.FindProperty("StateModelClassName"); - SerializedProperty assemblyQualifiedName = serializedObject.FindProperty("AssemblyQualifiedName"); - - var stateModelTypes = TypeCacheUtility.GetSubClasses(); - var stateModelClassNames = stateModelTypes.Select(t => t?.Name).ToArray(); - int id = Array.IndexOf(stateModelClassNames, stateModelClassName.stringValue); - - Rect stateModelPos = EditorGUILayout.GetControlRect(); - using (new EditorGUI.PropertyScope(stateModelPos, new GUIContent("State Model"), stateModelClassName)) - { - int newId = EditorGUILayout.Popup("State Model", id, stateModelClassNames); - if (id != newId) - { - Type newType = stateModelTypes[newId]; - stateModelClassName.stringValue = newType.Name; - assemblyQualifiedName.stringValue = newType.AssemblyQualifiedName; - } - } - - for (int i = 0; i < stateList.arraySize; i++) - { - using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox)) - { - SerializedProperty stateItem = stateList.GetArrayElementAtIndex(i); - - SerializedProperty name = stateItem.FindPropertyRelative("Name"); - SerializedProperty activeIndex = stateItem.FindPropertyRelative("ActiveIndex"); - SerializedProperty bit = stateItem.FindPropertyRelative("Bit"); - SerializedProperty index = stateItem.FindPropertyRelative("Index"); - - // assign the bitcount based on location in the list as power of 2 - bit.intValue = 1 << i; - - activeIndex.intValue = i; - - Rect position = EditorGUILayout.GetControlRect(); - using (new EditorGUILayout.HorizontalScope()) - { - var label = new GUIContent(name.stringValue + " (" + bit.intValue + ")"); - using (new EditorGUI.PropertyScope(position, new GUIContent(), name)) - { - string[] stateEnums = Enum.GetNames(typeof(InteractableStates.InteractableStateEnum)); - int enumIndex = Array.IndexOf(stateEnums, name.stringValue); - - int newEnumIndex = EditorGUILayout.Popup(label, enumIndex, stateEnums); - if (newEnumIndex == -1) { newEnumIndex = 0; } - - name.stringValue = stateEnums[newEnumIndex]; - index.intValue = newEnumIndex; - } - - if (InspectorUIUtility.SmallButton(RemoveStateLabel)) - { - stateList.DeleteArrayElementAtIndex(i); - break; - } - } - } - } - - if (InspectorUIUtility.FlexButton(AddStateLabel)) - { - stateList.InsertArrayElementAtIndex(stateList.arraySize); - } - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs.meta deleted file mode 100644 index a4b97a760..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/StatesInspector.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: 420b60a2262ca854bb3e1c3c5c6d660f -timeCreated: 1522264892 -licenseType: Pro -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs deleted file mode 100644 index 70fa0916d..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs +++ /dev/null @@ -1,630 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.UI.Editor -{ - /// - /// Inspector for themes, and used by Interactable - /// - [CustomEditor(typeof(Theme))] - public class ThemeInspector : UnityEditor.Editor - { - protected SerializedProperty themeDefinitions; - protected SerializedProperty states; - protected Theme theme; - protected State[] themeStates; - - private const float ThemeStateFontScale = 1.1f; - private const int ThemeBoxMargin = 25; - - private static readonly GUIContent AddThemePropertyLabel = new GUIContent("Add Theme Definition", "Add Theme Definition"); - private static readonly GUIContent RemoveThemePropertyContent = new GUIContent("Delete", "Remove Theme Definition"); - private static readonly GUIContent CreateAnimationsContent = new GUIContent("Create Animations", "Create and add an Animator with AnimationClips"); - private static readonly GUIContent EasingContent = new GUIContent("Easing", "should the theme animate state values"); - - public void OnEnable() - { - theme = target as Theme; - themeDefinitions = serializedObject.FindProperty("definitions"); - states = serializedObject.FindProperty("states"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - if (theme != null && theme.States != null) - { - themeStates = theme.States.StateList.ToArray(); - } - - if (themeStates == null) - { - themeStates = Array.Empty(); - } - - // If no theme properties assigned, add a default one - if (themeDefinitions.arraySize < 1) - { - AddThemeDefinition(); - } - - RenderTheme(); - - serializedObject.ApplyModifiedProperties(); - } - - #region Rendering Methods - - public virtual void RenderTheme() - { - if (!RenderStates()) - { - serializedObject.ApplyModifiedProperties(); - return; - } - - EditorGUILayout.Space(); - - RenderThemeDefinitions(); - - } - - /// - /// draw the states property field for assigning states - /// Set the default state if one does not exist - /// - protected bool RenderStates() - { - using (new EditorGUILayout.VerticalScope()) - { - using (var check = new EditorGUI.ChangeCheckScope()) - { - EditorGUILayout.PropertyField(states, new GUIContent("States", "The States this Interactable is based on")); - if (check.changed) - { - theme.States = states.objectReferenceValue as States; - theme.ValidateDefinitions(); - serializedObject.Update(); - } - } - - if (states.objectReferenceValue == null || themeStates.Length < 1) - { - InspectorUIUtility.DrawError("Please assign a valid States object!"); - return false; - } - } - - return true; - } - - public void RenderThemeDefinitions() - { - GUIStyle box = InspectorUIUtility.HelpBox(EditorGUI.indentLevel * ThemeBoxMargin); - - // Loop through all InteractableThemePropertySettings of Theme - for (int index = 0; index < themeDefinitions.arraySize; index++) - { - using (new EditorGUILayout.VerticalScope(box)) - { - SerializedProperty themeDefinition = themeDefinitions.GetArrayElementAtIndex(index); - SerializedProperty className = themeDefinition.FindPropertyRelative("ClassName"); - - string themeDefinition_prefKey = theme.name + "_Definitions" + index; - bool show = false; - using (new EditorGUILayout.HorizontalScope()) - { - show = InspectorUIUtility.DrawSectionFoldoutWithKey(className.stringValue, themeDefinition_prefKey, MixedRealityStylesUtility.BoldFoldoutStyle); - - if (RenderDeleteButton(index)) - { - return; - } - } - - if (show) - { - EditorGUILayout.Space(); - - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.LabelField("General Properties", EditorStyles.boldLabel); - - using (new EditorGUILayout.HorizontalScope()) - { - var themeTypes = TypeCacheUtility.GetSubClasses(); - var themeClassNames = themeTypes.Select(t => t?.Name).ToArray(); - int id = Array.IndexOf(themeClassNames, className.stringValue); - int newId = EditorGUILayout.Popup("Theme Runtime", id, themeClassNames); - - // Some old Themes did not properly save a value here - SerializedProperty assemblyQualifiedName = themeDefinition.FindPropertyRelative("AssemblyQualifiedName"); - if (string.IsNullOrEmpty(assemblyQualifiedName.stringValue) && newId != -1) - { - assemblyQualifiedName.stringValue = themeTypes[newId].AssemblyQualifiedName; - } - - // If user changed the theme type for current themeDefinition - if (id != newId && newId != -1) - { - Type oldType = id != -1 ? themeTypes[id] : null; - Type newType = themeTypes[newId]; - ChangeThemeDefinitionType(index, oldType, newType); - return; - } - } - - var themeType = theme.Definitions[index].ThemeType; - if (themeType != null) - { - SerializedProperty customProperties = themeDefinition.FindPropertyRelative("customProperties"); - RenderCustomProperties(customProperties); - - var themeExample = (InteractableThemeBase)Activator.CreateInstance(themeType); - - if (themeExample.IsEasingSupported) - { - RenderEasingProperties(themeDefinition); - } - - if (themeExample.AreShadersSupported) - { - RenderShaderProperties(themeDefinition); - } - - EditorGUILayout.Space(); - - RenderThemeStates(themeDefinition); - } - else - { - InspectorUIUtility.DrawError("Theme Runtime Type is not valid"); - } - } - } - } - } - - // If no theme properties assigned, add a default one - if (themeDefinitions.arraySize < 1 || GUILayout.Button(AddThemePropertyLabel)) - { - AddThemeDefinition(); - } - } - - private void RenderThemeStates(SerializedProperty themeDefinition) - { - EditorGUILayout.LabelField("State Properties", EditorStyles.boldLabel); - - using (new EditorGUI.IndentLevelScope()) - { - for (int n = 0; n < themeStates.Length; n++) - { - InspectorUIUtility.DrawLabel(themeStates[n].Name, (int)(InspectorUIUtility.DefaultFontSize * ThemeStateFontScale), InspectorUIUtility.ColorTint50); - SerializedProperty stateProperties = themeDefinition.FindPropertyRelative("stateProperties"); - using (new EditorGUI.IndentLevelScope()) - { - for (int i = 0; i < stateProperties.arraySize; i++) - { - SerializedProperty propertyItem = stateProperties.GetArrayElementAtIndex(i); - SerializedProperty values = propertyItem.FindPropertyRelative("values"); - - if (n >= values.arraySize) - { - // This property does not have the correct number of state values - continue; - } - - SerializedProperty name = propertyItem.FindPropertyRelative("name"); - SerializedProperty type = propertyItem.FindPropertyRelative("type"); - SerializedProperty statePropertyValue = values.GetArrayElementAtIndex(n); - - RenderValue(statePropertyValue, new GUIContent(name.stringValue, ""), (ThemePropertyTypes)type.intValue); - } - } - } - GUILayout.Space(5); - } - GUILayout.Space(5); - } - - /// - /// Renders easing and related time properties for InteractableThemePropertySettings - /// - /// Serialized property of a ThemeDefinition object - private static void RenderEasingProperties(SerializedProperty themeDefinition) - { - SerializedProperty easing = themeDefinition.FindPropertyRelative("easing"); - SerializedProperty enabled = easing.FindPropertyRelative("Enabled"); - - enabled.boolValue = EditorGUILayout.Toggle(EasingContent, enabled.boolValue); - - if (enabled.boolValue) - { - using (new EditorGUI.IndentLevelScope()) - { - SerializedProperty time = easing.FindPropertyRelative("LerpTime"); - SerializedProperty curve = easing.FindPropertyRelative("Curve"); - - EditorGUILayout.PropertyField(time, new GUIContent("Duration", "Duration for easing between values in seconds")); - EditorGUILayout.PropertyField(curve, new GUIContent("Animation Curve", "Curve that defines rate of easing between values")); - } - } - } - - private static void RenderShaderProperties(SerializedProperty themeDefinition) - { - SerializedProperty stateProperties = themeDefinition.FindPropertyRelative("stateProperties"); - - for (int i = 0; i < stateProperties.arraySize; i++) - { - SerializedProperty stateProperty = stateProperties.GetArrayElementAtIndex(i); - SerializedProperty type = stateProperty.FindPropertyRelative("type"); - - if (ThemeStateProperty.IsShaderPropertyType((ThemePropertyTypes)type.enumValueIndex)) - { - SerializedProperty statePropertyName = stateProperty.FindPropertyRelative("name"); - SerializedProperty shader = stateProperty.FindPropertyRelative("targetShader"); - SerializedProperty shaderPropertyname = stateProperty.FindPropertyRelative("shaderPropertyName"); - - // Temporary workaround to help migrate old ThemeDefinitions to new model if applicable - MigrateShaderData(stateProperty, shader, shaderPropertyname); - - EditorGUILayout.PropertyField(shader, new GUIContent(statePropertyName.stringValue + " Shader"), false); - - var propertyList = GetShaderPropertyList(shader.objectReferenceValue as Shader, GetShaderPropertyFilter((ThemePropertyTypes)type.enumValueIndex)); - int selectedIndex = propertyList.IndexOf(shaderPropertyname.stringValue); - - Rect pos = EditorGUILayout.GetControlRect(); - using (new EditorGUI.PropertyScope(pos, new GUIContent(statePropertyName.stringValue + " Property"), shaderPropertyname)) - { - int newIndex = EditorGUILayout.Popup(statePropertyName.stringValue + " Property", selectedIndex, propertyList.ToArray()); - if (newIndex != selectedIndex) - { - shaderPropertyname.stringValue = propertyList[newIndex]; - } - } - } - } - } - - /// - /// Temporary utility function to migrate shader data from deprecated properties to new valid properties - /// - private static void MigrateShaderData(SerializedProperty stateProperty, SerializedProperty shader, SerializedProperty shaderPropertyname) - { - if (shader.objectReferenceValue == null) - { - SerializedProperty shaderOptions = stateProperty.FindPropertyRelative("ShaderOptions"); - if (shaderOptions.arraySize > 0) - { - var shaderName = stateProperty.FindPropertyRelative("ShaderName"); - var shaderOptionNames = stateProperty.FindPropertyRelative("ShaderOptionNames"); - var shaderOptionIndex = stateProperty.FindPropertyRelative("PropId"); - var shaderOption = shaderOptionNames.GetArrayElementAtIndex(shaderOptionIndex.intValue); - - // Migrate data over to new model - shader.objectReferenceValue = Shader.Find(shaderName.stringValue); - shaderPropertyname.stringValue = shaderOption.stringValue; - - // Wipe old data from triggering this again - shaderOptions.ClearArray(); - - stateProperty.serializedObject.ApplyModifiedProperties(); - } - else - { - shader.objectReferenceValue = StandardShaderUtility.MrtkStandardShader; - - SerializedProperty type = stateProperty.FindPropertyRelative("type"); - if (type.enumValueIndex == (int)ThemePropertyTypes.Color) - { - shaderPropertyname.stringValue = "_Color"; - } - else if (type.enumValueIndex == (int)ThemePropertyTypes.Texture) - { - shaderPropertyname.stringValue = "_MainTex"; - } - } - } - } - - /// - /// Render list of custom settings part of a InteractableThemePropertySettings object - /// - /// SerializedProperty for InteractableThemePropertySettings.CustomSettings - private static void RenderCustomProperties(SerializedProperty customProperties) - { - for (int p = 0; p < customProperties.arraySize; p++) - { - SerializedProperty item = customProperties.GetArrayElementAtIndex(p); - SerializedProperty name = item.FindPropertyRelative("Name"); - SerializedProperty tooltip = item.FindPropertyRelative("Tooltip"); - SerializedProperty propType = item.FindPropertyRelative("Type"); - SerializedProperty value = item.FindPropertyRelative("Value"); - ThemePropertyTypes type = (ThemePropertyTypes)propType.intValue; - - RenderValue(value, new GUIContent(name.stringValue, tooltip?.stringValue), type); - } - } - - /// - /// Render a single property value - /// - public static void RenderValue(SerializedProperty item, GUIContent label, ThemePropertyTypes type) - { - SerializedProperty floatValue = item.FindPropertyRelative("Float"); - SerializedProperty vector2Value = item.FindPropertyRelative("Vector2"); - SerializedProperty stringValue = item.FindPropertyRelative("String"); - - switch (type) - { - case ThemePropertyTypes.Float: - floatValue.floatValue = EditorGUILayout.FloatField(label, floatValue.floatValue); - break; - case ThemePropertyTypes.Int: - SerializedProperty intValue = item.FindPropertyRelative("Int"); - intValue.intValue = EditorGUILayout.IntField(label, intValue.intValue); - break; - case ThemePropertyTypes.Color: - SerializedProperty colorValue = item.FindPropertyRelative("Color"); - colorValue.colorValue = EditorGUILayout.ColorField(label, colorValue.colorValue); - break; - case ThemePropertyTypes.ShaderFloat: - floatValue.floatValue = EditorGUILayout.FloatField(label, floatValue.floatValue); - break; - case ThemePropertyTypes.ShaderRange: - vector2Value.vector2Value = EditorGUILayout.Vector2Field(label, vector2Value.vector2Value); - break; - case ThemePropertyTypes.Vector2: - vector2Value.vector2Value = EditorGUILayout.Vector2Field(label, vector2Value.vector2Value); - break; - case ThemePropertyTypes.Vector3: - SerializedProperty vector3Value = item.FindPropertyRelative("Vector3"); - vector3Value.vector3Value = EditorGUILayout.Vector3Field(label, vector3Value.vector3Value); - break; - case ThemePropertyTypes.Vector4: - SerializedProperty vector4Value = item.FindPropertyRelative("Vector4"); - vector4Value.vector4Value = EditorGUILayout.Vector4Field(label, vector4Value.vector4Value); - break; - case ThemePropertyTypes.Quaternion: - SerializedProperty quaternionValue = item.FindPropertyRelative("Quaternion"); - Vector4 vect4 = new Vector4(quaternionValue.quaternionValue.x, quaternionValue.quaternionValue.y, quaternionValue.quaternionValue.z, quaternionValue.quaternionValue.w); - vect4 = EditorGUILayout.Vector4Field(label, vect4); - quaternionValue.quaternionValue = new Quaternion(vect4.x, vect4.y, vect4.z, vect4.w); - break; - case ThemePropertyTypes.Texture: - SerializedProperty texture = item.FindPropertyRelative("Texture"); - EditorGUILayout.PropertyField(texture, label, false); - break; - case ThemePropertyTypes.Material: - SerializedProperty material = item.FindPropertyRelative("Material"); - EditorGUILayout.PropertyField(material, label, false); - break; - case ThemePropertyTypes.AudioClip: - SerializedProperty audio = item.FindPropertyRelative("AudioClip"); - EditorGUILayout.PropertyField(audio, label, false); - break; - case ThemePropertyTypes.Animaiton: - SerializedProperty animation = item.FindPropertyRelative("Animation"); - EditorGUILayout.PropertyField(animation, label, false); - break; - case ThemePropertyTypes.GameObject: - SerializedProperty gameObjectValue = item.FindPropertyRelative("GameObject"); - EditorGUILayout.PropertyField(gameObjectValue, label, false); - break; - case ThemePropertyTypes.String: - stringValue.stringValue = EditorGUILayout.TextField(label, stringValue.stringValue); - break; - case ThemePropertyTypes.Bool: - SerializedProperty boolValue = item.FindPropertyRelative("Bool"); - boolValue.boolValue = EditorGUILayout.Toggle(label, boolValue.boolValue); - break; - case ThemePropertyTypes.AnimatorTrigger: - stringValue.stringValue = EditorGUILayout.TextField(label, stringValue.stringValue); - break; - case ThemePropertyTypes.Shader: - SerializedProperty shaderObjectValue = item.FindPropertyRelative("Shader"); - EditorGUILayout.PropertyField(shaderObjectValue, label, false); - break; - default: - break; - } - } - - protected bool RenderDeleteButton(int index) - { - // Create Delete button if we have an array of themes - if (themeDefinitions.arraySize > 1 && InspectorUIUtility.SmallButton(RemoveThemePropertyContent)) - { - ClearHistoryCache(index); - DeleteThemeDefinition((uint)index); - - serializedObject.Update(); - EditorUtility.SetDirty(theme); - return true; - } - - return false; - } - - #endregion - - #region Theme Definition Management - - protected virtual void AddThemeDefinition() - { - Type defaultType = typeof(InteractableActivateTheme); - - ThemeDefinition newDefinition = ThemeDefinition.GetDefaultThemeDefinition(defaultType).Value; - if (theme.Definitions == null) - { - theme.Definitions = new List(); - } - theme.Definitions.Add(newDefinition); - theme.History.Add(new Dictionary()); - theme.ValidateDefinitions(); - - serializedObject.Update(); - EditorUtility.SetDirty(theme); - } - - protected void DeleteThemeDefinition(uint index) - { - if (!(theme != null && theme.Definitions != null && index < theme.Definitions.Count)) - { - Debug.LogError("Cannot delete ThemeDefinition. Invalid Theme object"); - return; - } - - theme.Definitions.RemoveAt((int)index); - } - - private void ChangeThemeDefinitionType(int index, Type oldType, Type newType) - { - // Save theme definition to cache - SaveThemeDefinitionHistory(index, oldType); - - // Try to load theme from history cache - ThemeDefinition? definition = LoadThemeDefinitionHistory(index, newType); - if (definition == null) - { - // if not available, then create a new one - definition = ThemeDefinition.GetDefaultThemeDefinition(newType); - } - - theme.Definitions[index] = definition.Value; - theme.ValidateDefinitions(); - - themeDefinitions.serializedObject.Update(); - EditorUtility.SetDirty(theme); - } - - #endregion - - #region Theme Definition History - - protected void ClearHistoryCache(int index) - { - if (theme == null || theme.History == null || index >= theme.History.Count) - { - return; - } - - theme.History.RemoveAt(index); - } - - /// - /// Check that access for the provided index is valid into the definitions and history of the provided Theme - /// - /// Theme container object to inspector - /// index of ThemeDefinintion and History cache to access - /// true if access at index is possible, false otherwise - private static bool ValidThemeHistoryAccess(Theme target, uint index) - { - return target != null && target.History != null && target.Definitions != null - && index < target.History.Count; - } - - protected void SaveThemeDefinitionHistory(int index, Type definitionClassType) - { - if (definitionClassType == null) - { - return; - } - - if (theme == null || theme.History == null || theme.Definitions == null) - { - Debug.LogWarning("Could not save ThemeDefinition to history cache"); - return; - } - - // If cache list is out of sync for some reason, wipe and start fresh - if (theme.History.Count != theme.Definitions.Count) - { - theme.History.Clear(); - for (int i = 0; i < theme.Definitions.Count; i++) - { - theme.History.Add(new Dictionary()); - } - } - - var definition = theme.Definitions[index]; - var cache = theme.History[index]; - cache[definitionClassType] = definition; - } - - protected ThemeDefinition? LoadThemeDefinitionHistory(int index, Type newDefinitionClassType) - { - if (!ValidThemeHistoryAccess(theme, (uint)index)) - { - Debug.LogWarning("Could not load ThemeDefinition to history cache"); - return null; - } - - var cache = theme.History[index]; - if (cache.ContainsKey(newDefinitionClassType)) - { - return cache[newDefinitionClassType]; - } - else - { - return null; - } - } - - #endregion - - private static ShaderUtil.ShaderPropertyType[] GetShaderPropertyFilter(ThemePropertyTypes shaderPropertyType) - { - ShaderUtil.ShaderPropertyType[] shaderTypes = null; - switch (shaderPropertyType) - { - case ThemePropertyTypes.Color: - shaderTypes = new ShaderUtil.ShaderPropertyType[] { ShaderUtil.ShaderPropertyType.Color }; - break; - case ThemePropertyTypes.Texture: - shaderTypes = new ShaderUtil.ShaderPropertyType[] { ShaderUtil.ShaderPropertyType.TexEnv }; - break; - case ThemePropertyTypes.ShaderFloat: - case ThemePropertyTypes.ShaderRange: - shaderTypes = new ShaderUtil.ShaderPropertyType[] { ShaderUtil.ShaderPropertyType.Float, ShaderUtil.ShaderPropertyType.Range }; - break; - } - - return shaderTypes; - } - - private static List GetShaderPropertyList(Shader shader, ShaderUtil.ShaderPropertyType[] filterTypes = null) - { - List results = new List(); - - if (shader == null) return results; - - int count = ShaderUtil.GetPropertyCount(shader); - results.Capacity = count; - - for (int i = 0; i < count; i++) - { - bool isHidden = ShaderUtil.IsShaderPropertyHidden(shader, i); - bool isValidPropertyType = filterTypes == null || filterTypes.Contains(ShaderUtil.GetPropertyType(shader, i)); - if (!isHidden && isValidPropertyType) - { - results.Add(ShaderUtil.GetPropertyName(shader, i)); - } - } - - results.Sort(); - return results; - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs.meta deleted file mode 100644 index 32f6fbf56..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/UX/VisualThemes/ThemeInspector.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: 230db4b73e2623d45831fd131ea14dc2 -timeCreated: 1522252366 -licenseType: Pro -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities.meta deleted file mode 100644 index 11a3b837e..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8e6859dff7f30a444a2d7bbe460393a7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers.meta deleted file mode 100644 index 809007fc8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d6cd2c6917b70be438f8550e109bc3e3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs deleted file mode 100644 index 18c4af40c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Solvers -{ - [CustomEditor(typeof(ControllerFinder))] - public abstract class ControllerFinderInspector : UnityEditor.Editor - { - private SerializedProperty handednessProperty; - - protected virtual void OnEnable() - { - handednessProperty = serializedObject.FindProperty("handedness"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Controller Options", new GUIStyle("Label") { fontStyle = FontStyle.Bold }); - EditorGUILayout.Space(); - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(handednessProperty); - - EditorGUI.indentLevel--; - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs.meta deleted file mode 100644 index 5506426c1..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/ControllerFinderInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1c0e743adef1e044a8f0a319db39ce49 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs deleted file mode 100644 index 5e43a3fe2..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Solvers -{ - [CustomEditor(typeof(InBetween))] - [CanEditMultipleObjects] - public class InBetweenEditor : SolverInspector - { - private SerializedProperty secondTrackedTargetTypeProperty; - private SerializedProperty secondTransformOverrideProperty; - private SerializedProperty partwayOffsetProperty; - - private InBetween solverInBetween; - private static readonly GUIContent SecondTrackedTypeLabel = new GUIContent("Second Tracked Target Type"); - protected override void OnEnable() - { - base.OnEnable(); - - secondTrackedTargetTypeProperty = serializedObject.FindProperty("secondTrackedObjectType"); - secondTransformOverrideProperty = serializedObject.FindProperty("secondTransformOverride"); - partwayOffsetProperty = serializedObject.FindProperty("partwayOffset"); - - solverInBetween = target as InBetween; - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - serializedObject.Update(); - - bool objectChanged = false; - - EditorGUI.BeginChangeCheck(); - - InspectorUIUtility.DrawEnumSerializedProperty(secondTrackedTargetTypeProperty, SecondTrackedTypeLabel, solverInBetween.SecondTrackedObjectType); - - if (secondTrackedTargetTypeProperty.enumValueIndex == (int)TrackedObjectType.CustomOverride) - { - EditorGUILayout.PropertyField(secondTransformOverrideProperty); - } - - objectChanged = EditorGUI.EndChangeCheck(); - - EditorGUILayout.PropertyField(partwayOffsetProperty); - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs.meta deleted file mode 100644 index e46f4e104..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/InBetweenInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5903af227b66a6f47ad2ab65d11c1520 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs deleted file mode 100644 index 1c6c79e7d..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using System; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Solvers -{ - [CustomEditor(typeof(SolverHandler))] - [CanEditMultipleObjects] - public class SolverHandlerInspector : UnityEditor.Editor - { - private SerializedProperty trackedTargetProperty; - private SerializedProperty trackedHandnessProperty; - private SerializedProperty trackedHandJointProperty; - private SerializedProperty transformOverrideProperty; - private SerializedProperty additionalOffsetProperty; - private SerializedProperty additionalRotationProperty; - private SerializedProperty updateSolversProperty; - private SolverHandler solverHandler; - - private static readonly GUIContent TrackedTypeLabel = new GUIContent("Tracked Target Type"); - - protected void OnEnable() - { - trackedTargetProperty = serializedObject.FindProperty("trackedTargetType"); - trackedHandnessProperty = serializedObject.FindProperty("trackedHandness"); - trackedHandJointProperty = serializedObject.FindProperty("trackedHandJoint"); - transformOverrideProperty = serializedObject.FindProperty("transformOverride"); - additionalOffsetProperty = serializedObject.FindProperty("additionalOffset"); - additionalRotationProperty = serializedObject.FindProperty("additionalRotation"); - updateSolversProperty = serializedObject.FindProperty("updateSolvers"); - - solverHandler = target as SolverHandler; - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - if (target != null) - { - InspectorUIUtility.RenderHelpURL(target.GetType()); - } - - bool trackedObjectChanged = false; - - EditorGUI.BeginChangeCheck(); - - InspectorUIUtility.DrawEnumSerializedProperty(trackedTargetProperty, TrackedTypeLabel, solverHandler.TrackedTargetType); - - if (!SolverHandler.IsValidTrackedObjectType(solverHandler.TrackedTargetType)) - { - InspectorUIUtility.DrawWarning(" Current Tracked Target Type value of \"" - + Enum.GetName(typeof(TrackedObjectType), solverHandler.TrackedTargetType) - + "\" is obsolete. Select MotionController or HandJoint values instead"); - } - - if (trackedTargetProperty.enumValueIndex == (int)TrackedObjectType.HandJoint || - trackedTargetProperty.enumValueIndex == (int)TrackedObjectType.ControllerRay) - { - EditorGUILayout.PropertyField(trackedHandnessProperty); - if (trackedHandnessProperty.enumValueIndex > (int)Handedness.Both) - { - InspectorUIUtility.DrawWarning("Only Handedness values of None, Left, Right, and Both are valid"); - } - } - - if (trackedTargetProperty.enumValueIndex == (int)TrackedObjectType.HandJoint) - { - EditorGUILayout.PropertyField(trackedHandJointProperty); - } - else if (trackedTargetProperty.enumValueIndex == (int)TrackedObjectType.CustomOverride) - { - EditorGUILayout.PropertyField(transformOverrideProperty); - } - - EditorGUILayout.PropertyField(additionalOffsetProperty); - EditorGUILayout.PropertyField(additionalRotationProperty); - - trackedObjectChanged = EditorGUI.EndChangeCheck(); - - EditorGUILayout.PropertyField(updateSolversProperty); - - serializedObject.ApplyModifiedProperties(); - - if (EditorApplication.isPlaying && trackedObjectChanged) - { - solverHandler.RefreshTrackedObject(); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs.meta deleted file mode 100644 index bfc41308c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverHandlerInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 192c090e34797fd43b7551187d4a7004 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs deleted file mode 100644 index cae1911b8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Solvers -{ - [CustomEditor(typeof(Solver))] - [CanEditMultipleObjects] - public class SolverInspector : UnityEditor.Editor - { - private SerializedProperty updateLinkedTransformProperty; - private SerializedProperty moveLerpTimeProperty; - private SerializedProperty rotateLerpTimeProperty; - private SerializedProperty scaleLerpTimeProperty; - private SerializedProperty maintainScaleProperty; - private SerializedProperty smoothingProperty; - private SerializedProperty lifetimeProperty; - - protected virtual void OnEnable() - { - updateLinkedTransformProperty = serializedObject.FindProperty("updateLinkedTransform"); - moveLerpTimeProperty = serializedObject.FindProperty("moveLerpTime"); - rotateLerpTimeProperty = serializedObject.FindProperty("rotateLerpTime"); - scaleLerpTimeProperty = serializedObject.FindProperty("scaleLerpTime"); - maintainScaleProperty = serializedObject.FindProperty("maintainScale"); - smoothingProperty = serializedObject.FindProperty("smoothing"); - lifetimeProperty = serializedObject.FindProperty("lifetime"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - EditorGUILayout.PropertyField(updateLinkedTransformProperty); - EditorGUILayout.PropertyField(moveLerpTimeProperty); - EditorGUILayout.PropertyField(rotateLerpTimeProperty); - EditorGUILayout.PropertyField(scaleLerpTimeProperty); - EditorGUILayout.PropertyField(maintainScaleProperty); - EditorGUILayout.PropertyField(smoothingProperty); - EditorGUILayout.PropertyField(lifetimeProperty); - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs.meta deleted file mode 100644 index 26af47488..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SolverInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7ec2b2b9ca2eea54bb08af4eb8433961 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs deleted file mode 100644 index b92844191..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Physics; -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using System.Linq; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Solvers -{ - [CustomEditor(typeof(SurfaceMagnetism))] - [CanEditMultipleObjects] - public class SurfaceMagnetismInspector : SolverInspector - { - private SerializedProperty magneticSurfacesProperty; - private SerializedProperty maxDistanceProperty; - private SerializedProperty closestDistanceProperty; - private SerializedProperty surfaceNormalOffsetProperty; - private SerializedProperty surfaceRayOffsetProperty; - private SerializedProperty raycastModeProperty; - private SerializedProperty boxRaysPerEdgeProperty; - private SerializedProperty orthographicBoxCastProperty; - private SerializedProperty maximumNormalVarianceProperty; - - private SerializedProperty sphereSizeProperty; - private SerializedProperty volumeCastSizeOverrideProperty; - private SerializedProperty useLinkedAltScaleOverrideProperty; - private SerializedProperty currentRaycastDirectionModeProperty; - private SerializedProperty orientationModeProperty; - private SerializedProperty orientationBlendProperty; - private SerializedProperty orientationVerticalProperty; - private SerializedProperty debugEnabledProperty; - - private SurfaceMagnetism surfaceMagnetism; - - protected override void OnEnable() - { - base.OnEnable(); - - magneticSurfacesProperty = serializedObject.FindProperty("magneticSurfaces"); - maxDistanceProperty = serializedObject.FindProperty("maxRaycastDistance"); - closestDistanceProperty = serializedObject.FindProperty("closestDistance"); - surfaceNormalOffsetProperty = serializedObject.FindProperty("surfaceNormalOffset"); - surfaceRayOffsetProperty = serializedObject.FindProperty("surfaceRayOffset"); - currentRaycastDirectionModeProperty = serializedObject.FindProperty("currentRaycastDirectionMode"); - raycastModeProperty = serializedObject.FindProperty("raycastMode"); - boxRaysPerEdgeProperty = serializedObject.FindProperty("boxRaysPerEdge"); - orthographicBoxCastProperty = serializedObject.FindProperty("orthographicBoxCast"); - maximumNormalVarianceProperty = serializedObject.FindProperty("maximumNormalVariance"); - sphereSizeProperty = serializedObject.FindProperty("sphereSize"); - volumeCastSizeOverrideProperty = serializedObject.FindProperty("volumeCastSizeOverride"); - useLinkedAltScaleOverrideProperty = serializedObject.FindProperty("useLinkedAltScaleOverride"); - currentRaycastDirectionModeProperty = serializedObject.FindProperty("currentRaycastDirectionMode"); - orientationModeProperty = serializedObject.FindProperty("orientationMode"); - orientationBlendProperty = serializedObject.FindProperty("orientationBlend"); - orientationVerticalProperty = serializedObject.FindProperty("keepOrientationVertical"); - debugEnabledProperty = serializedObject.FindProperty("debugEnabled"); - - surfaceMagnetism = target as SurfaceMagnetism; - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - serializedObject.Update(); - - // General Properties - EditorGUILayout.LabelField("General Properties", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(surfaceNormalOffsetProperty); - EditorGUILayout.PropertyField(surfaceRayOffsetProperty); - - EditorGUILayout.PropertyField(orientationModeProperty); - - if (surfaceMagnetism.CurrentOrientationMode != SurfaceMagnetism.OrientationMode.None) - { - EditorGUILayout.PropertyField(orientationVerticalProperty); - } - - if (surfaceMagnetism.CurrentOrientationMode == SurfaceMagnetism.OrientationMode.Blended) - { - EditorGUILayout.PropertyField(orientationBlendProperty); - } - - // Raycast properties - EditorGUILayout.LabelField("Raycast Properties", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(magneticSurfacesProperty, true); - - // When raycast from the center of the GameObject, Raycast may hit one of the collider on the GameObject (or children) - // This results in the GameObject "magnetizes" against itself. Warn user if this possibility exists - var colliders = surfaceMagnetism.GetComponentsInChildren(); - foreach (var collider in colliders) - { - if (surfaceMagnetism.MagneticSurfaces.Any(s => collider.gameObject.IsInLayerMask(s))) - { - InspectorUIUtility.DrawWarning("This GameObject, or a child of the GameObject, has a collider on a layer listed in the Magnetic Surfaces property. Raycasts calculated for the SurfaceMagnetism component may result in hits against itself causing odd behavior. Consider moving this GameObject and all children to the \"Ignore Raycast\" layer"); - break; - } - } - - EditorGUILayout.PropertyField(closestDistanceProperty); - EditorGUILayout.PropertyField(maxDistanceProperty); - EditorGUILayout.PropertyField(currentRaycastDirectionModeProperty); - EditorGUILayout.PropertyField(raycastModeProperty); - - // Draw properties dependent on type of raycast direction mode selected - switch (raycastModeProperty.enumValueIndex) - { - case (int)SceneQueryType.BoxRaycast: - EditorGUILayout.PropertyField(boxRaysPerEdgeProperty); - EditorGUILayout.PropertyField(orthographicBoxCastProperty); - EditorGUILayout.PropertyField(maximumNormalVarianceProperty); - break; - case (int)SceneQueryType.SphereCast: - EditorGUILayout.PropertyField(sphereSizeProperty); - break; - case (int)SceneQueryType.SphereOverlap: - InspectorUIUtility.DrawWarning("SurfaceMagnetism does not support SphereOverlap raycast mode"); - break; - } - - if (raycastModeProperty.enumValueIndex != (int)SceneQueryType.SimpleRaycast && - raycastModeProperty.enumValueIndex != (int)SceneQueryType.SphereOverlap) - { - EditorGUILayout.PropertyField(volumeCastSizeOverrideProperty); - } - - // Other properties - EditorGUILayout.LabelField("Other Properties", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(useLinkedAltScaleOverrideProperty); - EditorGUILayout.PropertyField(debugEnabledProperty); - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs.meta deleted file mode 100644 index 57fa2efcf..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/SurfaceMagnetismInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2f5ae05ffc536b54f987c4d5128d6145 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs deleted file mode 100644 index 403cbba18..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using UnityEditor; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities.Editor.Solvers -{ - /// - /// Custom inspector for the Tap to Place component. - /// - [CustomEditor(typeof(TapToPlace))] - [CanEditMultipleObjects] - public class TapToPlaceInspector : UnityEditor.Editor - { - private TapToPlace instance; - - // Tap to Place properties - private SerializedProperty autoStart; - private SerializedProperty defaultPlacementDistance; - private SerializedProperty maxRaycastDistance; - private SerializedProperty surfaceNormalOffset; - private SerializedProperty useDefaultSurfaceNormalOffset; - private SerializedProperty keepOrientationVertical; - private SerializedProperty rotateAccordingToSurface; - private SerializedProperty debugEnabled; - private SerializedProperty onPlacingStarted; - private SerializedProperty onPlacingStopped; - - // Advanced properties - private SerializedProperty updateLinkedTransformProperty; - private SerializedProperty moveLerpTimeProperty; - private SerializedProperty rotateLerpTimeProperty; - private SerializedProperty scaleLerpTimeProperty; - private SerializedProperty maintainScaleProperty; - private SerializedProperty smoothingProperty; - private SerializedProperty lifetimeProperty; - private SerializedProperty magneticSurfaces; - - private const string AdvancedPropertiesFoldoutKey = "TapToPlaceAdvancedProperties"; - - protected virtual void OnEnable() - { - instance = (TapToPlace)target; - - // Main Tap to Place Properties - autoStart = serializedObject.FindProperty("autoStart"); - defaultPlacementDistance = serializedObject.FindProperty("defaultPlacementDistance"); - maxRaycastDistance = serializedObject.FindProperty("maxRaycastDistance"); - useDefaultSurfaceNormalOffset = serializedObject.FindProperty("useDefaultSurfaceNormalOffset"); - surfaceNormalOffset = serializedObject.FindProperty("surfaceNormalOffset"); - keepOrientationVertical = serializedObject.FindProperty("keepOrientationVertical"); - rotateAccordingToSurface = serializedObject.FindProperty("rotateAccordingToSurface"); - debugEnabled = serializedObject.FindProperty("debugEnabled"); - onPlacingStopped = serializedObject.FindProperty("onPlacingStopped"); - onPlacingStarted = serializedObject.FindProperty("onPlacingStarted"); - - // Advanced Properties - updateLinkedTransformProperty = serializedObject.FindProperty("updateLinkedTransform"); - moveLerpTimeProperty = serializedObject.FindProperty("moveLerpTime"); - rotateLerpTimeProperty = serializedObject.FindProperty("rotateLerpTime"); - scaleLerpTimeProperty = serializedObject.FindProperty("scaleLerpTime"); - maintainScaleProperty = serializedObject.FindProperty("maintainScale"); - smoothingProperty = serializedObject.FindProperty("smoothing"); - lifetimeProperty = serializedObject.FindProperty("lifetime"); - magneticSurfaces = serializedObject.FindProperty("magneticSurfaces"); - } - - public override void OnInspectorGUI() - { - RenderCustomInspector(); - } - - // Render the custom inspector with the basic and advanced properties - private void RenderCustomInspector() - { - serializedObject.Update(); - - EditorGUILayout.PropertyField(autoStart); - EditorGUILayout.PropertyField(defaultPlacementDistance); - EditorGUILayout.PropertyField(maxRaycastDistance); - EditorGUILayout.PropertyField(useDefaultSurfaceNormalOffset); - - // Only show the SurfaceNormalOffset property if UseDefaultSurfaceNormalOffset is false because setting the SurfaceNormalOffset of - // a tap to place object is only relevant if the defaultSurfaceNormalOffset is not used - if (!instance.UseDefaultSurfaceNormalOffset) - { - EditorGUILayout.PropertyField(surfaceNormalOffset); - } - - EditorGUILayout.PropertyField(keepOrientationVertical); - EditorGUILayout.PropertyField(rotateAccordingToSurface); - EditorGUILayout.PropertyField(debugEnabled); - EditorGUILayout.PropertyField(onPlacingStarted); - EditorGUILayout.PropertyField(onPlacingStopped); - - // Render Advanced Properties Foldout - RenderAdvancedProperties(); - - serializedObject.ApplyModifiedProperties(); - } - - // Render the Advanced Properties under an indented foldout titled Advanced Properties - private void RenderAdvancedProperties() - { - // Render Advanced Settings - if (InspectorUIUtility.DrawSectionFoldoutWithKey("Advanced Properties", AdvancedPropertiesFoldoutKey, MixedRealityStylesUtility.TitleFoldoutStyle, false)) - { - using (new EditorGUI.IndentLevelScope()) - { - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(updateLinkedTransformProperty); - EditorGUILayout.PropertyField(moveLerpTimeProperty); - EditorGUILayout.PropertyField(rotateLerpTimeProperty); - EditorGUILayout.PropertyField(scaleLerpTimeProperty); - EditorGUILayout.PropertyField(maintainScaleProperty); - EditorGUILayout.PropertyField(smoothingProperty); - EditorGUILayout.PropertyField(lifetimeProperty); - EditorGUILayout.PropertyField(magneticSurfaces, true); - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs.meta deleted file mode 100644 index d8c1700f0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Inspectors/Utilities/Solvers/TapToPlaceInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8ba2edd116e977040bb94024240211d9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef b/AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef deleted file mode 100644 index 6cebe2260..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.SDK.Editor", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.SDK", - "Microsoft.MixedReality.Toolkit.Services.InputSystem" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef.meta b/AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef.meta deleted file mode 100644 index aa0eaff18..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/MRTK.SDK.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 829e63f67f814aae828de5ab51326cf6 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Migration.meta deleted file mode 100644 index a3a59a161..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1ee1f967a254af64a851a204f89a74d5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs deleted file mode 100644 index 9385e16e9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs +++ /dev/null @@ -1,313 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI.BoundsControl; -using Microsoft.MixedReality.Toolkit.UI.BoundsControlTypes; -using Microsoft.MixedReality.Toolkit.UI; -using UnityEditor; -using UnityEngine; -using System.Collections.Generic; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Migration handler for migrating bounding box gameobjects to bounds control gameobjects. - /// - public class BoundsControlMigrationHandler : IMigrationHandler - { - /// - public bool CanMigrate(GameObject gameObject) - { - return gameObject.GetComponent() != null; - } - - /// - public void Migrate(GameObject gameObject) - { - var boundingBox = gameObject.GetComponent(); - var boundsControl = gameObject.EnsureComponent(); - - boundsControl.enabled = boundingBox.enabled; - - { - Undo.RecordObject(gameObject, "BoundsControl migration: swapping BoundingBox with BoundsControl."); - - // migrate logic settings - boundsControl.Target = boundingBox.Target; - boundsControl.BoundsOverride = boundingBox.BoundsOverride; - boundsControl.CalculationMethod = MigrateCalculationMethod(boundingBox.CalculationMethod); - boundsControl.BoundsControlActivation = MigrateActivationFlag(boundingBox.BoundingBoxActivation); - - // only carry over min max scaling values if user hasn't attached min max scale constraint component yet - if (gameObject.GetComponent() == null) - { -#pragma warning disable 0618 - // create a minmaxscaleconstraint in case there's a min max scale set up - if (boundingBox.ScaleMinimum != 0.0f || boundingBox.ScaleMaximum != 0.0f) - { - MinMaxScaleConstraint scaleConstraint = gameObject.AddComponent(); - scaleConstraint.ScaleMinimum = boundingBox.ScaleMinimum; - scaleConstraint.ScaleMaximum = boundingBox.ScaleMaximum; - } -#pragma warning restore 0618 - } - - // migrate visuals - boundsControl.FlattenAxis = MigrateFlattenAxis(boundingBox.FlattenAxis); - boundsControl.BoxPadding = boundingBox.BoxPadding; - MigrateBoxDisplay(boundsControl, boundingBox); - MigrateLinks(boundsControl, boundingBox); - MigrateScaleHandles(boundsControl, boundingBox); - MigrateRotationHandles(boundsControl, boundingBox); - MigrateProximityEffect(boundsControl, boundingBox); - - // debug properties - boundsControl.DebugText = boundingBox.debugText; - boundsControl.HideElementsInInspector = boundingBox.HideElementsInInspector; - - // events - boundsControl.RotateStarted = boundingBox.RotateStarted; - boundsControl.RotateStopped = boundingBox.RotateStopped; - boundsControl.ScaleStarted = boundingBox.ScaleStarted; - boundsControl.ScaleStopped = boundingBox.ScaleStopped; - } - - // look in the scene for app bars and upgrade them too to point to the new component - MigrateAppBar(boundingBox, boundsControl); - - { - Undo.RecordObject(gameObject, "Removing obsolete BoundingBox component"); - // destroy obsolete component - Object.DestroyImmediate(boundingBox); - } - } - - #region Flags Migration - - private BoundsCalculationMethod MigrateCalculationMethod(BoundingBox.BoundsCalculationMethod calculationMethod) - { - switch (calculationMethod) - { - case BoundingBox.BoundsCalculationMethod.RendererOverCollider: - return BoundsCalculationMethod.RendererOverCollider; - case BoundingBox.BoundsCalculationMethod.ColliderOverRenderer: - return BoundsCalculationMethod.ColliderOverRenderer; - case BoundingBox.BoundsCalculationMethod.ColliderOnly: - return BoundsCalculationMethod.ColliderOnly; - case BoundingBox.BoundsCalculationMethod.RendererOnly: - return BoundsCalculationMethod.RendererOnly; - } - - Debug.Assert(false, "Tried to migrate unsupported bounds calculation method in bounding box / bounds control"); - return BoundsCalculationMethod.RendererOverCollider; - } - - private BoundsControlActivationType MigrateActivationFlag(BoundingBox.BoundingBoxActivationType activationFlag) - { - switch (activationFlag) - { - case BoundingBox.BoundingBoxActivationType.ActivateOnStart: - return BoundsControlActivationType.ActivateOnStart; - case BoundingBox.BoundingBoxActivationType.ActivateByProximity: - return BoundsControlActivationType.ActivateByProximity; - case BoundingBox.BoundingBoxActivationType.ActivateByPointer: - return BoundsControlActivationType.ActivateByPointer; - case BoundingBox.BoundingBoxActivationType.ActivateByProximityAndPointer: - return BoundsControlActivationType.ActivateByProximityAndPointer; - case BoundingBox.BoundingBoxActivationType.ActivateManually: - return BoundsControlActivationType.ActivateManually; - } - - Debug.Assert(false, "Tried to migrate unsupported activation flag in bounding box / bounds control"); - return BoundsControlActivationType.ActivateOnStart; - } - - private FlattenModeType MigrateFlattenAxis(BoundingBox.FlattenModeType flattenAxisType) - { - switch (flattenAxisType) - { - case BoundingBox.FlattenModeType.DoNotFlatten: - return FlattenModeType.DoNotFlatten; - case BoundingBox.FlattenModeType.FlattenX: - return FlattenModeType.FlattenX; - case BoundingBox.FlattenModeType.FlattenY: - return FlattenModeType.FlattenY; - case BoundingBox.FlattenModeType.FlattenZ: - return FlattenModeType.FlattenZ; - case BoundingBox.FlattenModeType.FlattenAuto: - return FlattenModeType.FlattenAuto; - } - - Debug.Assert(false, "Tried to migrate unsupported flatten axis type in bounding box / bounds control"); - return FlattenModeType.DoNotFlatten; - } - - private WireframeType MigrateWireframeShape(BoundingBox.WireframeType wireframeType) - { - switch (wireframeType) - { - case BoundingBox.WireframeType.Cubic: - return WireframeType.Cubic; - case BoundingBox.WireframeType.Cylindrical: - return WireframeType.Cylindrical; - } - - Debug.Assert(false, "Tried to migrate unsupported wireframe type in bounding box / bounds control"); - return WireframeType.Cubic; - } - - private HandlePrefabCollider MigrateRotationHandleColliderType(BoundingBox.RotationHandlePrefabCollider rotationHandlePrefabColliderType) - { - switch (rotationHandlePrefabColliderType) - { - case BoundingBox.RotationHandlePrefabCollider.Sphere: - return HandlePrefabCollider.Sphere; - case BoundingBox.RotationHandlePrefabCollider.Box: - return HandlePrefabCollider.Box; - } - - Debug.Assert(false, "Tried to migrate unsupported rotation handle collider type in bounding box / bounds control"); - return HandlePrefabCollider.Sphere; - } - - #endregion Flags Migration - - #region Visuals Configuration Migration - - private T EnsureConfiguration(GameObject owner, T config, bool enforceScriptableCreation) where T : ScriptableObject - { - var instance = config; - if (instance == null || enforceScriptableCreation) - { - instance = ScriptableObject.CreateInstance(); - // scriptables in prefabs need to be added into their asset file as serializedobject, else they won't get stored - string objectPath = owner.scene.path; - if (objectPath.EndsWith(".prefab")) - { - instance.name = instance.GetType().Name; - AssetDatabase.AddObjectToAsset(instance, objectPath); - } - } - - return instance; - } - - /// - /// This method checks if the given object has a property override for any of the given property names. - /// It's used to figure out if scriptable objects have to be created for the current prefab / gameobject instance level. - /// - /// The target object (can be prefab component or component instance). - /// Property names to be checked. - /// Returns true if any of the passed property names have an override. - bool HasPropertyOverrides(Object target, List propertyNames) - { - var propertyModifications = PrefabUtility.GetPropertyModifications(target); - if (propertyModifications != null) - { - foreach (var propertyMod in propertyModifications) - { - if (propertyNames.Contains(propertyMod.propertyPath)) - { - return true; - } - } - } - - return false; - } - - private void MigrateBoxDisplay(BoundsControl control, BoundingBox box) - { - List propertyPaths = new List{ "boxMaterial", "boxGrabbedMaterial", "flattenAxisDisplayScale" }; - BoxDisplayConfiguration config = EnsureConfiguration(control.gameObject, control.BoxDisplayConfig, HasPropertyOverrides(box, propertyPaths)); - config.BoxMaterial = box.BoxMaterial; - config.BoxGrabbedMaterial = box.BoxGrabbedMaterial; - config.FlattenAxisDisplayScale = box.FlattenAxisDisplayScale; - control.BoxDisplayConfig = config; - } - - private void MigrateLinks(BoundsControl control, BoundingBox box) - { - List propertyPaths = new List { "wireframeMaterial", "wireframeEdgeRadius", "wireframeShape", "showWireFrame" }; - LinksConfiguration config = EnsureConfiguration(control.gameObject, control.LinksConfig, HasPropertyOverrides(box, propertyPaths)); - config.WireframeMaterial = box.WireframeMaterial; - config.WireframeEdgeRadius = box.WireframeEdgeRadius; - config.WireframeShape = MigrateWireframeShape(box.WireframeShape); - config.ShowWireFrame = box.ShowWireFrame; - control.LinksConfig = config; - } - - private void MigrateScaleHandles(BoundsControl control, BoundingBox box) - { - List propertyPaths = new List { "scaleHandleSlatePrefab", "showScaleHandles", "handleMaterial", "handleGrabbedMaterial", - "scaleHandlePrefab", "scaleHandleSize", "scaleHandleColliderPadding", "drawTetherWhenManipulating", "handlesIgnoreCollider"}; - ScaleHandlesConfiguration config = EnsureConfiguration(control.gameObject, control.ScaleHandlesConfig, HasPropertyOverrides(box, propertyPaths)); - config.HandleSlatePrefab = box.ScaleHandleSlatePrefab; - config.ShowScaleHandles = box.ShowScaleHandles; - config.HandleMaterial = box.HandleMaterial; - config.HandleGrabbedMaterial = box.HandleGrabbedMaterial; - config.HandlePrefab = box.ScaleHandlePrefab; - config.HandleSize = box.ScaleHandleSize; - config.ColliderPadding = box.ScaleHandleColliderPadding; - config.DrawTetherWhenManipulating = box.DrawTetherWhenManipulating; - config.HandlesIgnoreCollider = box.HandlesIgnoreCollider; - control.ScaleHandlesConfig = config; - } - - private void MigrateRotationHandles(BoundsControl control, BoundingBox box) - { - List propertyPaths = new List { "rotationHandlePrefabColliderType", "showRotationHandleForX", "showRotationHandleForY", - "showRotationHandleForZ", "handleMaterial", "handleGrabbedMaterial", "rotationHandlePrefab", "rotationHandleSize", "rotateHandleColliderPadding", - "drawTetherWhenManipulating", "handlesIgnoreCollider"}; - RotationHandlesConfiguration config = EnsureConfiguration(control.gameObject, control.RotationHandlesConfig, HasPropertyOverrides(box, propertyPaths)); - config.HandlePrefabColliderType = MigrateRotationHandleColliderType(box.RotationHandlePrefabColliderType); - config.ShowHandleForX = box.ShowRotationHandleForX; - config.ShowHandleForY = box.ShowRotationHandleForY; - config.ShowHandleForZ = box.ShowRotationHandleForZ; - config.HandleMaterial = box.HandleMaterial; - config.HandleGrabbedMaterial = box.HandleGrabbedMaterial; - config.HandlePrefab = box.RotationHandlePrefab; - config.HandleSize = box.RotationHandleSize; - config.ColliderPadding = box.RotateHandleColliderPadding; - config.DrawTetherWhenManipulating = box.DrawTetherWhenManipulating; - config.HandlesIgnoreCollider = box.HandlesIgnoreCollider; - control.RotationHandlesConfig = config; - } - - private void MigrateProximityEffect(BoundsControl control, BoundingBox box) - { - List propertyPaths = new List { "proximityEffectActive", "handleMediumProximity", "handleCloseProximity", "farScale", - "mediumScale", "closeScale", "farGrowRate", "mediumGrowRate", "closeGrowRate"}; - ProximityEffectConfiguration config = EnsureConfiguration(control.gameObject, control.HandleProximityEffectConfig, HasPropertyOverrides(box, propertyPaths)); - config.ProximityEffectActive = box.ProximityEffectActive; - config.ObjectMediumProximity = box.HandleMediumProximity; - config.ObjectCloseProximity = box.HandleCloseProximity; - config.FarScale = box.FarScale; - config.MediumScale = box.MediumScale; - config.CloseScale = box.CloseScale; - config.FarGrowRate = box.FarGrowRate; - config.MediumGrowRate = box.MediumGrowRate; - config.CloseGrowRate = box.CloseGrowRate; - control.HandleProximityEffectConfig = config; - } - - #endregion Visuals Configuration Migration - - private void MigrateAppBar(BoundingBox boundingBox, BoundsControl boundsControl) - { - // note: this might be expensive for larger scenes but we don't know where the appbar is - // placed in the hierarchy so we have to search the scene for it - AppBar[] appBars = Object.FindObjectsOfType(); - for (int i = 0; i < appBars.Length; ++i) - { - AppBar appBar = appBars[i]; - if (appBar.Target == boundingBox) - { - Undo.RecordObject(appBar, "BoundsControl migration: changed target of app bar."); - appBar.Target = boundsControl; - EditorUtility.SetDirty(appBar); - } - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs.meta deleted file mode 100644 index 5bd3e8f22..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/BoundsControlMigrationHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f92a0779b2e90394a8240f229afa6f55 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs deleted file mode 100644 index d6434df98..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Migration handler for migrating buttons with custom icons to the button config helper. - /// - public class ButtonConfigHelperMigrationHandler : IMigrationHandler - { - /// - public bool CanMigrate(GameObject gameObject) - { - ButtonConfigHelper bch = gameObject.GetComponent(); - return bch != null && bch.EditorCheckForCustomIcon(); - } - - /// - public void Migrate(GameObject gameObject) - { - ButtonConfigHelper bch = gameObject.GetComponent(); - bch.EditorUpgradeCustomIcon(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs.meta deleted file mode 100644 index 72e2e8aa4..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ButtonConfigHelperMigrationHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ad1fba6d80f6189419309914256cbabb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs deleted file mode 100644 index fdd42c2af..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// Interface defining a migration handler, which is used to migrate assets as they - /// upgrade to new versions of MRTK. - /// - public class ObjectManipulatorMigrationHandler : IMigrationHandler - { - /// - public bool CanMigrate(GameObject gameObject) - { - return gameObject.GetComponent() != null; - } - - /// - public void Migrate(GameObject gameObject) - { - var manipHandler = gameObject.GetComponent(); - var objManip = gameObject.AddComponent(); - - objManip.enabled = manipHandler.enabled; - - objManip.HostTransform = manipHandler.HostTransform; - - switch (manipHandler.ManipulationType) - { - case ManipulationHandler.HandMovementType.OneHandedOnly: - objManip.ManipulationType = ManipulationHandFlags.OneHanded; - break; - case ManipulationHandler.HandMovementType.TwoHandedOnly: - objManip.ManipulationType = ManipulationHandFlags.TwoHanded; - break; - case ManipulationHandler.HandMovementType.OneAndTwoHanded: - objManip.ManipulationType = ManipulationHandFlags.OneHanded | - ManipulationHandFlags.TwoHanded; - break; - } - - objManip.AllowFarManipulation = manipHandler.AllowFarManipulation; - - if (manipHandler.OneHandRotationModeNear == manipHandler.OneHandRotationModeFar) - { - MigrateOneHandRotationModes(ref objManip, manipHandler.OneHandRotationModeNear, ManipulationProximityFlags.Near | ManipulationProximityFlags.Far); - } - else - { - MigrateOneHandRotationModes(ref objManip, manipHandler.OneHandRotationModeNear, ManipulationProximityFlags.Near); - MigrateOneHandRotationModes(ref objManip, manipHandler.OneHandRotationModeFar, ManipulationProximityFlags.Far); - } - - switch (manipHandler.TwoHandedManipulationType) - { - case ManipulationHandler.TwoHandedManipulation.Scale: - objManip.TwoHandedManipulationType = TransformFlags.Scale; - break; - case ManipulationHandler.TwoHandedManipulation.Rotate: - objManip.TwoHandedManipulationType = TransformFlags.Rotate; - break; - case ManipulationHandler.TwoHandedManipulation.MoveScale: - objManip.TwoHandedManipulationType = TransformFlags.Move | - TransformFlags.Scale; - break; - case ManipulationHandler.TwoHandedManipulation.MoveRotate: - objManip.TwoHandedManipulationType = TransformFlags.Move | - TransformFlags.Rotate; - break; - case ManipulationHandler.TwoHandedManipulation.RotateScale: - objManip.TwoHandedManipulationType = TransformFlags.Rotate | - TransformFlags.Scale; - break; - case ManipulationHandler.TwoHandedManipulation.MoveRotateScale: - objManip.TwoHandedManipulationType = TransformFlags.Move | - TransformFlags.Rotate | - TransformFlags.Scale; - break; - } - - objManip.ReleaseBehavior = (ObjectManipulator.ReleaseBehaviorType)manipHandler.ReleaseBehavior; - - if (manipHandler.ConstraintOnRotation != RotationConstraintType.None) - { - var rotateConstraint = objManip.EnsureComponent(); - rotateConstraint.ConstraintOnRotation = RotationConstraintHelper.ConvertToAxisFlags(manipHandler.ConstraintOnRotation); - } - - if (manipHandler.ConstraintOnMovement == MovementConstraintType.FixDistanceFromHead) - { - var moveConstraint = objManip.EnsureComponent(); - moveConstraint.ConstraintTransform = CameraCache.Main.transform; - } - - objManip.SmoothingFar = manipHandler.SmoothingActive; - objManip.MoveLerpTime = manipHandler.SmoothingAmoutOneHandManip; - objManip.RotateLerpTime = manipHandler.SmoothingAmoutOneHandManip; - objManip.ScaleLerpTime = manipHandler.SmoothingAmoutOneHandManip; - objManip.OnManipulationStarted = manipHandler.OnManipulationStarted; - objManip.OnManipulationEnded = manipHandler.OnManipulationEnded; - objManip.OnHoverEntered = manipHandler.OnHoverEntered; - objManip.OnHoverExited = manipHandler.OnHoverExited; - - // finally check if there's a CursorContextManipulationHandler on the gameObject that we have to swap - CursorContextManipulationHandler cursorContextManipHandler = gameObject.GetComponent(); - if (cursorContextManipHandler) - { - gameObject.AddComponent(); - // remove old component - Object.DestroyImmediate(cursorContextManipHandler); - } - - Object.DestroyImmediate(manipHandler); - } - - private void MigrateOneHandRotationModes(ref ObjectManipulator objManip, ManipulationHandler.RotateInOneHandType oldMode, ManipulationProximityFlags proximity) - { - ObjectManipulator.RotateInOneHandType newMode = ObjectManipulator.RotateInOneHandType.RotateAboutGrabPoint; - - switch (oldMode) - { - case ManipulationHandler.RotateInOneHandType.MaintainRotationToUser: - { - newMode = ObjectManipulator.RotateInOneHandType.RotateAboutGrabPoint; - - var constraint = objManip.EnsureComponent(); - constraint.HandType = ManipulationHandFlags.OneHanded; - constraint.ProximityType = proximity; - break; - } - case ManipulationHandler.RotateInOneHandType.GravityAlignedMaintainRotationToUser: - { - newMode = ObjectManipulator.RotateInOneHandType.RotateAboutGrabPoint; - - var rotConstraint = objManip.EnsureComponent(); - rotConstraint.HandType = ManipulationHandFlags.OneHanded; - rotConstraint.ProximityType = proximity; - - var axisConstraint = objManip.EnsureComponent(); - axisConstraint.HandType = ManipulationHandFlags.OneHanded; - axisConstraint.ProximityType = proximity; - axisConstraint.ConstraintOnRotation = AxisFlags.XAxis | AxisFlags.ZAxis; - break; - } - case ManipulationHandler.RotateInOneHandType.FaceUser: - { - newMode = ObjectManipulator.RotateInOneHandType.RotateAboutGrabPoint; - - var rotConstraint = objManip.EnsureComponent(); - rotConstraint.HandType = ManipulationHandFlags.OneHanded; - rotConstraint.ProximityType = proximity; - rotConstraint.FaceAway = false; - break; - } - case ManipulationHandler.RotateInOneHandType.FaceAwayFromUser: - { - newMode = ObjectManipulator.RotateInOneHandType.RotateAboutGrabPoint; - - var rotConstraint = objManip.EnsureComponent(); - rotConstraint.HandType = ManipulationHandFlags.OneHanded; - rotConstraint.ProximityType = proximity; - rotConstraint.FaceAway = true; - break; - } - case ManipulationHandler.RotateInOneHandType.MaintainOriginalRotation: - { - newMode = ObjectManipulator.RotateInOneHandType.RotateAboutGrabPoint; - - var rotConstraint = objManip.EnsureComponent(); - rotConstraint.HandType = ManipulationHandFlags.OneHanded; - rotConstraint.ProximityType = proximity; - break; - } - case ManipulationHandler.RotateInOneHandType.RotateAboutObjectCenter: - newMode = ObjectManipulator.RotateInOneHandType.RotateAboutObjectCenter; - break; - case ManipulationHandler.RotateInOneHandType.RotateAboutGrabPoint: - newMode = ObjectManipulator.RotateInOneHandType.RotateAboutGrabPoint; - break; - } - - if (proximity.HasFlag(ManipulationProximityFlags.Near)) - { - objManip.OneHandRotationModeNear = newMode; - } - if (proximity.HasFlag(ManipulationProximityFlags.Far)) - { - objManip.OneHandRotationModeFar = newMode; - } - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs.meta deleted file mode 100644 index 4ab025a19..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/ObjectManipulatorMigrationHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4629baeaa4e38314280a06011d410943 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools.meta deleted file mode 100644 index 8e521e3cd..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3257a64574067f448ab1ca27216486fd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs deleted file mode 100644 index 3d83001ec..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs +++ /dev/null @@ -1,499 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.SceneManagement; - -using Object = UnityEngine.Object; - -namespace Microsoft.MixedReality.Toolkit.Utilities -{ - /// - /// This tool allows the migration of obsolete components into up-to-date versions. - /// In order to be processed by the migration tool, deprecated components require specific implementation of the IMigrationHandler - /// - public class MigrationTool - { - private List migrationHandlerTypes = new List(); - /// - /// Returns a copy of all loadable implementation types of IMigrationHandler - /// - public List MigrationHandlerTypes => new List(migrationHandlerTypes); - - private Dictionary migrationObjects = new Dictionary(); - /// - /// Returns a copy of all game objects, prefabs and scene assets selected for migration and their migration status - /// - public Dictionary MigrationObjects => new Dictionary(migrationObjects); - - private IMigrationHandler migrationHandlerInstance; - private Type migrationHandlerInstanceType; - - /// - /// Possible states for the migration tool - /// - public enum MigrationToolState - { - PreMigration = 0, // New object selection can be added to migration objects collection - Migrating, // Processing migration objects - PostMigration // New objects should not be added to migration objects collection - }; - - /// - /// Current migration process state of the tool - /// - public MigrationToolState MigrationState { get; private set; } - - public MigrationTool() - { - RefreshAvailableTypes(); - } - - /// - /// Adds selectedObject to the list of objects to be migrated. Return false if the object is not of type GameObject, or SceneAsset. - /// - public bool TryAddObjectForMigration(Type type, Object selectedObject) - { - if (MigrationState == MigrationToolState.Migrating) - { - Debug.LogError("Objects cannot be added during migration process."); - return false; - } - else if (MigrationState == MigrationToolState.PostMigration) - { - ClearMigrationList(); - MigrationState = MigrationToolState.PreMigration; - } - - if (type == null) - { - Debug.LogError("Migration type needs to be selected before migration."); - return false; - } - - if (type != migrationHandlerInstanceType) - { - ClearMigrationList(); - Debug.Log("New migration type selected for migration. Clearing previous selection."); - - if (!SetMigrationHandlerInstance(type)) - { - return false; - } - } - - if (!selectedObject) - { - Debug.LogWarning("Selection is empty. Please select object for migration."); - return false; - } - - if (selectedObject is GameObject || selectedObject is SceneAsset) - { - if (CheckIfCanMigrate(type, selectedObject) && !migrationObjects.ContainsKey(selectedObject)) - { - migrationObjects.Add(selectedObject, new MigrationStatus()); - return true; - } - else - { - Debug.Log($"{selectedObject.name} does not support {type.Name} migration. Could not add object for migration"); - return false; - } - } - Debug.LogError("Object must be a GameObject, Prefab or SceneAsset. Could not add object for migration"); - return false; - } - - private bool CheckIfCanMigrate(Type type, Object selectedObject) - { - bool canMigrate = false; - string objectPath = AssetDatabase.GetAssetPath(selectedObject); - - if (IsSceneGameObject(selectedObject)) - { - var objectHierarchy = ((GameObject)selectedObject).GetComponentsInChildren(true); - for (int i = 0; i < objectHierarchy.Length; i++) - { - if (migrationHandlerInstance.CanMigrate(objectHierarchy[i].gameObject)) - { - return true; - } - } - } - else if (IsPrefabAsset(selectedObject)) - { - PrefabAssetType prefabType = PrefabUtility.GetPrefabAssetType(selectedObject); - if (prefabType == PrefabAssetType.Regular || prefabType == PrefabAssetType.Variant) - { - var parent = UnityEditor.PrefabUtility.LoadPrefabContents(objectPath); - canMigrate = CheckIfCanMigrate(type, parent); - PrefabUtility.UnloadPrefabContents(parent); - } - } - else if (IsSceneAsset(selectedObject)) - { - Scene scene = EditorSceneManager.OpenScene(objectPath); - - foreach (var parent in scene.GetRootGameObjects()) - { - if (CheckIfCanMigrate(type, parent)) - { - return true; - } - } - } - return canMigrate; - } - - /// - /// Adds all prefabs and scene assets found on the assets folder to the list of objects to be migrated - /// - public void TryAddProjectForMigration(Type migrationType) - { - AddAllAssetsOfTypeForMigration(migrationType, new Type[] { typeof(GameObject), typeof(SceneAsset) }); - } - - /// - /// Removes object from the list of objects to migrated - /// - /// Object to be removed - public void RemoveObjectForMigration(Object selectedObject) - { - migrationObjects.Remove(selectedObject); - } - - /// - /// Clears list of objects to be migrated - /// - public void ClearMigrationList() - { - migrationObjects.Clear(); - } - - /// - /// Migrates all objects from list of objects to be migrated using the selected IMigrationHandler implementation. - /// - /// A type that implements IMigrationhandler - public bool MigrateSelection(Type type, bool askForConfirmation) - { - if (migrationObjects.Count == 0) - { - Debug.LogError($"List of objects for migration is empty."); - return false; - } - - if (migrationHandlerInstanceType == null) - { - Debug.LogError($"Please select type for migration."); - return false; - } - - if (type == null || migrationHandlerInstanceType != type) - { - Debug.LogError($"Selected objects should be migrated with type: {migrationHandlerInstanceType}"); - return false; - } - - if (askForConfirmation && !EditorUtility.DisplayDialog("Migration Window", - "Migration operation cannot be reverted.\n\nDo you want to continue?", "Continue", "Cancel")) - { - return false; - } - - if (askForConfirmation && !EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) - { - return false; - } - var previousScenePath = EditorSceneManager.GetActiveScene().path; - int failures = 0; - MigrationState = MigrationToolState.Migrating; - - for (int i = 0; i < migrationObjects.Count; i++) - { - var progress = (float)i / migrationObjects.Count; - if (EditorUtility.DisplayCancelableProgressBar("Migration Tool", $"Migrating all {type.Name} components from selection", progress)) - { - break; - } - string assetPath = AssetDatabase.GetAssetPath(migrationObjects.ElementAt(i).Key); - - if (IsSceneGameObject(migrationObjects.ElementAt(i).Key)) - { - MigrateGameObjectHierarchy((GameObject)migrationObjects.ElementAt(i).Key, migrationObjects.ElementAt(i).Value); - } - else if (IsPrefabAsset(migrationObjects.ElementAt(i).Key)) - { - PrefabAssetType prefabType = PrefabUtility.GetPrefabAssetType(migrationObjects.ElementAt(i).Key); - if (prefabType == PrefabAssetType.Regular || prefabType == PrefabAssetType.Variant) - { - // there's currently 5 types of prefab asset types - we're supporting the following: - // - Regular: a regular prefab object - // - Variant: a prefab derived from another prefab which could be a model, regular or variant prefab - // we won't support the following types: - // - Model: we can't migrate fbx or other mesh files - // - MissingAsset: we can't migrate missing data - // - NotAPrefab: we can't migrate as prefab if the given asset isn't a prefab - MigratePrefab(assetPath, migrationObjects.ElementAt(i).Value); - } - } - else if (IsSceneAsset(migrationObjects.ElementAt(i).Key)) - { - MigrateScene(assetPath, migrationObjects.ElementAt(i).Value); - } - migrationObjects.ElementAt(i).Value.IsProcessed = true; - failures += migrationObjects.ElementAt(i).Value.Failures; - - Debug.Log(migrationObjects.ElementAt(i).Value.Log); - } - EditorUtility.ClearProgressBar(); - - if (!String.IsNullOrEmpty(previousScenePath) && previousScenePath != EditorSceneManager.GetActiveScene().path) - { - EditorSceneManager.OpenScene(Path.Combine(Directory.GetCurrentDirectory(), previousScenePath)); - } - - if (askForConfirmation) - { - string msg; - if (failures > 0) - { - msg = $"Migration completed with {failures} errors"; - } - else - { - msg = "Migration completed successfully!"; - } - EditorUtility.DisplayDialog("Migration Window", msg, "Close"); - } - - MigrationState = MigrationToolState.PostMigration; - return true; - } - - private void AddAllAssetsOfTypeForMigration(Type migrationType, Type[] assetTypes) - { - var assetPaths = FindAllAssetsOfType(assetTypes); - if (assetPaths != null) - { - for (int i = 0; i < assetPaths.Count; i++) - { - var progress = (float)i / assetPaths.Count; - if (EditorUtility.DisplayCancelableProgressBar("Migration Tool", $"Selecting all assets that support {migrationType.Name} migration.", progress)) - { - break; - } - TryAddObjectForMigration(migrationType, AssetDatabase.LoadMainAssetAtPath(assetPaths[i])); - } - EditorUtility.ClearProgressBar(); - } - } - - private bool SetMigrationHandlerInstance(Type type) - { - if (!typeof(IMigrationHandler).IsAssignableFrom(type)) - { - Debug.LogError($"{type.Name} is not a valid implementation of IMigrationHandler."); - return false; - } - - if (!migrationHandlerTypes.Contains(type)) - { - Debug.LogError($"{type.Name} might not be a valid implementation of IMigrationHandler."); - return false; - } - - try - { - migrationHandlerInstance = Activator.CreateInstance(type) as IMigrationHandler; - migrationHandlerInstanceType = type; - Debug.LogWarning($"Migration tool will use {type.Name} type for next migration."); - } - catch (Exception) - { - Debug.LogError("Selected MigrationHandler implementation could not be instantiated."); - return false; - } - return true; - } - - private void RefreshAvailableTypes() - { - var type = typeof(IMigrationHandler); - migrationHandlerTypes = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(x => x.GetLoadableTypes()) - .Where(x => type.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract).ToList(); - } - - private void MigrateScene(String path, MigrationStatus status) - { - if (!AssetDatabase.LoadAssetAtPath(path, typeof(SceneAsset))) - { - return; - } - Scene scene = EditorSceneManager.OpenScene(path); - - bool didAnySceneObjectChange = false; - foreach (var parent in scene.GetRootGameObjects()) - { - didAnySceneObjectChange |= MigrateGameObjectHierarchy(parent, status); - } - - if (didAnySceneObjectChange) - { - EditorSceneManager.SaveScene(scene); - } - } - - private void MigratePrefab(String path, MigrationStatus status) - { - if (!AssetDatabase.LoadAssetAtPath(path, typeof(GameObject))) - { - return; - } - var parent = UnityEditor.PrefabUtility.LoadPrefabContents(path); - - if (MigrateGameObjectHierarchy(parent, status)) - { - UnityEditor.PrefabUtility.SaveAsPrefabAsset(parent, path); - } - - PrefabUtility.UnloadPrefabContents(parent); - } - - private bool MigrateGameObjectHierarchy(GameObject parent, MigrationStatus status) - { - bool changedAnyGameObject = false; - foreach (var child in parent.GetComponentsInChildren(true)) - { - try - { - if (migrationHandlerInstance.CanMigrate(child.gameObject)) - { - changedAnyGameObject = true; - migrationHandlerInstance.Migrate(child.gameObject); - - status.AddToLog($"Successfully migrated {child.gameObject.name} object \n"); - } - } - catch (Exception e) - { - status.Failures++; - status.AddToLog($"{e.Message}: GameObject {child.gameObject.name} could not be migrated \n"); - } - } - - return changedAnyGameObject; - } - - private static List FindAllAssetsOfType(Type[] types) - { - var filter = string.Join(" ", types - .Select(x => string.Format("t:{0}", x.Name)) - .ToArray()); - return AssetDatabase.FindAssets(filter).Select(x => AssetDatabase.GUIDToAssetPath(x)).ToList(); - } - - private static bool IsSceneGameObject(Object selectedObject) - { - string objectPath = AssetDatabase.GetAssetPath(selectedObject); - return String.IsNullOrEmpty(objectPath) && selectedObject is GameObject; - } - - private static bool IsPrefabAsset(Object selectedObject) - { - string objectPath = AssetDatabase.GetAssetPath(selectedObject); - return !String.IsNullOrEmpty(objectPath) && selectedObject is GameObject; - } - - private static bool IsSceneAsset(Object selectedObject) - { - return selectedObject is SceneAsset; - } - - /// - /// Utility class to keep migration status of each object - /// - public class MigrationStatus - { - /// - /// Flag to indicate if object was already processed by migration - /// - public bool IsProcessed { get; set; } - - /// - /// Keep track of the amount of issues found during migration process of every children object in the migration object hierarchy - /// - public int Failures { get; set; } - - /// - /// Keep track of recorded messages logged during the migration process - /// - public String Log { get; private set; } - - public MigrationStatus() - { - IsProcessed = false; - Failures = 0; - Log = ""; - } - - /// - /// Add messages to status log - /// - public void AddToLog(String msg) - { - Log += msg; - } - } - - /// - /// Util method to draw a deprecated warning for a given component in the inspector as well - /// as a button to migrate / trigger the migration tool to upgrade to the new version via the - /// indicated migration handler. - /// - /// Deprecated component type. - /// Migration handler to call for migrating the component. - /// Component to migrate. - static public void DrawDeprecated(T target) - where T : MonoBehaviour - where THandler : IMigrationHandler - { - List requiringTypes; - - if (target.gameObject.IsComponentRequired(out requiringTypes)) - { - string requiringComponentNames = null; - - for (int i = 0; i < requiringTypes.Count; i++) - { - requiringComponentNames += "- " + requiringTypes[i].FullName; - if (i < requiringTypes.Count - 1) - { - requiringComponentNames += '\n'; - } - } - - EditorGUILayout.HelpBox($"This component is deprecated. Please migrate object to up to date version. Remove the RequiredComponentAttribute from:\n{requiringComponentNames}", MessageType.Error); - return; - } - - EditorGUILayout.HelpBox("This component is deprecated. Please migrate object to up to date version", MessageType.Warning); - if (GUILayout.Button("Migrate Object")) - { - Utilities.MigrationTool migrationTool = new Utilities.MigrationTool(); - - var component = target; - - migrationTool.TryAddObjectForMigration(typeof(THandler), (GameObject)component.gameObject); - migrationTool.MigrateSelection(typeof(THandler), true); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs.meta b/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs.meta deleted file mode 100644 index 7a3dcc55c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Editor/Migration/Tools/MigrationTool.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7ffc9aec64d01c24e87125309aa0b842 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental.meta b/AR-ROS/Assets/MRTK/SDK/Experimental.meta deleted file mode 100644 index acd592f3e..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 41c5f3a1fe092034c9493d53b476b44a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker.meta deleted file mode 100644 index 6512b7868..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2deeb1c5c4bb9f94b9b91454da36bd2a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs deleted file mode 100644 index 77c532fd2..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs +++ /dev/null @@ -1,345 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. - -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine; -using TMPro; -using Microsoft.MixedReality.Toolkit.UI; - -namespace Microsoft.MixedReality.Toolkit.Experimental.ColorPicker -{ - /// - /// Example script to demonstrate adding buttons, sliders and a touchable gradient to control material values at runtime. - /// - public class ColorPicker : MonoBehaviour, IMixedRealityTouchHandler - { - private MeshRenderer targetObjectMesh = null; - public MeshRenderer TargetObjectMesh - { - get => targetObjectMesh; - set => targetObjectMesh = value; - } - private SpriteRenderer targetObjectSprite = null; - public SpriteRenderer TargetObjectSprite - { - get => targetObjectSprite; - set => targetObjectSprite = value; - } - [Experimental] - [SerializeField] - [Tooltip("Any mesh within the ColorPicker UI that receives color changes")] - private MeshRenderer[] PickerUIMeshes = null; - [SerializeField] - [Tooltip("Any sprite within the ColorPicker UI that receives color changes")] - private SpriteRenderer[] PickerUISprites = null; - [SerializeField] - [Tooltip("The gradient mesh that receives touch input")] - private MeshRenderer GradientMesh = null; - [SerializeField] - [Tooltip("The gradient drag game object that gets constrained while dragging")] - private GameObject GradientDragger = null; - [SerializeField] - [Tooltip("A pinch slider used for the color red")] - private PinchSlider SliderRed = null; - [SerializeField] - [Tooltip("A pinch slider used for the color green")] - private PinchSlider SliderGreen = null; - [SerializeField] - [Tooltip("A pinch slider used for the color blue")] - private PinchSlider SliderBlue = null; - [SerializeField] - [Tooltip("A pinch slider used for the color alpha")] - private PinchSlider SliderAlpha = null; - [SerializeField] - [Tooltip("A pinch slider used for the color hue")] - private PinchSlider SliderHue = null; - [SerializeField] - [Tooltip("A pinch slider used for saturation")] - private PinchSlider SliderSaturation = null; - [SerializeField] - [Tooltip("A pinch slider used for brightness")] - private PinchSlider SliderBrightness = null; - // - [SerializeField] - [Tooltip("The text value of the color's red property")] - private TextMeshPro TextRed = null; - [SerializeField] - [Tooltip("The text value of the color's green property")] - private TextMeshPro TextGreen = null; - [SerializeField] - [Tooltip("The text value of the color's blue property")] - private TextMeshPro TextBlue = null; - [SerializeField] - [Tooltip("The text value of the color's alpha property")] - private TextMeshPro TextAlpha = null; - [SerializeField] - [Tooltip("The text value of the color's hex property")] - private TextMeshPro TextHex = null; - [SerializeField] - [Tooltip("The text value of the color's hue property")] - private TextMeshPro TextHue = null; - [SerializeField] - [Tooltip("The text value of the color's saturation property")] - private TextMeshPro TextSaturation = null; - [SerializeField] - [Tooltip("The text value of the color's brightness property")] - private TextMeshPro TextBrightness = null; - // - private float GradientDragMaxDistance = 0.5f; - private Vector3 GradientDragStartPosition; - private Vector3 GradientDragCurrentPosition; - // - private Color CustomColor; - private float Hue, Saturation, Brightness, Alpha = 0.3f; - // - private bool IsDraggingSliders = false; - private bool IsDraggingGradient = false; - // - private void Start() - { - GradientDragStartPosition = GradientDragger.transform.localPosition; - GradientDragCurrentPosition = GradientDragStartPosition; - this.gameObject.SetActive(false); - } - private void Update() - { - if (IsDraggingGradient) - { - ConstrainGradientDragging(); - } - if (IsDraggingSliders) - { - CalculateGradientDraggerPosition(); - } - } - #region Gradient Logic (Private) - void IMixedRealityTouchHandler.OnTouchUpdated(HandTrackingInputEventData eventData) - { - GradientDragger.transform.position = new Vector3(eventData.InputData.x, eventData.InputData.y, eventData.InputData.z); - ConstrainGradientDragging(); - ApplyColor(); - UpdateSliderText(); - ApplySliderValues(); - } - void IMixedRealityTouchHandler.OnTouchStarted(HandTrackingInputEventData eventData) - { - } - void IMixedRealityTouchHandler.OnTouchCompleted(HandTrackingInputEventData eventData) - { - } - private void CalculateGradientDraggerPosition() - { - float xPosition = ((Saturation + GradientDragMaxDistance) * -1) + 1; - float yPosition = Brightness - GradientDragMaxDistance; - GradientDragCurrentPosition.x = Mathf.Clamp(xPosition, -GradientDragMaxDistance, GradientDragMaxDistance); - GradientDragCurrentPosition.y = Mathf.Clamp(yPosition, -GradientDragMaxDistance, GradientDragMaxDistance); - GradientDragger.transform.localPosition = GradientDragCurrentPosition; - } - private void ConstrainGradientDragging() - { - // Horizontal - if (GradientDragger.transform.localPosition.x >= GradientDragStartPosition.x + GradientDragMaxDistance) - { - GradientDragCurrentPosition.x = GradientDragStartPosition.x + GradientDragMaxDistance; - } - else if (GradientDragger.transform.localPosition.x <= GradientDragStartPosition.x - GradientDragMaxDistance) - { - GradientDragCurrentPosition.x = GradientDragStartPosition.x - GradientDragMaxDistance; - } - else - { - GradientDragCurrentPosition.x = GradientDragger.transform.localPosition.x; - } - // Vertical - if (GradientDragger.transform.localPosition.y >= GradientDragStartPosition.y + GradientDragMaxDistance) - { - GradientDragCurrentPosition.y = GradientDragStartPosition.y + GradientDragMaxDistance; - } - else if (GradientDragger.transform.localPosition.y <= GradientDragStartPosition.y - GradientDragMaxDistance) - { - GradientDragCurrentPosition.y = GradientDragStartPosition.y - GradientDragMaxDistance; - } - else - { - GradientDragCurrentPosition.y = GradientDragger.transform.localPosition.y; - } - GradientDragger.transform.localPosition = GradientDragCurrentPosition; - Saturation = Mathf.Abs(GradientDragCurrentPosition.x + (GradientDragMaxDistance * -1)); - Brightness = GradientDragCurrentPosition.y + GradientDragMaxDistance; - CustomColor = Color.HSVToRGB(Hue, Saturation, Brightness); - CustomColor.a = Alpha; - // - UpdateSliderText(); - ApplyColor(); - } - #endregion - - #region Gradient Logic (Public) - /// - /// Touching the gradient texture will calculate the color and constrain the dragger based on the point in eventData - /// - public void ClickGradientTexture(MixedRealityPointerEventData eventData) - { - GradientDragger.transform.position = eventData.Pointer.Result.Details.Point; - ConstrainGradientDragging(); - ApplyColor(); - UpdateSliderText(); - ApplySliderValues(); - } - /// - /// Tells the update loop that the gradient is being dragged - /// - public void StartDragGradient() - { - IsDraggingGradient = true; - } - /// - /// Tells the update loop that the gradient is not being dragged, and applies the updated color value to the sliders - /// - public void StopDragGradient() - { - IsDraggingGradient = false; - ApplySliderValues(); - } - - #endregion - - #region Public Functions - /// - /// This will set the visibility, scale, and position of the color picker while extracting the color of the touched object's MeshRenderer or SpriteRender - /// - public void SummonColorPicker(GameObject container) - { - this.gameObject.SetActive(true); - transform.localScale = Vector3.one; - transform.position = GameObject.Find(container.name + "/Anchor").transform.position; - TargetObjectMesh = GameObject.Find(container.name + "/TargetObject (Mesh)").GetComponent(); - TargetObjectSprite = GameObject.Find(container.name + "/TargetObject (Sprite)").GetComponent(); - ExtractColorFromMaterial(TargetObjectMesh); - } - /// - /// Applies Hue, Saturation, Brightness slider values to the Red, Green, Blue sliders - /// - public void UpdateColorHSV() - { - if (IsDraggingSliders == true) - { - Hue = SliderHue.SliderValue; - Saturation = SliderSaturation.SliderValue; - Brightness = SliderBrightness.SliderValue; - CustomColor = Color.HSVToRGB(Hue, Saturation, Brightness); - CustomColor.a = Alpha; - // - UpdateSliderText(); - ApplyColor(); - } - } - /// - /// Applies Red, Green, Blue slider values to the Hue, Saturation, Brightness sliders - /// - public void UpdateColorRGB() { - if (IsDraggingSliders == true) - { - CustomColor.r = SliderRed.SliderValue; - CustomColor.g = SliderGreen.SliderValue; - CustomColor.b = SliderBlue.SliderValue; - Alpha = SliderAlpha.SliderValue; - CustomColor.a = Alpha; - Color.RGBToHSV(CustomColor, out Hue, out Saturation, out Brightness); - // - UpdateSliderText(); - ApplyColor(); - } - } - /// - /// Extracts a color from a MeshRenderer and applies it to the color picker - /// - public void ExtractColorFromMaterial(MeshRenderer meshRenderer) - { - CustomColor = meshRenderer.material.color; - Color.RGBToHSV(CustomColor, out Hue, out Saturation, out Brightness); - CustomColor.a = Alpha; - // - CalculateGradientDraggerPosition(); - UpdateSliderText(); - ApplyColor(); - ApplySliderValues(); - } - /// - /// Tells the update loop that a slider knob is being dragged - /// - public void StartDrag(GameObject dragger) - { - dragger.SetActive(true); - IsDraggingSliders = true; - } - /// - /// Tells the update loop that a slider knob is not being dragged and applies the value to all sliders - /// - public void StopDrag(GameObject dragger) - { - dragger.SetActive(false); - IsDraggingSliders = false; - ApplySliderValues(); - } - #endregion - - #region UI Logic - private void UpdateSliderText() - { - TextRed.text = Mathf.Clamp(Mathf.RoundToInt(CustomColor.r * 255),0,255).ToString(); - TextBlue.text = Mathf.Clamp(Mathf.RoundToInt(CustomColor.b * 255), 0, 255).ToString(); - TextGreen.text = Mathf.Clamp(Mathf.RoundToInt(CustomColor.g * 255), 0, 255).ToString(); - TextAlpha.text = Mathf.Clamp(Mathf.RoundToInt(CustomColor.a * 100), 0, 100) + "%"; - // - TextHex.text = "#" + ColorUtility.ToHtmlStringRGBA(CustomColor); - TextHue.text = Mathf.Clamp(Mathf.RoundToInt(Hue * 360), 0, 360).ToString(); - TextSaturation.text = Mathf.Clamp(Mathf.RoundToInt(Saturation * 100), 0, 100) + "%"; - TextBrightness.text = Mathf.Clamp(Mathf.RoundToInt(Brightness * 100), 0, 100) + "%"; - } - private void ApplyColor() - { - if(GradientMesh != null && GradientMesh.material != null) - { - GradientMesh.material.color = Color.HSVToRGB(Hue, 1, 1); - } - if(TargetObjectMesh != null && TargetObjectMesh.material != null) - { - TargetObjectMesh.material.color = CustomColor; - } - if(TargetObjectSprite != null) - { - TargetObjectSprite.color = CustomColor; - } - foreach(MeshRenderer rend in PickerUIMeshes) - { - if(rend != null) - { - rend.material.color = CustomColor; - } - } - foreach(SpriteRenderer rend in PickerUISprites) - { - if(rend != null) - { - rend.color = CustomColor; - if (rend.name == "Dragger") - { - // dont fade the alpha of the dragger object - rend.color = new Color(CustomColor.r, CustomColor.g, CustomColor.b, 1); - } - } - } - } - private void ApplySliderValues() { - SliderRed.SliderValue = Mathf.Clamp(CustomColor.r,0,1); - SliderGreen.SliderValue = Mathf.Clamp(CustomColor.g, 0, 1); - SliderBlue.SliderValue = Mathf.Clamp(CustomColor.b, 0, 1); - SliderAlpha.SliderValue = Mathf.Clamp(CustomColor.a, 0, 1); - SliderHue.SliderValue = Mathf.Clamp(Hue, 0, 1); - SliderSaturation.SliderValue = Mathf.Clamp(Saturation, 0, 1); - SliderBrightness.SliderValue = Mathf.Clamp(Brightness, 0, 1); - } - #endregion - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs.meta deleted file mode 100644 index fb2c4dab0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/ColorPicker/ColorPicker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7374190529141ec4a8a026f1d0a537de -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock.meta deleted file mode 100644 index 0cd83677d..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 40df9cb1ac8780d4f9494f9e5df5a3b6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs deleted file mode 100644 index b0a31d5c8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.ObjectModel; -using UnityEngine; -using UnityEngine.Assertions; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// This control enables moving objects in and out of predetermined positions, - /// to create palettes, shelves and navigation bars. - /// - /// - /// - [AddComponentMenu("Scripts/MRTK/Experimental/Dock/Dock")] - public class Dock : MonoBehaviour - { - /// - /// A read-only list of possible positions in this dock. - /// - [Experimental] - [SerializeField] - [Tooltip("A read-only list of possible positions in this dock.")] - private ReadOnlyCollection dockPositions; - - /// - /// A read-only list of possible positions in this dock. - /// - public ReadOnlyCollection DockPositions => dockPositions; - - /// - /// Initializes the list of positions in this dock. - /// - private void OnEnable() - { - UpdatePositions(); - } - - /// - /// Updates the list of positions in this dock when its children change. - /// - private void OnTransformChildrenChanged() - { - UpdatePositions(); - } - - /// - /// Updates the list of positions in this dock. - /// - private void UpdatePositions() - { - dockPositions = gameObject.GetComponentsInChildren().ToReadOnlyCollection(); - } - - /// - /// Moves elements near the desired position to make space for a new element, - /// if possible. - /// - /// The desired position where an object wants to be docked. - /// Returns true if the desired position is now available, false otherwise. - public bool TryMoveToFreeSpace(DockPosition position) - { - if (dockPositions == null) - { - UpdatePositions(); - } - - if (!dockPositions.Contains(position)) - { - Debug.LogError("Looking for a DockPosition in the wrong Dock."); - return false; - } - - var index = dockPositions.IndexOf(position); - - if (!dockPositions[index].IsOccupied) - { - // Already free - return true; - } - - // Where is the closest free space? (on a tie, favor left) - int? closestFreeSpace = null; - int distanceToClosestFreeSpace = int.MaxValue; - for (int i = 0; i < dockPositions.Count; i++) - { - var distance = Math.Abs(index - i); - if (!dockPositions[i].IsOccupied && distance < distanceToClosestFreeSpace) - { - closestFreeSpace = i; - distanceToClosestFreeSpace = distance; - } - } - - if (closestFreeSpace == null) - { - // No free space - return false; - } - - if (closestFreeSpace < index) - { - // Move left - - // Check if we can undock all of them - for (int i = closestFreeSpace.Value + 1; i <= index; i++) - { - if (!dockPositions[i].DockedObject.CanUndock) - { - return false; - } - } - - for (int i = closestFreeSpace.Value + 1; i <= index; i++) - { - MoveDockedObject(i, i - 1); - } - } - else - { - // Move right - - // Check if we can undock all of them - for (int i = closestFreeSpace.Value - 1; i >= index; i--) - { - if (!dockPositions[i].DockedObject.CanUndock) - { - return false; - } - } - - for (int i = closestFreeSpace.Value - 1; i >= index; i--) - { - MoveDockedObject(i, i + 1); - } - } - - return true; - } - - /// - /// Moves a docked object from a position to another, by undocking it - /// and docking it in the new position. - /// - /// The position we're moving the object from. - /// The position we're moving the object to. - private void MoveDockedObject(int from, int to) - { - var objectToMove = dockPositions[from].DockedObject; - objectToMove.Undock(); - objectToMove.Dock(dockPositions[to]); - Assert.AreEqual(dockPositions[to].DockedObject, objectToMove, "The object we just moved needs to match the object docked in the new position."); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs.meta deleted file mode 100644 index 5ef7e6007..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dock.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f25f87a8e30a4b549951cbbc094f1102 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs deleted file mode 100644 index cab2638e0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// Represents a position where a object can be docked. - /// This component also adds a Collider and a Rigidbody, if they're not already present. - /// - /// - /// - [AddComponentMenu("Scripts/MRTK/Experimental/Dock/DockPosition")] - [RequireComponent(typeof(Collider), typeof(Rigidbody))] - public class DockPosition : MonoBehaviour - { - /// - /// The object that is currently docked in this position (can be null). - /// - [Experimental] - [SerializeField] - [Tooltip("The object that is currently docked in this position (can be null).")] - private Dockable dockedObject = null; - - /// - /// The object that is currently docked in this position (can be null). - /// - public Dockable DockedObject - { - get => dockedObject; - set => dockedObject = value; - } - - /// - /// True if this position is occupied, false otherwise. - /// - public bool IsOccupied => dockedObject != null; - - /// - /// Ensure this object has a triggering collider, and ensure that - /// this object doesn't block manipulations. - /// - public void Awake() - { - // Don't raycast this object to prevent blocking collisions - gameObject.layer = LayerMask.NameToLayer("Ignore Raycast"); - - // Ensure there's a trigger collider for this position - // The shape can be customized, but this adds a box as default. - var collider = gameObject.GetComponent(); - if (collider == null) - { - collider = gameObject.AddComponent(); - } - - collider.isTrigger = true; - - // Ensure this collider can be used as a trigger by having - // a RigidBody attached to it. - var rigidBody = gameObject.EnsureComponent(); - rigidBody.isKinematic = true; - } - - /// - /// If an object was set to be docked to this at start up, ensure it's docked. - /// - public void Start() - { - if (dockedObject != null) - { - dockedObject.Dock(this); - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs.meta deleted file mode 100644 index 46b2411aa..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockPosition.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f959b8072b875ce45bc1cfe3eb1eb83c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs deleted file mode 100644 index d849b6250..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs +++ /dev/null @@ -1,311 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.UI; -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Assertions; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// Add a Dockable component to any object that has a and an - /// or to make it dockable in Docks. That allows this object to be used - /// as part of a palette, shelf or navigation bar together with other objects. - /// - /// - /// - [AddComponentMenu("Scripts/MRTK/Experimental/Dock/Dockable")] - public class Dockable : MonoBehaviour - { - [Experimental] - [SerializeField, ReadOnly] - [Tooltip("Current state of this dockable in regards to a dock.")] - private DockingState dockingState = DockingState.Undocked; - - [SerializeField] - [Tooltip("Time to animate any move/scale into or out of the dock.")] - private float moveLerpTime = 0.1f; - - [SerializeField] - [Tooltip("Time to animate an element when it's following the dock (use 0 for tight attachment)")] - private float moveLerpTimeWhenDocked = 0.05f; - - /// - /// True if this object can currently be docked, false otherwise. - /// - public bool CanDock => dockingState == DockingState.Undocked || dockingState == DockingState.Undocking; - - /// - /// True if this object can currently be undocked, false otherwise. - /// - public bool CanUndock => dockingState == DockingState.Docked; - - // Constants - private static readonly float distanceTolerance = 0.01f; // in meters - private static readonly float angleTolerance = 3.0f; // in degrees - private static readonly float scaleTolerance = 0.01f; // in percentage - - private DockPosition dockedPosition = null; - private Vector3 dockedPositionScale = Vector3.one; - - private HashSet overlappingPositions = new HashSet(); - private Vector3 originalScale = Vector3.one; - private bool isDragging = false; - private ObjectManipulator objectManipulator; - private ManipulationHandler manipulationHandler; - - /// - /// Subscribes to manipulation events. - /// - private void OnEnable() - { - objectManipulator = gameObject.GetComponent(); - if (objectManipulator != null) - { - objectManipulator.OnManipulationStarted.AddListener(OnManipulationStarted); - objectManipulator.OnManipulationEnded.AddListener(OnManipulationEnded); - } - else - { - manipulationHandler = gameObject.GetComponent(); - if (manipulationHandler != null) - { - manipulationHandler.OnManipulationStarted.AddListener(OnManipulationStarted); - manipulationHandler.OnManipulationEnded.AddListener(OnManipulationEnded); - } - } - - Assert.IsTrue(objectManipulator != null || manipulationHandler != null, - "A Dockable object must have either an ObjectManipulator or a ManipulationHandler component."); - - Assert.IsNotNull(gameObject.GetComponent(), "A Dockable object must have a Collider component."); - } - - /// - /// Unsubscribes from manipulation events. - /// - private void OnDisable() - { - if (objectManipulator != null) - { - objectManipulator.OnManipulationStarted.RemoveListener(OnManipulationStarted); - objectManipulator.OnManipulationEnded.RemoveListener(OnManipulationEnded); - - objectManipulator = null; - } - - if (manipulationHandler != null) - { - manipulationHandler.OnManipulationStarted.RemoveListener(OnManipulationStarted); - manipulationHandler.OnManipulationEnded.RemoveListener(OnManipulationEnded); - - manipulationHandler = null; - } - - if (dockedPosition != null) - { - dockedPosition.DockedObject = null; - dockedPosition = null; - } - - overlappingPositions.Clear(); - dockingState = DockingState.Undocked; - } - - /// - /// Updates the transform and state of this object every frame, depending on - /// manipulations and docking state. - /// - public void Update() - { - if (isDragging && overlappingPositions.Count > 0) - { - var closestPosition = GetClosestPosition(); - if (closestPosition.IsOccupied) - { - closestPosition.GetComponentInParent().TryMoveToFreeSpace(closestPosition); - } - } - - if (dockingState == DockingState.Docked || dockingState == DockingState.Docking) - { - Assert.IsNotNull(dockedPosition, "When a dockable is docked, its dockedPosition must be valid."); - Assert.AreEqual(dockedPosition.DockedObject, this, "When a dockable is docked, its dockedPosition reference the dockable."); - - var lerpTime = dockingState == DockingState.Docked ? moveLerpTimeWhenDocked : moveLerpTime; - - if (!isDragging) - { - // Don't override dragging - transform.position = Solver.SmoothTo(transform.position, dockedPosition.transform.position, Time.deltaTime, lerpTime); - transform.rotation = Solver.SmoothTo(transform.rotation, dockedPosition.transform.rotation, Time.deltaTime, lerpTime); - } - - transform.localScale = Solver.SmoothTo(transform.localScale, dockedPositionScale, Time.deltaTime, lerpTime); - - if (VectorExtensions.CloseEnough(dockedPosition.transform.position, transform.position, distanceTolerance) && - QuaternionExtensions.AlignedEnough(dockedPosition.transform.rotation, transform.rotation, angleTolerance) && - AboutTheSameSize(dockedPositionScale.x, transform.localScale.x)) - { - // Finished docking - dockingState = DockingState.Docked; - - // Snap to position - transform.position = dockedPosition.transform.position; - transform.rotation = dockedPosition.transform.rotation; - transform.localScale = dockedPositionScale; - } - } - else if (dockedPosition == null && dockingState == DockingState.Undocking) - { - transform.localScale = Solver.SmoothTo(transform.localScale, originalScale, Time.deltaTime, moveLerpTime); - - if (AboutTheSameSize(originalScale.x, transform.localScale.x)) - { - // Finished undocking - dockingState = DockingState.Undocked; - - // Snap to size - transform.localScale = originalScale; - } - } - } - - /// - /// Docks this object in a given . - /// - /// The where we'd like to dock this object. - public void Dock(DockPosition position) - { - if (!CanDock) - { - Debug.LogError($"Trying to dock an object that was not undocked. State = {dockingState}"); - return; - } - - Debug.Log($"Docking object {gameObject.name} on position {position.gameObject.name}"); - - dockedPosition = position; - dockedPosition.DockedObject = this; - float scaleToFit = gameObject.GetComponent().bounds.GetScaleToFitInside(dockedPosition.GetComponent().bounds); - dockedPositionScale = transform.localScale * scaleToFit; - - if (dockingState == DockingState.Undocked) - { - // Only register the original scale when first docking - originalScale = transform.localScale; - } - - dockingState = DockingState.Docking; - } - - /// - /// Undocks this from the current where it is docked. - /// - public void Undock() - { - if (!CanUndock) - { - Debug.LogError($"Trying to undock an object that was not docked. State = {dockingState}"); - return; - } - - Debug.Log($"Undocking object {gameObject.name} from position {dockedPosition.gameObject.name}"); - - dockedPosition.DockedObject = null; - dockedPosition = null; - dockedPositionScale = Vector3.one; - dockingState = DockingState.Undocking; - } - - #region Collision events - - void OnTriggerEnter(Collider collider) - { - var dockPosition = collider.gameObject.GetComponent(); - if (dockPosition != null) - { - overlappingPositions.Add(dockPosition); - Debug.Log($"{gameObject.name} collided with {dockPosition.name}"); - } - } - - void OnTriggerExit(Collider collider) - { - var dockPosition = collider.gameObject.GetComponent(); - if (overlappingPositions.Contains(dockPosition)) - { - overlappingPositions.Remove(dockPosition); - } - } - - #endregion - - #region Manipulation events - - private void OnManipulationStarted(ManipulationEventData e) - { - isDragging = true; - - if (CanUndock) - { - Undock(); - } - } - - private void OnManipulationEnded(ManipulationEventData e) - { - isDragging = false; - - if (overlappingPositions.Count > 0 && CanDock) - { - var closestPosition = GetClosestPosition(); - if (closestPosition.IsOccupied) - { - if (!closestPosition.GetComponentInParent().TryMoveToFreeSpace(closestPosition)) - { - return; - } - } - - Dock(closestPosition); - } - } - - #endregion - - /// - /// Gets the overlapping that is closest to this Dockable. - /// - /// The overlapping that is closest to this , or null if no positions overlap. - private DockPosition GetClosestPosition() - { - var bounds = gameObject.GetComponent().bounds; - var minDistance = float.MaxValue; - DockPosition closestPosition = null; - foreach (var position in overlappingPositions) - { - var distance = (position.gameObject.GetComponent().bounds.center - bounds.center).sqrMagnitude; - if (closestPosition == null || distance < minDistance) - { - closestPosition = position; - minDistance = distance; - } - } - - return closestPosition; - } - - #region Helpers - - private static bool AboutTheSameSize(float scale1, float scale2) - { - Assert.AreNotEqual(0.0f, scale2, "Cannot compare scales with an object that has scale zero."); - return Mathf.Abs(scale1 / scale2 - 1.0f) < scaleTolerance; - } - - #endregion - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs.meta deleted file mode 100644 index 5ccf43645..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/Dockable.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 05db52b9e31d12440aaa22176f0855a6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs deleted file mode 100644 index b2f538917..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// The possible states of a object. - /// - public enum DockingState - { - Undocked = 0, - Docking, - Docked, - Undocking - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs.meta deleted file mode 100644 index cecce0394..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Dock/DockingState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f3c67e4da74901146b9429f0483653b4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor.meta deleted file mode 100644 index 820074a42..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8a42df1a2b985c34a9947e524bcf8cf3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs deleted file mode 100644 index 81b325053..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. -[assembly: System.Reflection.AssemblyVersion("2.5.0.0")] -[assembly: System.Reflection.AssemblyFileVersion("2.5.0.0")] - -[assembly: System.Reflection.AssemblyProduct("Microsoft® Mixed Reality Toolkit aipmragent_work")] -[assembly: System.Reflection.AssemblyCopyright("Copyright © Microsoft Corporation")] diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs.meta deleted file mode 100644 index c87086c2e..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/AssemblyInfo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 278dc414f7830f148aa1ea5be2a06ffc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors.meta deleted file mode 100644 index 70ab63280..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fdfb3f4bcb931e040b56e6c55d22ad08 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard.meta deleted file mode 100644 index 547e108ea..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c7b093995a3226e478088a5374403254 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs deleted file mode 100644 index f376bb64b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Experimental.UI; -using TMPro.EditorUtilities; -using UnityEditor; - -namespace Microsoft.MixedReality.Toolkit.Experimental.Inspectors -{ - [CustomEditor(typeof(SliderInputField))] - public class SliderInputFieldInspector : TMP_InputFieldEditor - { - private const string defaultText = "This is an experimental feature.\n" + - "Parts of the MRTK appear to have a lot of value even if the details " + - "haven’t fully been fleshed out. For these types of features, we want " + - "the community to see them and get value out of them early. Because " + - "they are early in the cycle, we label them as experimental to indicate " + - "that they are still evolving, and subject to change over time."; - - public override void OnInspectorGUI() - { - EditorGUILayout.HelpBox(defaultText, MessageType.Info); - - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs.meta deleted file mode 100644 index 0068aa6aa..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/Inspectors/NonNativeKeyboard/SliderInputFieldInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0d6769ccb66ebcd47b12ca2b50357168 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef deleted file mode 100644 index bca3b5ec0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Microsoft.MixedReality.Toolkit.SDK.Experimental.Editor", - "references": [ - "Microsoft.MixedReality.Toolkit", - "Microsoft.MixedReality.Toolkit.Editor.Inspectors", - "Microsoft.MixedReality.Toolkit.SDK", - "Microsoft.MixedReality.Toolkit.Services.InputSystem", - "Unity.TextMeshPro.Editor" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef.meta deleted file mode 100644 index a5f30d63b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Editor/MRTK.SDK.Experimental.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c7204099f7254f64b966d9b4f3a74ccc -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic.meta deleted file mode 100644 index 824dbd701..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 27b53bc218886b74b83fc0c485253c28 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts.meta deleted file mode 100644 index c06ff46a9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f9ad7db5841db3e44a58fbb85fb2f1b1 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs deleted file mode 100644 index 862c5f9a1..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.Physics -{ - /// - /// Scriptable object that wraps the struct, allowing for easily reusable spring configs. - /// - [CreateAssetMenu(fileName = "ElasticConfiguration", menuName = "Mixed Reality Toolkit/Experimental/Elastic/Elastic Configuration")] - public class ElasticConfiguration : ScriptableObject - { - [SerializeField] - [Tooltip("Physical properties of the elastic simulation system.")] - protected ElasticProperties elasticProperties = new ElasticProperties - { - // Reasonable default values that should work sufficiently for - // many simple use cases. - Mass = 0.02f, - HandK = 3.0f, - EndK = 4.0f, - SnapK = 2.0f, - Drag = 0.1f - }; - - // - // Physical properties of the elastic simulation system. - // - public ElasticProperties ElasticProperties - { - get => elasticProperties; - set => elasticProperties = value; - } - } -} - diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs.meta deleted file mode 100644 index a7290af86..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticConfiguration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 49aaacf4bd2777f4191614d7aa035cf1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs deleted file mode 100644 index 602623798..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.Physics -{ - /// - /// Properties of a linear, one-dimensional extent - /// in which a damped harmonic oscillator is free to move. - /// - [Serializable] - public struct LinearElasticExtent - { - /// - /// Represents the lower bound of the extent. - /// - [SerializeField] - public float MinStretch; - - /// - /// Represents the upper bound of the extent. - /// - [SerializeField] - public float MaxStretch; - - /// - /// Whether the system, when approaching the upper bound, - /// will treat the end limits like snap points and magnetize to them. - /// - [SerializeField] - public bool SnapToEnds; - - /// - /// Points inside the extent to which the system will snap. - /// - [SerializeField] - public float[] SnapPoints; - - /// - /// Distance at which snap points begin forcing the spring. - /// - [SerializeField] - public float SnapRadius; - } - - /// - /// Properties of a three-dimensional extent - /// in which a damped harmonic oscillator is free to move. - /// - [Serializable] - public struct VolumeElasticExtent - { - /// - /// Represents the lower bound of the extent. - /// - [SerializeField] - public Bounds StretchBounds; - - /// - /// Whether the bounds should be respected by the system. - /// - [SerializeField] - public bool UseBounds; - - /// - /// Points inside the extent to which the system will snap. - /// - [SerializeField] - public Vector3[] SnapPoints; - - /// - /// Should the SnapPoints be "tiled" to infinity? If so, - /// the existing snap points will serve as "modulo" values, - /// where the actual snap points that are used are simply - /// the closest integer multiples of every SnapPoint. - /// - public bool RepeatSnapPoints; - - /// - /// Distance at which snap points begin forcing the spring. - /// - [SerializeField] - public float SnapRadius; - } - - /// - /// Properties of a four-dimensional extent - /// in which a damped harmonic oscillator is free to rotate. - /// - [Serializable] - public struct QuaternionElasticExtent - { - /// - /// Euler angles to which the system will snap. - /// - [SerializeField] - public Vector3[] SnapPoints; - - /// - /// Should the SnapPoints be "tiled" across the sphere? If so, - /// the existing snap points will serve as "modulo" values, - /// where the actual snap points that are used are simply - /// the closest integer multiples of every SnapPoint. - /// - public bool RepeatSnapPoints; - - /// - /// Arc-angle at which snap points begin forcing the spring, - /// in euler degrees. - /// - [SerializeField] - public float SnapRadius; - } - - /// - /// Properties of the damped harmonic oscillator differential system. - /// - [Serializable] - public struct ElasticProperties - { - /// - /// Mass of the simulated oscillator element - /// - [SerializeField] - public float Mass; - - /// - /// Hand spring constant - /// - [SerializeField] - public float HandK; - - /// - /// End cap spring constant - /// - [SerializeField] - public float EndK; - - /// - /// Snap point spring constant - /// - [SerializeField] - public float SnapK; - - /// - /// Drag/damper factor, proportional to velocity. - /// - [SerializeField] - public float Drag; - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs.meta deleted file mode 100644 index c06c339d9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticTypes.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 957d140a674979748a6434b35f5c2922 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs deleted file mode 100644 index 3806412d2..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.Physics -{ - /// - /// ElasticsManager can be used to add elastics simulation to supporting components. - /// Call Initialize on manipulation start. - /// Call ApplyHostTransform to apply elastics calculation to target transform. - /// Elastics will continue simulating once manipulation ends through it's update function - - /// to block the elastics auto update set EnableElasticsUpdate to false. - /// - [HelpURL("https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Elastics/ElasticSystem.html")] - [AddComponentMenu("Scripts/MRTK/SDK/Experimental/Elastics Manager")] - public class ElasticsManager : MonoBehaviour - { - [SerializeField] - [Tooltip("Reference to the ScriptableObject which holds the elastic system configuration for translation manipulation.")] - private ElasticConfiguration translationElasticConfigurationObject = null; - - /// - /// Reference to the ScriptableObject which holds the elastic system configuration for translation manipulation. - /// - public ElasticConfiguration TranslationElasticConfigurationObject - { - get => translationElasticConfigurationObject; - set => translationElasticConfigurationObject = value; - } - - [SerializeField] - [Tooltip("Reference to the ScriptableObject which holds the elastic system configuration for rotation manipulation.")] - private ElasticConfiguration rotationElasticConfigurationObject = null; - - /// - /// Reference to the ScriptableObject which holds the elastic system configuration for rotation manipulation. - /// - public ElasticConfiguration RotationElasticConfigurationObject - { - get => rotationElasticConfigurationObject; - set => rotationElasticConfigurationObject = value; - } - - [SerializeField] - [Tooltip("Reference to the ScriptableObject which holds the elastic system configuration for scale manipulation.")] - private ElasticConfiguration scaleElasticConfigurationObject = null; - - /// - /// Reference to the ScriptableObject which holds the elastic system configuration for scale manipulation. - /// - public ElasticConfiguration ScaleElasticConfigurationObject - { - get => scaleElasticConfigurationObject; - set => scaleElasticConfigurationObject = value; - } - - [SerializeField] - [Tooltip("Extent of the translation elastic.")] - private VolumeElasticExtent translationElasticExtent; - - /// - /// Extent of the translation elastic. - /// - public VolumeElasticExtent TranslationElasticExtent - { - get => translationElasticExtent; - set => translationElasticExtent = value; - } - - [SerializeField] - [Tooltip("Extent of the rotation elastic.")] - private QuaternionElasticExtent rotationElasticExtent; - - /// - /// Extent of the rotation elastic. - /// - public QuaternionElasticExtent RotationElasticExtent - { - get => rotationElasticExtent; - set => rotationElasticExtent = value; - } - - [SerializeField] - [Tooltip("Extent of the scale elastic.")] - private VolumeElasticExtent scaleElasticExtent; - - /// - /// Extent of the scale elastic. - /// - public VolumeElasticExtent ScaleElasticExtent - { - get => scaleElasticExtent; - set => scaleElasticExtent = value; - } - - [SerializeField] - [Tooltip("Indication of which manipulation types use elastic feedback.")] - private TransformFlags elasticTypes = 0; // Default to none enabled. - - /// - /// Indication of which manipulation types use elastic feedback. - /// - public TransformFlags ElasticTypes - { - get => elasticTypes; - set => elasticTypes = value; - } - - /// - /// Enables elastics simulation in the update method. - /// - public bool EnableElasticsUpdate - { - get; - set; - } - - #region private properties - - // Magnitude of the velocity at which the elastic systems will - // cease being simulated (if enabled) and the object will stop updating/moving. - private const float elasticVelocityThreshold = 0.001f; - - private IElasticSystem translationElastic; - private IElasticSystem rotationElastic; - private IElasticSystem scaleElastic; - - private Transform hostTransform = null; - private TransformFlags elasticTypesSimulating = 0; - #endregion - - /// - /// Applies elastics calculation to the passed targetTransform and applies to the host transform. - /// - /// Precalculated target transform that's influenced by elastics - /// Indicates which types of transforms are going to be applied. Default is Move, Rotate and Scale. - /// Modified transform types. - public TransformFlags ApplyTargetTransform(MixedRealityTransform targetTransform, TransformFlags transformsToApply = TransformFlags.Move|TransformFlags.Rotate|TransformFlags.Scale) - { - Debug.Assert(hostTransform != null, "Can't apply target before calling Initialize with a valid transform reference."); - if (hostTransform != null) - { - TransformFlags enabledTransformTypes = transformsToApply & elasticTypes; - if (enabledTransformTypes.HasFlag(TransformFlags.Move)) - { - hostTransform.position = translationElastic.ComputeIteration(targetTransform.Position, Time.deltaTime); - } - - if (enabledTransformTypes.HasFlag(TransformFlags.Rotate)) - { - hostTransform.rotation = rotationElastic.ComputeIteration(targetTransform.Rotation, Time.deltaTime); - } - - if (enabledTransformTypes.HasFlag(TransformFlags.Scale)) - { - hostTransform.localScale = scaleElastic.ComputeIteration(targetTransform.Scale, Time.deltaTime); - } - - elasticTypesSimulating = enabledTransformTypes; - return elasticTypes; - } - else - { - return 0; - } - } - - /// - /// Initialize elastics system with the given host transform. - /// Caches a reference to the host transform to be able to keep updating elastics after manipulation. - /// - /// host transform the elastics are applied to. - public void InitializeElastics(Transform elasticsTransform) - { - hostTransform = elasticsTransform; - if (elasticTypes.HasFlag(TransformFlags.Move)) - { - translationElastic = new VolumeElasticSystem(hostTransform.position, - translationElastic?.GetCurrentVelocity() ?? Vector3.zero, - translationElasticExtent, - translationElasticConfigurationObject.ElasticProperties); - } - if (elasticTypes.HasFlag(TransformFlags.Rotate)) - { - rotationElastic = new QuaternionElasticSystem(hostTransform.rotation, - rotationElastic?.GetCurrentVelocity() ?? Quaternion.identity, - rotationElasticExtent, - rotationElasticConfigurationObject.ElasticProperties); - } - if (elasticTypes.HasFlag(TransformFlags.Scale)) - { - scaleElastic = new VolumeElasticSystem(hostTransform.localScale, - scaleElastic?.GetCurrentVelocity() ?? Vector3.zero, - scaleElasticExtent, - scaleElasticConfigurationObject.ElasticProperties); - } - } - - #region MonoBehaviour Functions - private void Update() - { - // If the user is not actively interacting with the object, - // we let the elastic systems continue simulating, to allow - // the object to naturally come to rest. - if (EnableElasticsUpdate && hostTransform != null && elasticTypesSimulating != 0) - { - TransformFlags currentlySimulatedStates = 0; - float squaredVelocityThreshold = elasticVelocityThreshold * elasticVelocityThreshold; - if (ShouldUpdateElastics(TransformFlags.Move, translationElastic) && translationElastic.GetCurrentVelocity().sqrMagnitude > squaredVelocityThreshold) - { - hostTransform.position = translationElastic.ComputeIteration(hostTransform.position, Time.deltaTime); - currentlySimulatedStates |= TransformFlags.Move; - } - if (ShouldUpdateElastics(TransformFlags.Rotate, rotationElastic) && rotationElastic.GetCurrentVelocity().eulerAngles.sqrMagnitude > squaredVelocityThreshold) - { - hostTransform.rotation = rotationElastic.ComputeIteration(hostTransform.rotation, Time.deltaTime); - currentlySimulatedStates |= TransformFlags.Rotate; - } - if (ShouldUpdateElastics(TransformFlags.Scale, scaleElastic) && scaleElastic.GetCurrentVelocity().sqrMagnitude > squaredVelocityThreshold) - { - hostTransform.localScale = scaleElastic.ComputeIteration(hostTransform.localScale, Time.deltaTime); - currentlySimulatedStates |= TransformFlags.Scale; - } - elasticTypesSimulating = currentlySimulatedStates; - } - } - - private bool ShouldUpdateElastics(TransformFlags elasticType, IElasticSystem elasticSystem) - { - return (elasticTypes.HasFlag(elasticType) && - elasticTypesSimulating.HasFlag(elasticType) && - elasticSystem != null); - } - - #endregion MonoBehaviour Functions - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs.meta deleted file mode 100644 index d98c3d233..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/ElasticsManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 49eebbfcc03829f4ebed61c2617da0fc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs deleted file mode 100644 index e8861b706..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.PlayModeTests")] -namespace Microsoft.MixedReality.Toolkit.Experimental.Physics -{ - /// - /// Represents a damped harmonic oscillator over an - /// N-dimensional vector space, specified by generic type T. - /// - /// This extensibility allows not just for 1, 2, and 3-D springs, but - /// allows for 4-dimensional quaternion springs. - /// - public interface IElasticSystem - { - /// - /// Update the internal state of the damped harmonic oscillator, - /// given the forcing/desired value, returning the new value. - /// - /// Forcing function, for example, a desired manipulation position. - /// See https://en.wikipedia.org/wiki/Forcing_function_(differential_equations). It is a non-time-dependent - /// input function to a differential equation; in our situation, it is the "input position" to the spring. - /// Amount of time that has passed since the last update. - /// The new value of the system. - T ComputeIteration(T forcingValue, float deltaTime); - - /// - /// Query the elastic system for the current instantaneous value - /// - /// Current value of the elastic system - T GetCurrentValue(); - - /// - /// Query the elastic system for the current instantaneous velocity - /// - /// Current value of the elastic system - T GetCurrentVelocity(); - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs.meta deleted file mode 100644 index 6c786c5e8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/IElasticSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 564c57fdc6edca448a494412ec48cbe8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs deleted file mode 100644 index c0c534634..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using UnityEngine; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.PlayModeTests")] -namespace Microsoft.MixedReality.Toolkit.Experimental.Physics -{ - public class LinearElasticSystem : IElasticSystem - { - // Internal system state. - private float currentValue; - private float currentVelocity; - - // Configuration of extent and spring properties. - private LinearElasticExtent extent; - private ElasticProperties elasticProperties; - - /// - /// Default constructor; initializes the elastic system with the specified - /// initial value, velocity, extent, and elastic properties. - /// - public LinearElasticSystem(float initialValue, float initialVelocity, - LinearElasticExtent extentInfo, - ElasticProperties elasticProperties) - { - currentValue = initialValue; - currentVelocity = initialVelocity; - this.extent = extentInfo; - this.elasticProperties = elasticProperties; - } - - /// - public float ComputeIteration(float forcingValue, float deltaTime) - { - // F = -kx - (drag * v) - float force = (forcingValue - currentValue) * elasticProperties.HandK - elasticProperties.Drag * currentVelocity; - - // Distance that the current stretch value is from the end limit. - float distFromEnd = extent.MaxStretch - currentValue; - - // Add force to the "left" if we are beyond the max stretch. - // (or, if enabled, add snapping force if we are near the endpoint) - force -= ComputeEndForce(currentValue - extent.MaxStretch); - - // Add force to the "right" if we are beyond the max stretch. - // (or, if enabled, add snapping force if we are near the endpoint) - force += ComputeEndForce(extent.MinStretch - currentValue); - - // Iterate over each snapping point, and apply forces as necessary. - foreach (float snappingPoint in extent.SnapPoints) - { - // Calculate distance from snapping point. - float distFromSnappingPoint = snappingPoint - currentValue; - force += ComputeSnapForce(distFromSnappingPoint, elasticProperties.SnapK, extent.SnapRadius); - } - - // a = F/m - float accel = force / elasticProperties.Mass; - - // Integrate our acceleration over time. - currentVelocity += accel * deltaTime; - // Integrate our velocity over time. - currentValue += currentVelocity * deltaTime; - - return currentValue; - } - - public float GetCurrentValue() => currentValue; - public float GetCurrentVelocity() => currentVelocity; - - // Helper function to reduce force calculation copypasta. - private float ComputeEndForce(float current) - { - // If we are extended beyond the end cap, - // add one-sided force back to the center. - if (current > 0) - { - return current * elasticProperties.EndK; - } - else - { - // Otherwise, add standard bidirectional magnetic/snapping force towards the end marker. (optional) - return extent.SnapToEnds ? ComputeSnapForce(current, elasticProperties.EndK, extent.SnapRadius) : 0.0f; - } - } - - // Helper function to reduce force calculation copypasta. - private float ComputeSnapForce(float distFromPoint, float k, float radius) - { - // Snap force is calculated by multiplying the "-kx" factor by - // a clamped distance factor. This results in an overall - // hyperbolic profile to the force imparted by the snap point. - return (distFromPoint) * elasticProperties.SnapK * (1.0f - Mathf.Clamp01(Mathf.Abs(distFromPoint / radius))); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs.meta deleted file mode 100644 index 069deb935..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/LinearElasticSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5d96efa2eab482e4b8beeb37e280fc37 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs deleted file mode 100644 index c8db98d3c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System.Runtime.CompilerServices; -using UnityEngine; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.PlayModeTests")] -namespace Microsoft.MixedReality.Toolkit.Experimental.Physics -{ - public class QuaternionElasticSystem : IElasticSystem - { - private Quaternion currentValue; - private Quaternion currentVelocity; - - private QuaternionElasticExtent extent; - private ElasticProperties elasticProperties; - - /// - /// Default constructor; initializes the elastic system with the specified - /// initial value, velocity, extent, and elastic properties. - /// - public QuaternionElasticSystem(Quaternion initialValue, - Quaternion initialVelocity, - QuaternionElasticExtent extentInfo, - ElasticProperties elasticProperties) - { - currentValue = initialValue; - currentVelocity = initialVelocity; - this.extent = extentInfo; - this.elasticProperties = elasticProperties; - } - - /// - public Quaternion ComputeIteration(Quaternion forcingValue, float deltaTime) - { - // If the dot product is negative, we need to negate the forcing - // quaternion so that the force is coherent/wraps correctly. - if (Quaternion.Dot(forcingValue, currentValue) < 0) - { - forcingValue = new Quaternion(-forcingValue.x, -forcingValue.y, -forcingValue.z, -forcingValue.w); - } - - // Displacement of the forcing value compared to the current state's value. - Quaternion displacement = Quaternion.Inverse(currentValue) * forcingValue; - - // The force applied is an approximation of F=(kx - vd) in 4-space - Quaternion force = Add(Scale(displacement, elasticProperties.HandK), Scale(currentVelocity, -elasticProperties.Drag)); - - // Euler representation of the current elastic quaternion state. - Vector3 eulers = currentValue.eulerAngles; - - foreach (var snapPoint in extent.SnapPoints) - { - // If we are set to repeat the snap points (i.e., tiling them across the sphere), - // we use the nearest integer multiple of the snap point. If it is not repeated, - // we use the snap point directly. - Vector3 nearest = extent.RepeatSnapPoints ? GetNearest(eulers, snapPoint) : snapPoint; - - // Convert the nearest point to a quaternion representation. - Quaternion nearestQuat = Quaternion.Euler(nearest.x, nearest.y, nearest.z); - - // If the dot product is negative, we need to negate the snap - // quaternion so that the snap force is coherent/wraps correctly. - if (Quaternion.Dot(nearestQuat, currentValue) < 0) - { - nearestQuat = Scale(nearestQuat, -1.0f); - } - - // Displacement from the current value to the snap quaternion. - Quaternion snapDisplacement = Quaternion.Inverse(currentValue) * nearestQuat; - - // Angle of the snapping displacement, used to calculate the snapping magnitude. - float snapAngle = Quaternion.Angle(currentValue, nearestQuat); - - // Strength of the snapping force, function of the snap angle and the configured - // snapping radius. - float snapFactor = ComputeSnapFactor(snapAngle, extent.SnapRadius); - - // Accumulate the force from every snap point. - force = Add(force, Scale(snapDisplacement, elasticProperties.SnapK * snapFactor)); - } - - // Performing Euler integration in 4-space. - - // Acceleration = F/m - Quaternion accel = Scale(force, (1 / elasticProperties.Mass)); - - // v' = v + a * deltaT - currentVelocity = Add(currentVelocity, Scale(accel, deltaTime)); - - // x' = x + v' * deltaT - currentValue = currentValue * Scale(currentVelocity, deltaTime).normalized; - - // As the current value is a quaternion, we must renormalize the quaternion - // before using it as a representation of a rotation. - currentValue = currentValue.normalized; - - return currentValue; - } - - /// - public Quaternion GetCurrentValue() => currentValue; - - /// - public Quaternion GetCurrentVelocity() => currentVelocity; - - // Find the nearest integer multiple of the specified interval - private Vector3 GetNearest(Vector3 target, Vector3 interval) - { - return new Vector3(GetNearest(target.x, interval.x), GetNearest(target.y, interval.y), GetNearest(target.z, interval.z)); - } - - // Find the nearest integer multiple of the specified interval - private float GetNearest(float target, float interval) - { - return Mathf.Round(target / interval) * interval; - } - - private float ComputeSnapFactor(float angleFromPoint, float radius) - { - // Snap force is calculated by multiplying the "-kx" factor by - // a clamped distance factor. This results in an overall - // hyperbolic profile to the force imparted by the snap point. - return (1.0f - Mathf.Clamp01(Mathf.Abs(angleFromPoint / radius))); - } - - // Elementwise quaternion addition. - private Quaternion Add(Quaternion p, Quaternion q) - { - return new Quaternion(p.x + q.x, p.y + q.y, p.z + q.z, p.w + q.w); - } - - // Elementwise quaternion scale. - private Quaternion Scale(Quaternion p, float t) - { - return new Quaternion(p.x * t, p.y * t, p.z * t, p.w * t); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs.meta deleted file mode 100644 index 7cf356900..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/QuaternionElasticSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 47985eef6488ef94f922c1e8c75f6453 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs deleted file mode 100644 index 750bacfa6..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using UnityEngine; - -[assembly: InternalsVisibleTo("Microsoft.MixedReality.Toolkit.Tests.PlayModeTests")] -namespace Microsoft.MixedReality.Toolkit.Experimental.Physics -{ - public class VolumeElasticSystem : IElasticSystem - { - // Internal system state. - private Vector3 currentValue; - private Vector3 currentVelocity; - - // Configuration of extent and spring properties. - private VolumeElasticExtent extent; - private ElasticProperties elasticProperties; - - /// - /// Default constructor; initializes the elastic system with the specified - /// initial value, velocity, extent, and elastic properties. - /// - public VolumeElasticSystem(Vector3 initialValue, Vector3 initialVelocity, - VolumeElasticExtent extentInfo, - ElasticProperties elasticProperties) - { - currentValue = initialValue; - currentVelocity = initialVelocity; - this.extent = extentInfo; - this.elasticProperties = elasticProperties; - } - - /// - public Vector3 ComputeIteration(Vector3 forcingValue, float deltaTime) - { - // F = -kx - (drag * v) - Vector3 force = (forcingValue - currentValue) * elasticProperties.HandK - elasticProperties.Drag * currentVelocity; - - // Iterate over each snapping point, and apply forces as necessary. - foreach (Vector3 snapPoint in extent.SnapPoints) - { - Vector3 closestPoint = extent.RepeatSnapPoints ? FindNearest(currentValue, snapPoint) : snapPoint; - // Calculate distance from snapping point. - Vector3 distFromSnappingPoint = closestPoint - currentValue; - force += ComputeSnapForce(distFromSnappingPoint, elasticProperties.SnapK, extent.SnapRadius); - } - - // Check if our current value is within the specified bounds. - // If outside, we will apply the end-force (if the bounds are enabled) - if (!extent.StretchBounds.Contains(currentValue) && extent.UseBounds) - { - Vector3 closestPoint = extent.StretchBounds.ClosestPoint(currentValue); - Vector3 displacementFromEdge = closestPoint - currentValue; - - // Apply the force (F = kx) - force += displacementFromEdge * elasticProperties.EndK; - } - - // a = F/m - Vector3 accel = force / elasticProperties.Mass; - - // Integrate our acceleration over time. - currentVelocity += accel * deltaTime; - // Integrate our velocity over time. - currentValue += currentVelocity * deltaTime; - - return currentValue; - } - - public Vector3 GetCurrentValue() => currentValue; - public Vector3 GetCurrentVelocity() => currentVelocity; - - // Find the nearest snapping point to the given value, on a repeated - // snapping interval. - private Vector3 FindNearest(Vector3 value, Vector3 interval) - { - Debug.Assert(interval != Vector3.zero, "Zero vector used for repeating snapping interval; divide by zero!"); - return new Vector3(Mathf.Round(value.x / interval.x) * interval.x, - Mathf.Round(value.y / interval.y) * interval.y, - Mathf.Round(value.z / interval.z) * interval.z); - } - - // Helper function to reduce force calculation copypasta. - private Vector3 ComputeSnapForce(Vector3 distFromPoint, float k, float radius) - { - // Snap force is calculated by multiplying the "-kx" factor by - // a clamped distance factor. This results in an overall - // hyperbolic profile to the force imparted by the snap point. - return (distFromPoint) * elasticProperties.SnapK * (1.0f - Mathf.Clamp01(Mathf.Abs(distFromPoint.magnitude / radius))); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs.meta deleted file mode 100644 index c50b2ae61..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Elastic/Scripts/VolumeElasticSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 93490de1570dee7448f5fce62e4af09a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Features.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Features.meta deleted file mode 100644 index 136279ae8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Features.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c628174757bc2eb448a0c9bd70ab9f1c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities.meta deleted file mode 100644 index af59a5a58..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 66f44d59347696f47b850a27e53ed789 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs deleted file mode 100644 index d21a1ff94..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs +++ /dev/null @@ -1,444 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Utilities; -using System; -using UnityEngine; - -#if UNITY_WSA && !UNITY_2020_1_OR_NEWER -using Microsoft.MixedReality.Toolkit.Utilities.Editor; -using UnityEngine.XR.WSA; -#endif // UNITY_WSA && !UNITY_2020_1_OR_NEWER - -namespace Microsoft.MixedReality.Toolkit.Experimental.Utilities -{ - /// - /// StablizationPlaneOverride is a class used to describe the plane to be used by the StabilizationPlaneModifier class - /// - [Serializable] - public struct StabilizationPlaneOverride - { - /// - /// Center of the plane - /// - public Vector3 Center; - - /// - /// Normal of the plane - /// - public Vector3 Normal; - } - - /// - /// StabilizationPlaneModifier handles the setting of the stabilization plane in several different modes. - /// It does this via handling the platform call to HolographicPlatformSettings::SetFocusPointForFrame - /// Using StabilizationPlaneModifier will override DepthLSR. This is automatically enabled via the depth buffer sharing in Unity build settings - /// StabilizationPlaneModifier is recommended for HoloLens 1, can be used for HoloLens 2, and does a no op for WMR - /// - [AddComponentMenu("Scripts/MRTK/SDK/StabilizationPlaneModifier")] - public class StabilizationPlaneModifier : MonoBehaviour - { - [Serializable] - private enum StabilizationPlaneMode - { - /// - /// Does not call SetFocusPoint - /// - Off, - - /// - /// Submits plane at a fixed distance based on DefaultPlaneDistance field along the users gaze. - /// - Fixed, - - /// - /// Submits the plane at a fixed position along the users gaze based on the TargetOverride property. - /// - TargetOverride, - - /// - /// Submits the plane based on the OverridePlane property. - /// - PlaneOverride, - - /// - /// Submits plane along the users gaze at the position of gaze hit. - /// - GazeHit - } - - [SerializeField, Tooltip("Choose mode for stabilization plane.\n1) Fixed- Submits plane at a fixed distance based on DefaultPlaneDistance field along the users gaze.\n2) Gaze Hit- Submits plane along the users gaze at the position of gaze hit.\n3) Target Override- Submits the plane at a fixed position along the users gaze based on the TargetOverride property.\n4) Plane Override- Submits the plane based on the OverridePlane property.\n5) Off- Does not call SetFocusPoint")] - private StabilizationPlaneMode mode = StabilizationPlaneMode.Off; - - [SerializeField, Tooltip("When lerping, use unscaled time. This is useful for apps that have a pause mechanism or otherwise adjust the game timescale.")] - private bool useUnscaledTime = true; - - [SerializeField, Tooltip("Lerp speed when moving focus point closer.")] - private float lerpPowerCloser = 4.0f; - - [SerializeField, Tooltip("Lerp speed when moving focus point farther away.")] - private float lerpPowerFarther = 7.0f; - - [SerializeField, Tooltip("Used to temporarily override the location of the stabilization plane.")] - private Transform targetOverride; - - public Transform TargetOverride - { - get - { - return targetOverride; - } - set - { - if (targetOverride != value) - { - targetOverride = value; - if (targetOverride) - { - targetOverridePreviousPosition = targetOverride.position; - } - } - } - } - - [SerializeField, Tooltip("Keeps track of position-based velocity for the target object.")] - private bool trackVelocity; - public bool TrackVelocity - { - get - { - return trackVelocity; - } - set - { - trackVelocity = value; - if (TargetOverride) - { - targetOverridePreviousPosition = TargetOverride.position; - } - } - } - - [SerializeField, Tooltip("Default distance to set plane if plane is gaze-locked or if no object is hit.")] - private float defaultPlaneDistance = 2.0f; - - [SerializeField, Tooltip("Visualize the plane at runtime.")] -#pragma warning disable 414 // Field is used only in UNITY_EDITOR contexts - private bool drawGizmos = false; -#pragma warning restore 414 - - [SerializeField, Tooltip("Override plane to use. Usually used to set plane to a slate like a menu.")] - private StabilizationPlaneOverride overridePlane; - - /// - /// Override plane to use. Usually used to set plane to a slate like a menu. - /// - public StabilizationPlaneOverride OverridePlane - { - get => overridePlane; - set => overridePlane = value; - } - - /// - /// Position of the plane in world space. - /// - private Vector3 planePosition; - - /// - /// Current distance of the plane from the user's head. Only used when not using the target override - /// or the GazeManager to set the plane's position. - /// - private float currentPlaneDistance = 4.0f; - - /// - /// Tracks the previous position of the target override object. Used if velocity is being tracked. - /// - private Vector3 targetOverridePreviousPosition; - -#if UNITY_EDITOR - /// - /// Used for representing latest plane drawn as gizmo - /// - private StabilizationPlaneOverride debugPlane; - - /// - /// Used for representing the debug mesh - /// - private GameObject debugMesh; - - /// - /// Debug mesh filter - /// - private MeshFilter debugMeshFilter; -#endif - - private void Awake() - { -#if UNITY_EDITOR - debugMesh = GameObject.CreatePrimitive(PrimitiveType.Quad); - debugMesh.hideFlags |= HideFlags.HideInHierarchy; - debugMesh.gameObject.SetActive(false); - debugMeshFilter = debugMesh.GetComponent(); -#endif - - TrackVelocity = trackVelocity; - TargetOverride = targetOverride; - } - - /// - /// Updates the focus point for every frame after all objects have finished moving. - /// - private void LateUpdate() - { - float deltaTime = useUnscaledTime - ? Time.unscaledDeltaTime - : Time.deltaTime; - - switch (mode) - { - case StabilizationPlaneMode.Fixed: - ConfigureFixedDistancePlane(deltaTime); - break; - case StabilizationPlaneMode.GazeHit: - ConfigureGazeManagerPlane(deltaTime); - break; - case StabilizationPlaneMode.PlaneOverride: - ConfigureOverridePlane(deltaTime); - break; - case StabilizationPlaneMode.TargetOverride: - ConfigureTransformOverridePlane(deltaTime); - break; - case StabilizationPlaneMode.Off: - default: - break; - } - } - - /// - /// Gets the origin of the gaze for purposes of placing the stabilization plane - /// - private Vector3 GazeOrigin - { - get - { - var gazeProvider = CoreServices.InputSystem?.GazeProvider; - if (gazeProvider != null && gazeProvider.Enabled) - { - return gazeProvider.GazeOrigin; - } - - return CameraCache.Main.transform.position; - } - } - - /// - /// Gets the direction of the gaze for purposes of placing the stabilization plane - /// - private Vector3 GazeNormal - { - get - { - var gazeProvider = CoreServices.InputSystem?.GazeProvider; - if (gazeProvider != null && gazeProvider.Enabled) - { - return gazeProvider.GazeDirection; - } - - return CameraCache.Main.transform.forward; - } - } - - /// - /// Gets the position hit on the object the user is gazing at, if gaze tracking is supported. - /// - /// The position at which gaze ray intersects with an object. - /// True if gaze is supported and an object was hit by gaze, otherwise false. - private bool TryGetGazeHitPosition(out Vector3 hitPosition) - { - var gazeProvider = CoreServices.InputSystem?.GazeProvider; - if (gazeProvider != null && gazeProvider.Enabled && - gazeProvider.HitInfo.raycastValid) - { - hitPosition = gazeProvider.HitPosition; - return true; - } - - hitPosition = Vector3.zero; - return false; - } - - /// - /// Configures the stabilization plane to update its position based on an object in the scene. - /// - private void ConfigureTransformOverridePlane(float deltaTime) - { - Vector3 gazeDirection = ConfigureOverridePlaneHelper(TargetOverride.position, deltaTime); - -#if UNITY_EDITOR - debugPlane.Center = planePosition; - debugPlane.Normal = -gazeDirection; -#endif - } - - private void ConfigureOverridePlane(float deltaTime) - { - ConfigureOverridePlaneHelper(OverridePlane.Center, deltaTime); - -#if UNITY_EDITOR - debugPlane.Center = planePosition; - debugPlane.Normal = -OverridePlane.Normal; -#endif - } - - private Vector3 ConfigureOverridePlaneHelper(Vector3 position, float deltaTime) - { - planePosition = position; - - Vector3 velocity = Vector3.zero; - if (TrackVelocity) - { - velocity = UpdateVelocity(deltaTime); - } - - Vector3 gazeOrigin = GazeOrigin; - Vector3 gazeToPlane = planePosition - gazeOrigin; - float focusPointDistance = gazeToPlane.magnitude; - float lerpPower = focusPointDistance > currentPlaneDistance ? lerpPowerFarther - : lerpPowerCloser; - - // Smoothly move the focus point from previous hit position to new position. - currentPlaneDistance = Mathf.Lerp(currentPlaneDistance, focusPointDistance, lerpPower * deltaTime); - gazeToPlane.Normalize(); - planePosition = gazeOrigin + (gazeToPlane * currentPlaneDistance); - -#if UNITY_2019_3_OR_NEWER - XRSubsystemHelpers.DisplaySubsystem?.SetFocusPlane(planePosition, OverridePlane.Normal, velocity); -#endif // UNITY_2019_3_OR_NEWER - -#if UNITY_WSA && !UNITY_2020_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. - if (XRSubsystemHelpers.DisplaySubsystem == null) - { -#pragma warning disable 0618 - // Place the plane at the desired depth in front of the user and billboard it to the gaze origin. - HolographicSettings.SetFocusPointForFrame(planePosition, OverridePlane.Normal, velocity); -#pragma warning restore 0618 - } -#endif // UNITY_WSA && !UNITY_2020_1_OR_NEWER - - return gazeToPlane; - } - - /// - /// Configures the stabilization plane to update its position based on what your gaze intersects in the scene. - /// - private void ConfigureGazeManagerPlane(float deltaTime) - { - Vector3 gazeOrigin = GazeOrigin; - Vector3 gazeDirection = GazeNormal; - - // Calculate the delta between gaze origin's position and current hit position. If no object is hit, use default distance. - float focusPointDistance; - Vector3 gazeHitPosition; - if (TryGetGazeHitPosition(out gazeHitPosition)) - { - focusPointDistance = (gazeOrigin - gazeHitPosition).magnitude; - } - else - { - focusPointDistance = defaultPlaneDistance; - } - - float lerpPower = focusPointDistance > currentPlaneDistance ? lerpPowerFarther - : lerpPowerCloser; - - // Smoothly move the focus point from previous hit position to new position. - currentPlaneDistance = Mathf.Lerp(currentPlaneDistance, focusPointDistance, lerpPower * deltaTime); - - planePosition = gazeOrigin + (gazeDirection * currentPlaneDistance); - -#if UNITY_EDITOR - debugPlane.Center = planePosition; - debugPlane.Normal = -gazeDirection; -#else -#if UNITY_2019_3_OR_NEWER - XRSubsystemHelpers.DisplaySubsystem?.SetFocusPlane(planePosition, -gazeDirection, Vector3.zero); -#endif // UNITY_2019_3_OR_NEWER - -#if UNITY_WSA && !UNITY_2020_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. - if (XRSubsystemHelpers.DisplaySubsystem == null) - { -#pragma warning disable 0618 - HolographicSettings.SetFocusPointForFrame(planePosition, -gazeDirection, Vector3.zero); -#pragma warning restore 0618 - } -#endif // UNITY_WSA && !UNITY_2020_1_OR_NEWER -#endif - } - - /// - /// Configures the stabilization plane to update based on a fixed distance away from you. - /// - private void ConfigureFixedDistancePlane(float deltaTime) - { - Vector3 gazeOrigin = GazeOrigin; - Vector3 gazeNormal = GazeNormal; - - float lerpPower = defaultPlaneDistance > currentPlaneDistance ? lerpPowerFarther - : lerpPowerCloser; - - // Smoothly move the focus point from previous hit position to new position. - currentPlaneDistance = Mathf.Lerp(currentPlaneDistance, defaultPlaneDistance, lerpPower * deltaTime); - - planePosition = gazeOrigin + (gazeNormal * currentPlaneDistance); -#if UNITY_EDITOR - debugPlane.Center = planePosition; - debugPlane.Normal = -gazeNormal; -#else -#if UNITY_2019_3_OR_NEWER - XRSubsystemHelpers.DisplaySubsystem?.SetFocusPlane(planePosition, -gazeNormal, Vector3.zero); -#endif // UNITY_2019_3_OR_NEWER - -#if UNITY_WSA && !UNITY_2020_1_OR_NEWER - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. - if (XRSubsystemHelpers.DisplaySubsystem == null) - { -#pragma warning disable 0618 - HolographicSettings.SetFocusPointForFrame(planePosition, -gazeNormal, Vector3.zero); -#pragma warning restore 0618 - } -#endif // UNITY_WSA && !UNITY_2020_1_OR_NEWER -#endif - } - - /// - /// Tracks the velocity of the target object to be used as a hint for the plane stabilization. - /// - private Vector3 UpdateVelocity(float deltaTime) - { - // Roughly calculate the velocity based on previous position, current position, and frame time. - Vector3 velocity = (TargetOverride.position - targetOverridePreviousPosition) / deltaTime; - targetOverridePreviousPosition = TargetOverride.position; - return velocity; - } - -#if UNITY_EDITOR - /// - /// When in editor, draws a magenta quad that visually represents the stabilization plane. - /// - private void OnDrawGizmos() - { - if (Application.isPlaying && drawGizmos && mode != StabilizationPlaneMode.Off) - { - Gizmos.color = Color.green; - Gizmos.DrawWireMesh(debugMeshFilter.sharedMesh, debugPlane.Center, Quaternion.LookRotation(debugPlane.Normal)); - Gizmos.DrawRay(debugPlane.Center, debugPlane.Normal); - } - } -#endif - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs.meta deleted file mode 100644 index 4ea6ebbdd..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/StabilizationPlaneModifier.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 78999378ebb59c542bc13f557c09b8a0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 500 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs deleted file mode 100644 index 402714fda..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs +++ /dev/null @@ -1,637 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -#if UNITY_WSA && !UNITY_2020_1_OR_NEWER -using System; -using System.Collections.Generic; -using UnityEngine.XR.WSA; -using UnityEngine.XR.WSA.Persistence; -#endif - -namespace Microsoft.MixedReality.Toolkit.Experimental.Utilities -{ - /// - /// Wrapper around Unity's WorldAnchorStore to simplify usage of persistence operations. - /// - /// - /// This class only functions when built for the WSA platform using legacy XR. - /// It uses APIs that are only present on that platform. - /// - [AddComponentMenu("Scripts/MRTK/SDK/WorldAnchorManager")] - public class WorldAnchorManager : MonoBehaviour - { - /// - /// If non-null, verbose logging messages will be displayed on this TextMesh. - /// - [Tooltip("If non-null, verbose logging messages will be displayed on this TextMesh.")] - [SerializeField] - private TextMesh anchorDebugText = null; - - /// - /// If non-null, verbose logging messages will be displayed on this TextMesh. - /// - /// - /// Note that ShowDetailedLogs and AnchorDebugText will cause the same set of information - /// to be displayed. - /// - public TextMesh AnchorDebugText => anchorDebugText; - - /// - /// If true, more verbose logging messages will be written to the console window. - /// - [Tooltip("If true, more verbose logging messages will be written to the console window.")] - [SerializeField] - private bool showDetailedLogs = false; - - /// - /// If true, more verbose logging messages will be written to the console window. - /// - /// - /// Note that ShowDetailedLogs and AnchorDebugText will cause the same set of information - /// to be displayed. - /// - public bool ShowDetailedLogs => showDetailedLogs; - - /// - /// Enables anchors to be stored from subsequent game sessions. - /// - [Tooltip("Enables anchors to be stored from subsequent game sessions.")] - [SerializeField] - private bool persistentAnchors = false; - - /// - /// Enables anchors to be stored from subsequent game sessions. - /// - public bool PersistentAnchors => persistentAnchors; - -#if UNITY_WSA && !UNITY_2020_1_OR_NEWER - /// - /// The WorldAnchorStore for the current application. - /// Can be null when the application starts. - /// - public WorldAnchorStore AnchorStore { get; protected set; } - - /// - /// To prevent initializing too many anchors at once - /// and to allow for the WorldAnchorStore to load asynchronously - /// without callers handling the case where the store isn't loaded yet - /// we'll setup a queue of anchor attachment operations. - /// The AnchorAttachmentInfo struct has the data needed to do this. - /// - private struct AnchorAttachmentInfo - { - public GameObject AnchoredGameObject { get; set; } - public string AnchorName { get; set; } - public AnchorOperation Operation { get; set; } - } - - /// - /// Enumeration defining the types of anchor operations. - /// - private enum AnchorOperation - { - /// - /// Save anchor to anchor store. Creates anchor if none exists. - /// - Save, - /// - /// Deletes anchor from anchor store. - /// - Delete - } - - /// - /// The queue for local device anchor operations. - /// - private readonly Queue localAnchorOperations = new Queue(); - - /// - /// Internal list of anchors and their GameObject references. - /// - private readonly Dictionary anchorGameObjectReferenceList = new Dictionary(0); - - #region Unity Methods - - private void Awake() - { - AnchorStore = null; - } - - private void Start() - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - WorldAnchorStore.GetAsync(AnchorStoreReady); -#pragma warning restore 0618 - } - - private void Update() - { - if (AnchorStore == null) - { - return; - } - - if (localAnchorOperations.Count > 0) - { - DoAnchorOperation(localAnchorOperations.Dequeue()); - } - } - - #endregion // Unity Methods - - #region Event Callbacks - - /// - /// Callback function that contains the WorldAnchorStore object. - /// - /// The WorldAnchorStore to cache. - private void AnchorStoreReady(WorldAnchorStore anchorStore) - { - AnchorStore = anchorStore; - - if (!persistentAnchors) - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - AnchorStore.Clear(); -#pragma warning restore 0618 - } - } - - /// - /// Called when tracking changes for a 'cached' anchor. - /// When an anchor isn't located immediately we subscribe to this event so - /// we can save the anchor when it is finally located or downloaded. - /// - /// The anchor that is reporting a tracking changed event. - /// Indicates if the anchor is located or not located. - private void Anchor_OnTrackingChanged(WorldAnchor anchor, bool located) - { - if (located && SaveAnchor(anchor)) - { - if (showDetailedLogs) - { - Debug.LogFormat("[WorldAnchorManager] Successfully updated cached anchor \"{0}\".", anchor.name); - } - - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nSuccessfully updated cached anchor \"{0}\".", anchor.name); - } - } - else - { - if (showDetailedLogs) - { - Debug.LogFormat("[WorldAnchorManager] Failed to locate cached anchor \"{0}\", attempting to acquire anchor again.", anchor.name); - } - - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nFailed to locate cached anchor \"{0}\", attempting to acquire anchor again.", anchor.name); - } - - GameObject anchoredObject; - anchorGameObjectReferenceList.TryGetValue(anchor.name, out anchoredObject); - anchorGameObjectReferenceList.Remove(anchor.name); - AttachAnchor(anchoredObject, anchor.name); - } - - anchor.OnTrackingChanged -= Anchor_OnTrackingChanged; - } - - #endregion // Event Callbacks -#endif // UNITY_WSA && !UNITY_2020_1_OR_NEWER - - /// - /// Attaches an anchor to the GameObject. - /// If the anchor store has an anchor with the specified name it will load the anchor, - /// otherwise a new anchor will be saved under the specified name. - /// If no anchor name is provided, the name of the anchor will be the same as the GameObject. - /// - /// The GameObject to attach the anchor to. - /// Name of the anchor. If none provided, the name of the GameObject will be used. - /// The name of the newly attached anchor. - public string AttachAnchor(GameObject gameObjectToAnchor, string anchorName = null) - { -#if !UNITY_WSA || UNITY_EDITOR || UNITY_2020_1_OR_NEWER - Debug.LogWarning("World Anchor Manager does not work for this build. AttachAnchor will not be called."); - return null; -#else - if (gameObjectToAnchor == null) - { - Debug.LogError("[WorldAnchorManager] Must pass in a valid gameObject"); - return null; - } - - // This case is unexpected, but just in case. - if (AnchorStore == null) - { - Debug.LogWarning("[WorldAnchorManager] AttachAnchor called before anchor store is ready."); - } - - anchorName = GenerateAnchorName(gameObjectToAnchor, anchorName); - - localAnchorOperations.Enqueue( - new AnchorAttachmentInfo - { - AnchoredGameObject = gameObjectToAnchor, - AnchorName = anchorName, - Operation = AnchorOperation.Save - } - ); - - return anchorName; -#endif // !UNITY_WSA || UNITY_EDITOR || UNITY_2020_1_OR_NEWER - } - - /// - /// Removes the anchor component from the GameObject and deletes the anchor from the anchor store. - /// - /// The GameObject reference with valid anchor to remove from the anchor store. - public void RemoveAnchor(GameObject gameObjectToUnanchor) - { - if (gameObjectToUnanchor == null) - { - Debug.LogError("[WorldAnchorManager] Invalid GameObject! Try removing anchor by name."); - if (anchorDebugText != null) - { - anchorDebugText.text += "\nInvalid GameObject! Try removing anchor by name."; - } - return; - } - - RemoveAnchor(string.Empty, gameObjectToUnanchor); - } - - /// - /// Removes the anchor from the anchor store, without a GameObject reference. - /// If a GameObject reference can be found, the anchor component will be removed. - /// - /// The name of the anchor to remove from the anchor store. - public void RemoveAnchor(string anchorName) - { - if (string.IsNullOrEmpty(anchorName)) - { - Debug.LogErrorFormat("[WorldAnchorManager] Invalid anchor \"{0}\"! Try removing anchor by GameObject.", anchorName); - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nInvalid anchor \"{0}\"! Try removing anchor by GameObject.", anchorName); - } - return; - } - - RemoveAnchor(anchorName, null); - } - - /// - /// Removes the anchor from the game object and deletes the anchor - /// from the anchor store. - /// - /// Name of the anchor to remove from the anchor store. - /// GameObject to remove the anchor from. - private void RemoveAnchor(string anchorName, GameObject gameObjectToUnanchor) - { - if (string.IsNullOrEmpty(anchorName) && gameObjectToUnanchor == null) - { - Debug.LogWarning("Invalid Remove Anchor Request!"); - return; - } - -#if !UNITY_WSA || UNITY_EDITOR || UNITY_2020_1_OR_NEWER - Debug.LogWarning("World Anchor Manager does not work for this build. RemoveAnchor will not be called."); -#else - // This case is unexpected, but just in case. - if (AnchorStore == null) - { - Debug.LogWarning("[WorldAnchorManager] RemoveAnchor called before anchor store is ready."); - } - - localAnchorOperations.Enqueue( - new AnchorAttachmentInfo - { - AnchoredGameObject = gameObjectToUnanchor, - AnchorName = anchorName, - Operation = AnchorOperation.Delete - }); -#endif // !UNITY_WSA || UNITY_EDITOR || UNITY_2020_1_OR_NEWER - } - - /// - /// Removes all anchors from the scene and deletes them from the anchor store. - /// - public void RemoveAllAnchors() - { -#if !UNITY_WSA || UNITY_EDITOR || UNITY_2020_1_OR_NEWER - Debug.LogWarning("World Anchor Manager does not work for this build. RemoveAnchor will not be called."); -#else - // This case is unexpected, but just in case. - if (AnchorStore == null) - { - Debug.LogWarning("[WorldAnchorManager] RemoveAllAnchors called before anchor store is ready."); - } - - var anchors = FindObjectsOfType(); - - if (anchors == null) - { - return; - } - - for (int i = 0; i < anchors.Length; i++) - { - // Let's check to see if there are anchors we weren't accounting for. - // Maybe they were created without using the WorldAnchorManager. - if (!anchorGameObjectReferenceList.ContainsKey(anchors[i].name)) - { - Debug.LogWarning("[WorldAnchorManager] Removing an anchor that was created outside of the WorldAnchorManager. Please use the WorldAnchorManager to create or delete anchors."); - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nRemoving an anchor that was created outside of the WorldAnchorManager. Please use the WorldAnchorManager to create or delete anchors."); - } - } - - localAnchorOperations.Enqueue(new AnchorAttachmentInfo - { - AnchorName = anchors[i].name, - AnchoredGameObject = anchors[i].gameObject, - Operation = AnchorOperation.Delete - }); - } -#endif // !UNITY_WSA || UNITY_EDITOR || UNITY_2020_1_OR_NEWER - } - -#if UNITY_WSA && !UNITY_2020_1_OR_NEWER - /// - /// Called before creating anchor. Used to check if import required. - /// - /// - /// Return true from this function if import is required. - /// - /// Name of the anchor to import. - /// GameObject to anchor. - protected virtual bool ImportAnchor(string anchorId, GameObject objectToAnchor) - { - return true; - } - - /// - /// Called after creating a new anchor. - /// - /// The anchor to export. - protected virtual void ExportAnchor(WorldAnchor anchor) { } - - /// - /// Executes the anchor operations from the localAnchorOperations queue. - /// - /// Parameters for attaching the anchor. - private void DoAnchorOperation(AnchorAttachmentInfo anchorAttachmentInfo) - { - if (AnchorStore == null) - { - Debug.LogError("[WorldAnchorManager] Remove anchor called before anchor store is ready."); - return; - } - - string anchorId = anchorAttachmentInfo.AnchorName; - GameObject anchoredGameObject = anchorAttachmentInfo.AnchoredGameObject; - switch (anchorAttachmentInfo.Operation) - { - case AnchorOperation.Save: - DoSaveAnchorOperation(anchorId, anchoredGameObject); - break; - case AnchorOperation.Delete: - DoDeleteAnchorOperation(anchorId, anchoredGameObject); - break; - default: - throw new ArgumentOutOfRangeException(); - } - } - - /// - /// Executes an AnchorOperation.Save operation. - /// - private void DoSaveAnchorOperation(string anchorId, GameObject anchoredGameObject) - { - if (anchoredGameObject == null) - { - Debug.LogError("[WorldAnchorManager] The GameObject referenced must have been destroyed before we got a chance to anchor it."); - if (anchorDebugText != null) - { - anchorDebugText.text += "\nThe GameObject referenced must have been destroyed before we got a chance to anchor it."; - } - return; - } - - if (string.IsNullOrEmpty(anchorId)) - { - anchorId = anchoredGameObject.name; - } - - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - // Try to load a previously saved world anchor. - WorldAnchor savedAnchor = AnchorStore.Load(anchorId, anchoredGameObject); -#pragma warning restore 0618 - - if (savedAnchor == null) - { - // Check if we need to import the anchor. - if (ImportAnchor(anchorId, anchoredGameObject)) - { - if (showDetailedLogs) - { - Debug.LogFormat("[WorldAnchorManager] Anchor could not be loaded for \"{0}\". Creating a new anchor.", anchoredGameObject.name); - } - - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nAnchor could not be loaded for \"{0}\". Creating a new anchor.", anchoredGameObject.name); - } - - // Create anchor since one does not exist. - CreateAnchor(anchoredGameObject, anchorId); - } - } - else - { - savedAnchor.name = anchorId; - if (showDetailedLogs) - { - Debug.LogFormat("[WorldAnchorManager] Anchor loaded from anchor store and updated for \"{0}\".", anchoredGameObject.name); - } - - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nAnchor loaded from anchor store and updated for \"{0}\".", anchoredGameObject.name); - } - } - - anchorGameObjectReferenceList.Add(anchorId, anchoredGameObject); - } - - /// - /// Executes an AnchorOperation.Delete operation. - /// - private void DoDeleteAnchorOperation(string anchorId, GameObject anchoredGameObject) - { - // If we don't have a GameObject reference, let's try to get the GameObject reference from our dictionary. - if (!string.IsNullOrEmpty(anchorId) && anchoredGameObject == null) - { - anchorGameObjectReferenceList.TryGetValue(anchorId, out anchoredGameObject); - } - - if (anchoredGameObject != null) - { - var anchor = anchoredGameObject.GetComponent(); - - if (anchor != null) - { - anchorId = anchor.name; - DestroyImmediate(anchor); - } - else - { - Debug.LogErrorFormat("[WorldAnchorManager] Unable remove WorldAnchor from {0}!", anchoredGameObject.name); - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nUnable remove WorldAnchor from {0}!", anchoredGameObject.name); - } - } - } - else - { - Debug.LogError("[WorldAnchorManager] Unable find a GameObject to remove an anchor from!"); - if (anchorDebugText != null) - { - anchorDebugText.text += "\nUnable find a GameObject to remove an anchor from!"; - } - } - - if (!string.IsNullOrEmpty(anchorId)) - { - anchorGameObjectReferenceList.Remove(anchorId); - DeleteAnchor(anchorId); - } - else - { - Debug.LogError("[WorldAnchorManager] Unable find an anchor to delete!"); - if (anchorDebugText != null) - { - anchorDebugText.text += "\nUnable find an anchor to delete!"; - } - } - } - - /// - /// Creates an anchor, attaches it to the gameObjectToAnchor, and saves the anchor to the anchor store. - /// - /// The GameObject to attach the anchor to. - /// The name to give to the anchor. - private void CreateAnchor(GameObject gameObjectToAnchor, string anchorName) - { - var anchor = gameObjectToAnchor.EnsureComponent(); - anchor.name = anchorName; - - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - // Sometimes the anchor is located immediately. In that case it can be saved immediately. - if (anchor.isLocated) -#pragma warning restore 0618 - { - SaveAnchor(anchor); - } - else - { - // Other times we must wait for the tracking system to locate the world. - anchor.OnTrackingChanged += Anchor_OnTrackingChanged; - } - } - - /// - /// Saves the anchor to the anchor store. - /// - /// Anchor. - private bool SaveAnchor(WorldAnchor anchor) - { - // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms - // with legacy requirements. -#pragma warning disable 0618 - // Save the anchor to persist holograms across sessions. - if (AnchorStore.Save(anchor.name, anchor)) -#pragma warning disable 0618 - { - if (showDetailedLogs) - { - Debug.LogFormat("[WorldAnchorManager] Successfully saved anchor \"{0}\".", anchor.name); - } - - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nSuccessfully saved anchor \"{0}\".", anchor.name); - } - - ExportAnchor(anchor); - - return true; - } - - Debug.LogErrorFormat("[WorldAnchorManager] Failed to save anchor \"{0}\"!", anchor.name); - - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nFailed to save anchor \"{0}\"!", anchor.name); - } - return false; - } - - /// - /// Deletes the anchor from the Anchor Store. - /// - /// The anchor id. - private void DeleteAnchor(string anchorId) - { - if (AnchorStore.Delete(anchorId)) - { - Debug.LogFormat("[WorldAnchorManager] Anchor {0} deleted successfully.", anchorId); - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nAnchor {0} deleted successfully.", anchorId); - } - } - else - { - if (string.IsNullOrEmpty(anchorId)) - { - anchorId = "NULL"; - } - - Debug.LogErrorFormat("[WorldAnchorManager] Failed to delete \"{0}\".", anchorId); - if (anchorDebugText != null) - { - anchorDebugText.text += string.Format("\nFailed to delete \"{0}\".", anchorId); - } - } - } - - /// - /// Generates the name for the anchor. - /// If no anchor name was specified, the name of the anchor will be the same as the GameObject's name. - /// - /// The GameObject to attach the anchor to. - /// Name of the anchor. If none provided, the name of the GameObject will be used. - /// The name of the newly attached anchor. - private static string GenerateAnchorName(GameObject gameObjectToAnchor, string proposedAnchorName = null) - { - return string.IsNullOrEmpty(proposedAnchorName) ? gameObjectToAnchor.name : proposedAnchorName; - } -#endif // UNITY_WSA && !UNITY_2020_1_OR_NEWER - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs.meta deleted file mode 100644 index 9b07ff0bf..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Features/Utilities/WorldAnchorManager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: edef0f26fefe56245bf1a4dff71182f6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick.meta deleted file mode 100644 index 1a519ba84..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 74b3d26f757661c49a4255679b6a2328 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs deleted file mode 100644 index a6de587e7..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Input; -using UnityEngine; -using UnityEngine.UI; -using UnityEngine.Serialization; -using TMPro; - -namespace Microsoft.MixedReality.Toolkit.Experimental.Joystick -{ - /// - /// Example script to demonstrate joystick control in sample scene - /// - public class JoystickController : MonoBehaviour - { - [Experimental] - [SerializeField, FormerlySerializedAs("objectToManipulate")] - [Tooltip("The large or small game object that receives manipulation by the joystick.")] - private GameObject targetObject = null; - public GameObject TargetObject - { - get => targetObject; - set => targetObject = value; - } - - [SerializeField] - [Tooltip("A TextMeshPro object that displays joystick values.")] - private TextMeshPro debugText = null; - - [SerializeField] - [Tooltip("The joystick mesh that gets rotated when this control is interacted with.")] - private GameObject joystickVisual = null; - - [SerializeField] - [Tooltip("The mesh + collider object that gets dragged and controls the joystick visual rotation.")] - private GameObject grabberVisual = null; - - [SerializeField] - [Tooltip("Toggles on / off the GrabberVisual's mesh renderer because it can be dragged away from the joystick visual, it kind of breaks the illusion of pushing / pulling a lever.")] - private bool showGrabberVisual = true; - - [Tooltip("The speed at which the JoystickVisual and GrabberVisual move / rotate back to a neutral position.")] - [Range(1, 20)] - public float ReboundSpeed = 5; - - [Tooltip("How sensitive the joystick reacts to dragging left / right. Customize this value to get the right feel for your scenario.")] - [Range(0.01f, 10)] - public float SensitivityLeftRight = 3; - - [Tooltip("How sensitive the joystick reacts to pushing / pulling. Customize this value to get the right feel for your scenario.")] - [Range(0.01f, 10)] - public float SensitivityForwardBack = 6; - - [SerializeField] - [Tooltip("The property that the joystick manipulates.")] - private JoystickMode mode = JoystickMode.Move; - - public JoystickMode Mode - { - get => mode; - set => mode = value; - } - - [Tooltip("The distance multiplier for joystick input. Customize this value to get the right feel for your scenario.")] - [Range(0.0003f, 0.03f)] - public float MoveSpeed = 0.01f; - - [Tooltip("The rotation multiplier for joystick input. Customize this value to get the right feel for your scenario.")] - [Range(0.01f, 1f)] - public float RotationSpeed = 0.05f; - - [Tooltip("The scale multiplier for joystick input. Customize this value to get the right feel for your scenario.")] - [Range(0.00003f, 0.003f)] - public float ScaleSpeed = 0.001f; - - private Vector3 startPosition; - private Vector3 joystickGrabberPosition; - private Vector3 joystickVisualRotation; - private const int joystickVisualMaxRotation = 80; - private bool isDragging = false; - private void Start() - { - startPosition = grabberVisual.transform.localPosition; - if(grabberVisual != null) - { - grabberVisual.GetComponent().enabled = showGrabberVisual; - } - } - - private void Update() - { - if(!isDragging) - { - // when dragging stops, move joystick back to idle - if(grabberVisual != null) - { - grabberVisual.transform.localPosition = Vector3.Lerp(grabberVisual.transform.localPosition, startPosition, Time.deltaTime * ReboundSpeed); - } - } - CalculateJoystickRotation(); - ApplyJoystickValues(); - } - - private void CalculateJoystickRotation() - { - joystickGrabberPosition = grabberVisual.transform.localPosition - startPosition; - // Left Right = Horizontal - joystickVisualRotation.z = Mathf.Clamp(-joystickGrabberPosition.x * SensitivityLeftRight,-joystickVisualMaxRotation, joystickVisualMaxRotation); - // Forward Back = Vertical - joystickVisualRotation.x = Mathf.Clamp(joystickGrabberPosition.z * SensitivityForwardBack,-joystickVisualMaxRotation, joystickVisualMaxRotation); - // TODO: calculate joystickVisualRotation.y to always face the proper direction (for when the joystick container gets moved around the scene) - if(joystickVisual != null) - { - joystickVisual.transform.localRotation = Quaternion.Euler(joystickVisualRotation); - } - } - - private void ApplyJoystickValues() - { - if (TargetObject != null) - { - if(Mode == JoystickMode.Move) - { - TargetObject.transform.position += (joystickGrabberPosition * MoveSpeed); - if (debugText != null) - { - debugText.text = TargetObject.transform.position.ToString(); - } - } - else if(Mode == JoystickMode.Rotate) - { - Vector3 newRotation = TargetObject.transform.rotation.eulerAngles; - // only take the horizontal axis from the joystick - newRotation.y += (joystickGrabberPosition.x * RotationSpeed); - newRotation.x = 0; - newRotation.z = 0; - TargetObject.transform.localRotation = Quaternion.Euler(newRotation); - if (debugText != null) - { - debugText.text = TargetObject.transform.localRotation.eulerAngles.ToString(); - } - } - else if(Mode == JoystickMode.Scale) - { - // TODO: Clamp above zero - Vector3 newScale = new Vector3(joystickGrabberPosition.x, joystickGrabberPosition.x, joystickGrabberPosition.x) * ScaleSpeed; - TargetObject.transform.localScale += newScale; - if (debugText != null) - { - debugText.text = TargetObject.transform.localScale.ToString(); - } - } - } - } - /// - /// The ObjectManipulator script uses this to determine when the joystick is grabbed. - /// - public void StartDrag() - { - isDragging = true; - } - /// - /// The ObjectManipulator script uses this to determine when the joystick is released. - /// - public void StopDrag() - { - isDragging = false; - } - /// - /// Set the joystick mode from a UI button. - /// - public void JoystickModeMove() - { - Mode = JoystickMode.Move; - } - /// - /// Set the joystick mode from a UI button. - /// - public void JoystickModeRotate() - { - Mode = JoystickMode.Rotate; - } - /// - /// Set the joystick mode from a UI button. - /// - public void JoystickModeScale() - { - Mode = JoystickMode.Scale; - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs.meta deleted file mode 100644 index 54518fa06..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d7a33aa7eb795c8408ba365c819215ed -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs deleted file mode 100644 index 3ec920810..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -namespace Microsoft.MixedReality.Toolkit.Experimental.Joystick -{ - /// - /// Describes the current state of a joystick control. - /// - public enum JoystickMode - { - Move = 0, - Scale, - Rotate - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs.meta deleted file mode 100644 index 513a7c56f..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0c9d89cf87aa64c46943321616424d2c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab b/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab deleted file mode 100644 index 6940ea245..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab +++ /dev/null @@ -1,861 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &5556311913921089648 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3440984159310550459} - - component: {fileID: 1124624673097610173} - - component: {fileID: 2904876074507675546} - - component: {fileID: 9043774015251506715} - m_Layer: 0 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3440984159310550459 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5556311913921089648} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.0000000097189, y: 2.145, z: -0.024831269} - m_LocalScale: {x: 0.8777936, y: 1.5358695, z: 0.8777936} - m_Children: [] - m_Father: {fileID: 5706572167046604139} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1124624673097610173 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5556311913921089648} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &2904876074507675546 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5556311913921089648} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 27a6136d64696da4eba1b89b3df8d3df, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!136 &9043774015251506715 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5556311913921089648} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.5000001 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} ---- !u!1 &5706572166273258444 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5706572166273258433} - - component: {fileID: 5706572166273258432} - - component: {fileID: 5706572166273258447} - - component: {fileID: 5706572166273258446} - - component: {fileID: 5706572166273258445} - m_Layer: 0 - m_Name: DebugText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5706572166273258433 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166273258444} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -1.82} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 5706572166333173925} - m_RootOrder: 4 - 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: 0, y: -2.128} - m_SizeDelta: {x: 20, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!23 &5706572166273258432 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166273258444} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - 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_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!33 &5706572166273258447 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166273258444} - m_Mesh: {fileID: 0} ---- !u!222 &5706572166273258446 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166273258444} - m_CullTransparentMesh: 0 ---- !u!114 &5706572166273258445 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166273258444} - 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_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: debug - 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: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 4 - m_fontSizeBase: 4 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 6 - m_fontSizeMax: 24 - m_fontStyle: 0 - m_textAlignment: 514 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 0 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 8.236618, y: 1.6772801, z: 8.235382, w: 2.3545544} - m_textInfo: - textComponent: {fileID: 5706572166273258445} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 5706572166273258432} - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_maskType: 0 ---- !u!1 &5706572166333173924 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5706572166333173925} - - component: {fileID: 2568946665719251854} - m_Layer: 0 - m_Name: JoystickPrefab - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5706572166333173925 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166333173924} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -1.71, z: 8.8} - m_LocalScale: {x: 0.030866839, y: 0.030866839, z: 0.030866839} - m_Children: - - {fileID: 5706572168053269086} - - {fileID: 5706572167436493193} - - {fileID: 5706572167046604139} - - {fileID: 5706572166712672372} - - {fileID: 5706572166273258433} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2568946665719251854 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166333173924} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d7a33aa7eb795c8408ba365c819215ed, type: 3} - m_Name: - m_EditorClassIdentifier: - targetObject: {fileID: 0} - debugText: {fileID: 5706572166273258445} - joystickVisual: {fileID: 5706572167046604150} - grabberVisual: {fileID: 5706572166712672382} - showGrabberVisual: 1 - ReboundSpeed: 5 - SensitivityLeftRight: 3 - SensitivityForwardBack: 6 - mode: 0 - MoveSpeed: 0.01 - RotationSpeed: 0.05 - ScaleSpeed: 0.001 ---- !u!1 &5706572166712672382 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5706572166712672372} - - component: {fileID: 5706572166712672371} - - component: {fileID: 5706572166712672370} - - component: {fileID: 5706572166712672369} - - component: {fileID: 9101763540981274649} - - component: {fileID: 3816039547157159901} - - component: {fileID: 2050906356467104871} - - component: {fileID: 1964729684629225087} - m_Layer: 0 - m_Name: Grabber - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5706572166712672372 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 3.06, z: 0} - m_LocalScale: {x: 1.0870402, y: 0.15916489, z: 1.0870402} - m_Children: [] - m_Father: {fileID: 5706572166333173925} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5706572166712672371 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &5706572166712672370 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 27a6136d64696da4eba1b89b3df8d3df, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!136 &5706572166712672369 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.4 - m_Height: 33.613743 - m_Direction: 1 - m_Center: {x: 0.0000001110254, y: -14.759593, z: -0.0000001110254} ---- !u!114 &9101763540981274649 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 181cd563a8349c34ea8978b0bc8d9c7e, type: 3} - m_Name: - m_EditorClassIdentifier: - hostTransform: {fileID: 5706572166712672372} - manipulationType: -1 - twoHandedManipulationType: 1 - allowFarManipulation: 1 - useForcesForNearManipulation: 0 - oneHandRotationModeNear: 0 - oneHandRotationModeFar: 0 - releaseBehavior: 3 - smoothingFar: 1 - smoothingNear: 1 - moveLerpTime: 0.001 - rotateLerpTime: 0.001 - scaleLerpTime: 0.001 - onManipulationStarted: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 5706572166712672370} - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 2100000, guid: a50237e3265fe9149a16e889fd8d8b4c, - type: 2} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 5706572167046604137} - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 2100000, guid: a50237e3265fe9149a16e889fd8d8b4c, - type: 2} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 2568946665719251854} - m_MethodName: StartDrag - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - onManipulationEnded: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 5706572166712672370} - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 2100000, guid: 27a6136d64696da4eba1b89b3df8d3df, - type: 2} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 5706572167046604137} - m_MethodName: set_material - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 2100000, guid: 27a6136d64696da4eba1b89b3df8d3df, - type: 2} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Material, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 2568946665719251854} - m_MethodName: StopDrag - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - onHoverEntered: - m_PersistentCalls: - m_Calls: [] - onHoverExited: - m_PersistentCalls: - m_Calls: [] - translationElasticConfigurationObject: {fileID: 0} - rotationElasticConfigurationObject: {fileID: 0} - scaleElasticConfigurationObject: {fileID: 0} - translationElasticExtent: - StretchBounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - UseBounds: 0 - SnapPoints: [] - RepeatSnapPoints: 0 - SnapRadius: 0 - rotationElasticExtent: - SnapPoints: [] - RepeatSnapPoints: 0 - SnapRadius: 0 - scaleElasticExtent: - StretchBounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - UseBounds: 0 - SnapPoints: [] - RepeatSnapPoints: 0 - SnapRadius: 0 - elasticTypes: 0 ---- !u!114 &3816039547157159901 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5afd5316c63705643b3daba5a6e923bd, type: 3} - m_Name: - m_EditorClassIdentifier: - ShowTetherWhenManipulating: 0 - IsBoundsHandles: 0 ---- !u!114 &2050906356467104871 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 149fa3ae453128b41940b5caa905f8ff, type: 3} - m_Name: - m_EditorClassIdentifier: - handType: -1 - proximityType: 3 - constraintOnMovement: 2 - useLocalSpaceForConstraint: 0 ---- !u!114 &1964729684629225087 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572166712672382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5b3e6359c9750ad4fb8a05c9b8704d7b, type: 3} - m_Name: - m_EditorClassIdentifier: - handType: -1 - proximityType: -1 - constraintOnRotation: -1 - useLocalSpaceForConstraint: 1 ---- !u!1 &5706572167046604150 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5706572167046604139} - - component: {fileID: 5706572167046604138} - - component: {fileID: 5706572167046604137} - m_Layer: 0 - m_Name: Joystick - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5706572167046604139 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572167046604150} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -1.3329728, z: 0} - m_LocalScale: {x: 1.1584004, y: 1.1584004, z: 1.1584004} - m_Children: - - {fileID: 3440984159310550459} - m_Father: {fileID: 5706572166333173925} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5706572167046604138 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572167046604150} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &5706572167046604137 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572167046604150} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 27a6136d64696da4eba1b89b3df8d3df, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!1 &5706572167436493192 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5706572167436493193} - - component: {fileID: 5706572167436493196} - - component: {fileID: 5706572167436493195} - m_Layer: 0 - m_Name: Base - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5706572167436493193 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572167436493192} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -1.803, z: 0} - m_LocalScale: {x: 3.5250163, y: 0.96207446, z: 3.5250163} - m_Children: [] - m_Father: {fileID: 5706572166333173925} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5706572167436493196 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572167436493192} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &5706572167436493195 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572167436493192} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3b3d487d6722afe489a882284f787bbd, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!1 &5706572168053269082 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5706572168053269086} - - component: {fileID: 5706572168053269085} - - component: {fileID: 5706572168053269084} - m_Layer: 0 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5706572168053269086 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572168053269082} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -1.4256448, z: 0} - m_LocalScale: {x: 2.1113534, y: 0.30914524, z: 2.1113534} - m_Children: [] - m_Father: {fileID: 5706572166333173925} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5706572168053269085 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572168053269082} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &5706572168053269084 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5706572168053269082} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3b3d487d6722afe489a882284f787bbd, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab.meta deleted file mode 100644 index dcab08dde..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/Joystick/JoystickPrefab.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8bdd451919f46a94ba6d151b6d0cdffd -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard.meta deleted file mode 100644 index c47f4ad89..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f9aff1583c2eff84680731fe0f76c8af -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs deleted file mode 100644 index 554aa66de..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine.UI; -#if WINDOWS_UWP -using UnityEngine; -using UnityEngine.EventSystems; -using Microsoft.MixedReality.Toolkit.Input; -#endif - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// Base class explicitly launching Windows Mixed Reality's system keyboard for InputField and TMP_InputField - /// To be attached to the same GameObject with either of the components. - /// - /// - public abstract class KeyboardInputFieldBase : MixedRealityKeyboardBase -#if WINDOWS_UWP - , IDeselectHandler, IMixedRealityPointerHandler -#endif - where T : Selectable - { - [Experimental] - protected T inputField; - - void OnValidate() - { - inputField = GetComponent(); - - if (inputField != null) - { - DisableRaycastTarget(TextGraphic(inputField)); - DisableRaycastTarget(PlaceHolderGraphic(inputField)); - } - } - - private void DisableRaycastTarget(Graphic graphic) - { - if (graphic != null) - { - graphic.raycastTarget = false; - } - } - -#if WINDOWS_UWP - - protected virtual void Awake() - { - if ((inputField = GetComponent()) == null) - { - Destroy(this); - Debug.LogWarning($"There is no {typeof(T).ToString()} on GameObject {name}, removing this component"); - } - } - - #region IDeselectHandler implementation - - public void OnDeselect(BaseEventData eventData) => HideKeyboard(); - - #endregion - - #region IMixedRealityPointerHandler implementation - - public void OnPointerDown(MixedRealityPointerEventData eventData) { } - public void OnPointerDragged(MixedRealityPointerEventData eventData) { } - public void OnPointerUp(MixedRealityPointerEventData eventData) { } - public void OnPointerClicked(MixedRealityPointerEventData eventData) => ShowKeyboard(Text); - - #endregion - -#endif - protected abstract Graphic TextGraphic(T inputField); - protected abstract Graphic PlaceHolderGraphic(T inputField); - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs.meta deleted file mode 100644 index c52eba11c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/KeyboardInputFieldBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 04e587e42a18ca44ab441e4964718f23 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs deleted file mode 100644 index d6481a13b..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// Class that can launch and hide a system keyboard specifically for Windows Mixed Reality - /// devices (HoloLens 2, Windows Mixed Reality). - /// - /// Implements a workaround for UWP TouchScreenKeyboard bug which prevents - /// UWP keyboard from showing up again after it is closed. - /// Unity bug tracking the issue https://fogbugz.unity3d.com/default.asp?1137074_rttdnt8t1lccmtd3 - /// - [AddComponentMenu("Scripts/MRTK/Experimental/Keyboard/MixedRealityKeyboard")] - public class MixedRealityKeyboard : MixedRealityKeyboardBase - { - /// - /// Returns the committed text. - /// - public override string Text - { - get; - protected set; - } = string.Empty; - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs.meta deleted file mode 100644 index 805475ca9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboard.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bd7587e3eacaf31439947b67a41e58a8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs deleted file mode 100644 index 028bd5c63..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.Events; -#if WINDOWS_UWP -using Windows.UI.ViewManagement; -using Microsoft.MixedReality.Toolkit.Input; -using System.Collections; -#endif - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// Base class for objects that wish to launch and hide a system keyboard specifically for Windows Mixed Reality - /// devices (HoloLens 2, Windows Mixed Reality). - /// - /// Implements a workaround for UWP TouchScreenKeyboard bug which prevents - /// UWP keyboard from showing up again after it is closed. - /// Unity bug tracking the issue https://fogbugz.unity3d.com/default.asp?1137074_rttdnt8t1lccmtd3 - /// - public abstract class MixedRealityKeyboardBase : MonoBehaviour - { - #region Properties - - /// - /// Returns true if the keyboard is currently open. - /// - public bool Visible => state == KeyboardState.Showing; - - /// - /// Returns the index of the caret within the text. - /// - public int CaretIndex - { - get; - private set; - } = 0; - - [Experimental, SerializeField, Tooltip("Event which triggers when the keyboard is shown.")] - private UnityEvent onShowKeyboard = new UnityEvent(); - - /// - /// Event which triggers when the keyboard is shown. - /// - public UnityEvent OnShowKeyboard - { - get => onShowKeyboard; - set => onShowKeyboard = value; - } - - [SerializeField, Tooltip("Event which triggers when commit action is invoked on the keyboard. (Usually the return key.)")] - private UnityEvent onCommitText = new UnityEvent(); - - /// - /// Event which triggers when commit action is invoked on the keyboard. (Usually the return key.) - /// - public UnityEvent OnCommitText - { - get => onCommitText; - set => onCommitText = value; - } - - [SerializeField, Tooltip("Event which triggers when the keyboard is hidden.")] - private UnityEvent onHideKeyboard = new UnityEvent(); - - /// - /// Event which triggers when the keyboard is hidden. - /// - public UnityEvent OnHideKeyboard - { - get => onHideKeyboard; - set => onHideKeyboard = value; - } - - #endregion properties - - #region Private enums - - private enum KeyboardState - { - Hiding, - Hidden, - Showing, - } - - #endregion Private enums - - #region Private fields - - private KeyboardState state = KeyboardState.Hidden; - -#if WINDOWS_UWP - private InputPane inputPane = null; - - private TouchScreenKeyboard keyboard = null; - - private Coroutine stateUpdate; -#endif - - private bool multiLine = false; - - #endregion Private fields - - #region MonoBehaviour Implementation - -#if WINDOWS_UWP - /// - /// Initializes the UWP input pane. - /// - protected virtual void Start() - { - UnityEngine.WSA.Application.InvokeOnUIThread(() => - { - inputPane = InputPane.GetForCurrentView(); - inputPane.Hiding += OnInputPaneHiding; - inputPane.Showing += OnInputPaneShowing; - }, false); - } - - private void OnInputPaneHiding(InputPane inputPane, InputPaneVisibilityEventArgs args) - { - OnKeyboardHiding(); - } - - private void OnInputPaneShowing(InputPane inputPane, InputPaneVisibilityEventArgs args) - { - OnKeyboardShowing(); - } - - void OnDestroy() - { - UnityEngine.WSA.Application.InvokeOnUIThread(() => - { - inputPane = InputPane.GetForCurrentView(); - inputPane.Hiding -= OnInputPaneHiding; - inputPane.Showing -= OnInputPaneShowing; - }, false); - } - - private IEnumerator UpdateState() - { - while (true) - { - switch (state) - { - case KeyboardState.Showing: - { - UpdateText(); - } - break; - - case KeyboardState.Hiding: - { - onHideKeyboard?.Invoke(); - } - break; - } - - yield return null; - } - } -#endif // WINDOWS_UWP - - private void OnDisable() - { - HideKeyboard(); - } - - #endregion MonoBehaviour Implementation - - public abstract string Text { get; protected set; } - - /// - /// Closes the keyboard for user interaction. - /// - public void HideKeyboard() - { - if (state != KeyboardState.Hidden) - { - state = KeyboardState.Hidden; - } - -#if WINDOWS_UWP - UnityEngine.WSA.Application.InvokeOnUIThread(() => inputPane?.TryHide(), false); - - if (stateUpdate != null) - { - StopCoroutine(stateUpdate); - stateUpdate = null; - } -#endif - } - - /// - /// Opens the keyboard for user interaction. - /// - /// Initial text to populate the keyboard with. - /// True, if the return key should signal a newline rather than a commit. - public virtual void ShowKeyboard(string text = "", bool multiLine = false) - { - Text = text; - this.multiLine = multiLine; - - // 2019/08/14: We show the keyboard even when the keyboard is already visible because on HoloLens 1 - // and WMR the events OnKeyboardShowing and OnKeyboardHiding do not fire - // if (state == KeyboardState.Showing) - // { - // Debug.Log($"MixedRealityKeyboard.ShowKeyboard called but keyboard already visible."); - // return; - // } - - state = KeyboardState.Showing; - -#if WINDOWS_UWP - if (keyboard != null) - { - keyboard.text = Text; - UnityEngine.WSA.Application.InvokeOnUIThread(() => inputPane?.TryShow(), false); - } - else - { - keyboard = TouchScreenKeyboard.Open(Text, TouchScreenKeyboardType.Default, false, this.multiLine, false, false); - } - - onShowKeyboard?.Invoke(); - - if (stateUpdate == null) - { - stateUpdate = StartCoroutine(UpdateState()); - } -#endif - } - - /// - /// Removes the current text from the keyboard. - /// - public virtual void ClearKeyboardText() - { - Text = string.Empty; - CaretIndex = 0; -#if WINDOWS_UWP - if (keyboard != null) - { - keyboard.text = string.Empty; - } -#endif - } - -#if WINDOWS_UWP - private void UpdateText() - { - if (keyboard != null) - { - // Handle character deletion. - if (UnityEngine.Input.GetKeyDown(KeyCode.Delete) || - UnityEngine.Input.GetKeyDown(KeyCode.Backspace)) - { - if (CaretIndex > 0) - { - Text = Text.Remove(CaretIndex - 1, 1); - keyboard.text = Text; - --CaretIndex; - } - } - - // Add the new characters. - var characterDelta = keyboard.text.Length - Text.Length; - var caretWasAtEnd = IsPreviewCaretAtEnd(); - - if (characterDelta > 0) - { - var newCharacters = keyboard.text.Substring(Text.Length, characterDelta); - Text = Text.Insert(CaretIndex, newCharacters); - keyboard.text = Text; - - if (caretWasAtEnd) - { - MovePreviewCaretToEnd(); - } - else - { - CaretIndex += newCharacters.Length; - } - } - else if (characterDelta < 0) - { - // Take what is currently in the keyboard and move the caret to the end. - Text = keyboard.text; - MovePreviewCaretToEnd(); - } - - // Handle the arrow keys. - if (UnityEngine.Input.GetKeyDown(KeyCode.LeftArrow) || - UnityEngine.Input.GetKey(KeyCode.LeftArrow)) - { - CaretIndex = Mathf.Clamp(CaretIndex - 1, 0, Text.Length); - } - - if (UnityEngine.Input.GetKeyDown(KeyCode.RightArrow) || - UnityEngine.Input.GetKey(KeyCode.RightArrow)) - { - CaretIndex = Mathf.Clamp(CaretIndex + 1, 0, Text.Length); - } - - // Handle commit via the return key. - if (!multiLine) - { - if (UnityEngine.Input.GetKeyDown(KeyCode.Return)) - { - onCommitText?.Invoke(); - - HideKeyboard(); - } - } - } - } - - private bool IsPreviewCaretAtEnd() => CaretIndex == Text.Length; - - private void MovePreviewCaretToEnd() => CaretIndex = Text.Length; - - private void OnKeyboardHiding() - { - if (state != KeyboardState.Hidden) - { - state = KeyboardState.Hiding; - } - } - - private void OnKeyboardShowing() { } -#endif - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs.meta deleted file mode 100644 index 0e1b809ae..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/MixedRealityKeyboardBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4889bdd8237266a46acf2a42b20c359d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs.meta deleted file mode 100644 index e71d0b49c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: dc7295b7afbc1a849a755765e2aa57f9 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab deleted file mode 100644 index 5a2205c00..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab +++ /dev/null @@ -1,551 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &2093565321186540842 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2093565321186540845} - - component: {fileID: 2093565321186540847} - - component: {fileID: 2093565321186540844} - m_Layer: 5 - m_Name: Placeholder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2093565321186540845 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565321186540842} - 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_Children: [] - m_Father: {fileID: 2093565322070333480} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2093565321186540847 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565321186540842} - m_CullTransparentMesh: 0 ---- !u!114 &2093565321186540844 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565321186540842} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Enter text... - 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: 2133996082 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} - 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 14 - m_fontSizeBase: 14 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 2 - m_textAlignment: 257 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2093565321186540844} - characterCount: 13 - spriteCount: 0 - spaceCount: 1 - wordCount: 2 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &2093565322070333481 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2093565322070333480} - - component: {fileID: 2093565322070333483} - m_Layer: 5 - m_Name: Text Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2093565322070333480 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322070333481} - 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_Children: - - {fileID: 2093565321186540845} - - {fileID: 2093565322100020844} - m_Father: {fileID: 2093565322073310842} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.5} - m_SizeDelta: {x: -20, y: -13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2093565322070333483 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322070333481} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -146154839, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &2093565322073310843 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2093565322073310842} - - component: {fileID: 2093565322073310846} - - component: {fileID: 2093565322073310847} - - component: {fileID: 2093565322073310844} - - component: {fileID: 2093565322073310845} - m_Layer: 5 - m_Name: MRKeyboardInputField (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2093565322073310842 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322073310843} - 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_Children: - - {fileID: 2093565322070333480} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 160, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2093565322073310846 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322073310843} - m_CullTransparentMesh: 0 ---- !u!114 &2093565322073310847 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322073310843} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &2093565322073310844 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322073310843} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 2093565322073310847} - m_TextViewport: {fileID: 2093565322070333480} - m_TextComponent: {fileID: 2093565322100020847} - m_Placeholder: {fileID: 2093565321186540844} - m_VerticalScrollbar: {fileID: 0} - m_VerticalScrollbarEventHandler: {fileID: 0} - m_ScrollSensitivity: 1 - m_ContentType: 0 - m_InputType: 0 - m_AsteriskChar: 42 - m_KeyboardType: 0 - m_LineType: 0 - m_HideMobileInput: 0 - m_HideSoftKeyboard: 0 - m_CharacterValidation: 0 - m_RegexValue: - m_GlobalPointSize: 14 - m_CharacterLimit: 0 - m_OnEndEdit: - m_PersistentCalls: - m_Calls: [] - m_OnSubmit: - m_PersistentCalls: - m_Calls: [] - m_OnSelect: - m_PersistentCalls: - m_Calls: [] - m_OnDeselect: - m_PersistentCalls: - m_Calls: [] - m_OnTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnEndTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_OnTouchScreenKeyboardStatusChanged: - m_PersistentCalls: - m_Calls: [] - m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_CustomCaretColor: 0 - m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: - m_CaretBlinkRate: 0.85 - m_CaretWidth: 1 - m_ReadOnly: 0 - m_RichText: 1 - m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_OnFocusSelectAll: 1 - m_ResetOnDeActivation: 1 - m_RestoreOriginalTextOnEscape: 1 - m_isRichTextEditingAllowed: 0 - m_LineLimit: 0 - m_InputValidator: {fileID: 0} ---- !u!114 &2093565322073310845 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322073310843} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: cac44176376ab544f9ca44f05c9b9091, type: 3} - m_Name: - m_EditorClassIdentifier: - onShowKeyboard: - m_PersistentCalls: - m_Calls: [] - onCommitText: - m_PersistentCalls: - m_Calls: [] - onHideKeyboard: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &2093565322100020845 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2093565322100020844} - - component: {fileID: 2093565322100020846} - - component: {fileID: 2093565322100020847} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2093565322100020844 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322100020845} - 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_Children: [] - m_Father: {fileID: 2093565322070333480} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2093565322100020846 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322100020845} - m_CullTransparentMesh: 0 ---- !u!114 &2093565322100020847 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2093565322100020845} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: "\u200B" - 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: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 14 - m_fontSizeBase: 14 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 257 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2093565322100020847} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab.meta deleted file mode 100644 index f1b535f6f..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_TMP.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 4daceed0c4c3c09468897226b8717688 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab deleted file mode 100644 index 05e8b60b0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab +++ /dev/null @@ -1,313 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &6218909165065786918 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6218909165065786919} - - component: {fileID: 6218909165065786917} - - component: {fileID: 6218909165065786916} - m_Layer: 5 - m_Name: Placeholder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6218909165065786919 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165065786918} - 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_Children: [] - m_Father: {fileID: 6218909165142131981} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.5} - m_SizeDelta: {x: -20, y: -13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6218909165065786917 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165065786918} - m_CullTransparentMesh: 0 ---- !u!114 &6218909165065786916 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165065786918} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 - m_FontStyle: 2 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 40 - m_Alignment: 0 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Enter text... ---- !u!1 &6218909165142131980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6218909165142131981} - - component: {fileID: 6218909165142131977} - - component: {fileID: 6218909165142131976} - - component: {fileID: 6218909165142131979} - - component: {fileID: 6218909165142131978} - m_Layer: 5 - m_Name: MRKeyboardInputField - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6218909165142131981 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165142131980} - 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_Children: - - {fileID: 6218909165065786919} - - {fileID: 6218909165430442796} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 160, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6218909165142131977 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165142131980} - m_CullTransparentMesh: 0 ---- !u!114 &6218909165142131976 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165142131980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &6218909165142131979 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165142131980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 6218909165142131976} - m_TextComponent: {fileID: 6218909165430442797} - m_Placeholder: {fileID: 6218909165065786916} - m_ContentType: 0 - m_InputType: 0 - m_AsteriskChar: 42 - m_KeyboardType: 0 - m_LineType: 0 - m_HideMobileInput: 0 - m_CharacterValidation: 0 - m_CharacterLimit: 0 - m_OnEndEdit: - m_PersistentCalls: - m_Calls: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_CustomCaretColor: 0 - m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: - m_CaretBlinkRate: 0.85 - m_CaretWidth: 1 - m_ReadOnly: 0 ---- !u!114 &6218909165142131978 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165142131980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 22217b78c404b3d41816e937276869ab, type: 3} - m_Name: - m_EditorClassIdentifier: - onShowKeyboard: - m_PersistentCalls: - m_Calls: [] - onCommitText: - m_PersistentCalls: - m_Calls: [] - onHideKeyboard: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &6218909165430442799 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6218909165430442796} - - component: {fileID: 6218909165430442794} - - component: {fileID: 6218909165430442797} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6218909165430442796 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165430442799} - 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_Children: [] - m_Father: {fileID: 6218909165142131981} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.5} - m_SizeDelta: {x: -20, y: -13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6218909165430442794 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165430442799} - m_CullTransparentMesh: 0 ---- !u!114 &6218909165430442797 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6218909165430442799} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 40 - m_Alignment: 0 - m_AlignByGeometry: 0 - m_RichText: 0 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab.meta deleted file mode 100644 index c5ae492c5..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/Prefabs/MRKeyboardInputField_UGUI.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 6c3c43162542fa74db129b79265e6824 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md deleted file mode 100644 index 8c948c6fc..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md +++ /dev/null @@ -1,24 +0,0 @@ -# Mixed Reality and HoloLens Keyboard Helper Classes - -MRTK provides several experimental helper components to assist with launching and reading text from the [System Keyboard](../../../../../Documentation/README_SystemKeyboard.md). - -Note that the system keyboard will behave according to the target platform's capabilities, for example the keyboard on HoloLens 2 would support direct hand interactions, while the keyboard on HoloLens (1st gen) would support GGV[1](https://docs.microsoft.com/windows/mixed-reality/gaze). Additionally, the system keyboard will not show up when performing [Unity Remoting](../../../../../Documentation/Tools/HolographicRemoting.md) from the editor to a HoloLens. - - -## MixedRealityKeyboard -[`MixedRealityKeyboard`](xref:Microsoft.MixedReality.Toolkit.Experimental.UI.MixedRealityKeyboard) is a component that provides methods for launching and closing a system keyboard, as well as interacting with text entered by the keyboard. - -### How to Use -1. Attach the [`MixedRealityKeyboard`](xref:Microsoft.MixedReality.Toolkit.Experimental.UI.MixedRealityKeyboard) component to any object. -2. Call `Show()` `Hide()` to show and hide the keyboard, and handle the `OnShowKeyboard`, `OnHideKeyboard` and `OnCommitText` events to handle when the keyboard is shown, hidden, and when the enter key is pressed. - -## Input fields TMP_KeyboardInputField, and UI_KeyboardInputField -The [`TMP_KeyboardInputField`](xref:Microsoft.MixedReality.Toolkit.Experimental.UI.TMP_KeyboardInputField) and [`UI_KeyboardInputField`](xref:Microsoft.MixedReality.Toolkit.Experimental.UI.UI_KeyboardInputField) classes are components that can be added to text input fields to automatically invoke the system keyboard when clicked and update the text input field contents as the user enters text. - -### How to use -1. Create an input field for either UnityUI or TextMeshPro. -2. Add the corresponding [`TMP_KeyboardInputField`](xref:Microsoft.MixedReality.Toolkit.Experimental.UI.TMP_KeyboardInputField) or [`UI_KeyboardInputField`](xref:Microsoft.MixedReality.Toolkit.Experimental.UI.UI_KeyboardInputField) component to the input field game object. - -Prefabs for both UnityUI input fields and TextMeshPro (TMPro) input fields are available at "Assets\MRTK\Experimental\MixedRealityKeyboard\Prefabs" - -An example of how the to use TMP_KeyboardInputField and UI_KeyboardInputField is at "Assets\MRTK\Examples\Experimental\MixedRealityKeyboard\Scenes\MixedRealityKeyboardExample.unity" diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md.meta deleted file mode 100644 index c2ea41837..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/README_MixedRealityKeyboard.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 16c987f8a05c63742b33e94d248a99bd -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs deleted file mode 100644 index 1b18c9952..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.UI; -using TMPro; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// A component that can be added to TMP_InputField to make them work with Windows Mixed Reality's system keyboard - /// - [RequireComponent(typeof(TMP_InputField))] - [AddComponentMenu("Scripts/MRTK/Experimental/Keyboard/TMP_KeyboardInputField")] - public class TMP_KeyboardInputField : KeyboardInputFieldBase - { - public override string Text { get => inputField.text; protected set => inputField.text = value; } - protected override Graphic TextGraphic(TMP_InputField inputField) => inputField.textComponent; - protected override Graphic PlaceHolderGraphic(TMP_InputField inputField) => inputField.placeholder; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs.meta deleted file mode 100644 index 529293d14..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cac44176376ab544f9ca44f05c9b9091 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs deleted file mode 100644 index 8fcb6780d..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.UI; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// A component that can be added to InputField to make them work with Windows Mixed Reality's system keyboard - /// - [RequireComponent(typeof(InputField))] - [AddComponentMenu("Scripts/MRTK/Experimental/Keyboard/UI_KeyboardInputField")] - public class UI_KeyboardInputField : KeyboardInputFieldBase - { - public override string Text { get => inputField.text; protected set => inputField.text = value; } - protected override Graphic TextGraphic(InputField inputField) => inputField.textComponent; - protected override Graphic PlaceHolderGraphic(InputField inputField) => inputField.placeholder; - } -} \ No newline at end of file diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs.meta deleted file mode 100644 index 47e95a450..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 22217b78c404b3d41816e937276869ab -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview.meta deleted file mode 100644 index dbe16ca37..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 66acc6e75b98d9744ab28220221b02d7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials.meta deleted file mode 100644 index f668e59fd..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0419c82eb333ef746828e1faa16653ab -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat deleted file mode 100644 index ae7449ed6..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat +++ /dev/null @@ -1,172 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: MixedRealityKeyboardPreviewBackPlate - m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3} - m_ShaderKeywords: _BORDER_LIGHT _BORDER_LIGHT_REPLACES_ALBEDO _DISABLE_ALBEDO_MAP - _IGNORE_Z_SCALE _METALLIC_TEXTURE_ALBEDO_CHANNEL_A _ROUND_CORNERS - m_LightmapFlags: 4 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2000 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ChannelMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _IridescentSpectrumMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _NormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlbedoAlphaMode: 1 - - _AlbedoAssignedAtRuntime: 0 - - _BlendOp: 0 - - _BlendedClippingWidth: 1 - - _BorderLight: 1 - - _BorderLightOpaque: 0 - - _BorderLightOpaqueAlpha: 1 - - _BorderLightReplacesAlbedo: 1 - - _BorderLightUsesHoverColor: 0 - - _BorderMinValue: 0.6 - - _BorderWidth: 0.04 - - _BumpScale: 1 - - _ClippingBorder: 0 - - _ClippingBorderWidth: 0.025 - - _ColorWriteMask: 15 - - _CullMode: 0 - - _CustomMode: 0 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DirectionalLight: 0 - - _DstBlend: 0 - - _EdgeSmoothingValue: 0.0002 - - _EnableChannelMap: 0 - - _EnableEmission: 0 - - _EnableHoverColorOverride: 0 - - _EnableLocalSpaceTriplanarMapping: 0 - - _EnableNormalMap: 0 - - _EnableProximityLightColorOverride: 0 - - _EnableTriplanarMapping: 0 - - _EnvironmentColorIntensity: 0.5 - - _EnvironmentColorThreshold: 1.5 - - _EnvironmentColoring: 0 - - _FadeBeginDistance: 0.85 - - _FadeCompleteDistance: 0.5 - - _FadeMinValue: 0 - - _FluentLightIntensity: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _HoverLight: 0 - - _IgnoreZScale: 1 - - _InnerGlow: 0 - - _InnerGlowPower: 4 - - _InstancedColor: 0 - - _Iridescence: 0 - - _IridescenceAngle: -0.78 - - _IridescenceIntensity: 0.75 - - _IridescenceThreshold: 0.05 - - _Metallic: 0 - - _Mode: 0 - - _NearLightFade: 0 - - _NearPlaneFade: 0 - - _NormalMapScale: 1 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _ProximityLight: 0 - - _ProximityLightSubtractive: 0 - - _ProximityLightTwoSided: 0 - - _Reflections: 0 - - _Refraction: 0 - - _RefractiveIndex: 1.1 - - _RenderQueueOverride: -1 - - _RimLight: 0 - - _RimPower: 5.83 - - _RoundCornerMargin: 0 - - _RoundCornerRadius: 0.5 - - _RoundCorners: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 0 - - _SphericalHarmonics: 0 - - _SrcBlend: 1 - - _Stencil: 0 - - _StencilComparison: 0 - - _StencilOperation: 0 - - _StencilReference: 0 - - _TriplanarMappingBlendSharpness: 4 - - _UVSec: 0 - - _VertexColors: 0 - - _VertexExtrusion: 0 - - _VertexExtrusionSmoothNormals: 0 - - _VertexExtrusionValue: 0 - - _ZOffsetFactor: 0 - - _ZOffsetUnits: 0 - - _ZTest: 4 - - _ZWrite: 1 - m_Colors: - - _ClippingBorderColor: {r: 1, g: 0.2, b: 0, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} - - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1} - - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1} - - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1} - - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 0.566} - - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.522} - - _ProximityLightCenterColorOverride: {r: 1, g: 0, b: 0, a: 0} - - _ProximityLightMiddleColorOverride: {r: 0, g: 1, b: 0, a: 0.5} - - _ProximityLightOuterColorOverride: {r: 0, g: 0, b: 1, a: 1} - - _RimColor: {r: 1, g: 1, b: 1, a: 0.497} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat.meta deleted file mode 100644 index d8a901a79..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewBackPlate.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d168438bf6820144983a2ab07904ac24 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 2100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat deleted file mode 100644 index 77d51e119..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat +++ /dev/null @@ -1,191 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: MixedRealityKeyboardPreviewButtonBackPlate - m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3} - m_ShaderKeywords: _BORDER_LIGHT_REPLACES_ALBEDO _DISABLE_ALBEDO_MAP _IGNORE_Z_SCALE - _METALLIC_TEXTURE_ALBEDO_CHANNEL_A _ROUND_CORNERS - m_LightmapFlags: 4 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2000 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ChannelMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _IridescentSpectrumMap: - m_Texture: {fileID: 2800000, guid: 86609bdc7f4c43d42991f96373fb8081, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _LightMapTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _NormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlbedoAlphaMode: 1 - - _AlbedoAlphaSmoothness: 0 - - _AlbedoAssignedAtRuntime: 0 - - _BlendOp: 0 - - _BlendedClippingWidth: 1 - - _BorderLight: 0 - - _BorderLightOpaque: 0 - - _BorderLightOpaqueAlpha: 1 - - _BorderLightReplacesAlbedo: 1 - - _BorderLightUsesHoverColor: 0 - - _BorderMinValue: 0.6 - - _BorderWidth: 0.04 - - _BorderWidthHorizontal: 0.1 - - _BorderWidthVertical: 0.1 - - _BumpScale: 1 - - _ClippingBorder: 0 - - _ClippingBorderWidth: 0.025 - - _ClippingBox: 0 - - _ClippingPlane: 0 - - _ClippingPlaneBorder: 0 - - _ClippingPlaneBorderWidth: 0.025 - - _ClippingSphere: 0 - - _ColorWriteMask: 15 - - _CullMode: 0 - - _CustomMode: 0 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DirectionalLight: 0 - - _DstBlend: 0 - - _EdgeSmoothingValue: 0.0002 - - _EnableChannelMap: 0 - - _EnableEmission: 0 - - _EnableHoverColorOpaqueOverride: 0 - - _EnableHoverColorOverride: 0 - - _EnableLightMap: 0 - - _EnableLocalSpaceTriplanarMapping: 0 - - _EnableNormalMap: 0 - - _EnableProximityLightColorOverride: 0 - - _EnableTriplanarMapping: 0 - - _EnvironmentColorIntensity: 0.5 - - _EnvironmentColorThreshold: 1.5 - - _EnvironmentColoring: 0 - - _FadeBeginDistance: 0.85 - - _FadeCompleteDistance: 0.5 - - _FadeMinValue: 0 - - _FluentLightIntensity: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _HoverLight: 0 - - _HoverLightOpaque: 0 - - _IgnoreZScale: 1 - - _InnerGlow: 0 - - _InnerGlowPower: 4 - - _InstancedColor: 0 - - _Iridescence: 0 - - _IridescenceAngle: -0.78 - - _IridescenceIntensity: 0.75 - - _IridescenceThreshold: 0.05 - - _Metallic: 0 - - _Mode: 0 - - _NearLightFade: 0 - - _NearPlaneFade: 0 - - _NormalMapScale: 1 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _ProximityLight: 0 - - _ProximityLightSubtractive: 0 - - _ProximityLightTwoSided: 0 - - _Reflections: 0 - - _Refraction: 0 - - _RefractiveIndex: 1.1 - - _RenderQueueOverride: -1 - - _RimLight: 0 - - _RimPower: 5.83 - - _RoundCornerMargin: 0 - - _RoundCornerRadius: 0.5 - - _RoundCorners: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 0 - - _SphericalHarmonics: 0 - - _SrcBlend: 1 - - _Stencil: 0 - - _StencilComparison: 0 - - _StencilOperation: 0 - - _StencilReference: 0 - - _TriplanarMappingBlendSharpness: 4 - - _UVSec: 0 - - _VertexColors: 0 - - _VertexExtrusion: 0 - - _VertexExtrusionSmoothNormals: 0 - - _VertexExtrusionValue: 0 - - _ZOffsetFactor: 0 - - _ZOffsetUnits: 0 - - _ZTest: 4 - - _ZWrite: 1 - m_Colors: - - _ClipPlane: {r: 0, g: 1, b: 0, a: 0} - - _ClippingBorderColor: {r: 1, g: 0.2, b: 0, a: 1} - - _ClippingPlaneBorderColor: {r: 1, g: 0.2, b: 0, a: 1} - - _Color: {r: 0.6, g: 0.6, b: 0.6, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} - - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1} - - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1} - - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1} - - _HoverColor: {r: 1, g: 0, b: 0, a: 1} - - _HoverColorOpaqueOverride: {r: 1, g: 1, b: 1, a: 1} - - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 0.566} - - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.522} - - _ProximityLightCenterColorOverride: {r: 1, g: 0, b: 0, a: 0} - - _ProximityLightMiddleColorOverride: {r: 0, g: 1, b: 0, a: 0.5} - - _ProximityLightOuterColorOverride: {r: 0, g: 0, b: 1, a: 1} - - _RimColor: {r: 1, g: 1, b: 1, a: 0.497} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat.meta deleted file mode 100644 index 4afa9a64c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewButtonBackPlate.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6f99b8c3ebc31c942a5af2e66bfa5950 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 2100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat deleted file mode 100644 index 018809ed4..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat +++ /dev/null @@ -1,171 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: MixedRealityKeyboardPreviewCaret - m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3} - m_ShaderKeywords: _ALPHABLEND_ON _DISABLE_ALBEDO_MAP _IGNORE_Z_SCALE _ROUND_CORNERS - m_LightmapFlags: 4 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: - RenderType: Fade - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ChannelMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _IridescentSpectrumMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _NormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlbedoAlphaMode: 0 - - _AlbedoAssignedAtRuntime: 0 - - _BlendOp: 0 - - _BlendedClippingWidth: 0 - - _BorderLight: 0 - - _BorderLightOpaque: 0 - - _BorderLightOpaqueAlpha: 1 - - _BorderLightReplacesAlbedo: 0 - - _BorderLightUsesHoverColor: 0 - - _BorderMinValue: 0.1 - - _BorderWidth: 0.1 - - _BumpScale: 1 - - _ClippingBorder: 0 - - _ClippingBorderWidth: 0.025 - - _ColorWriteMask: 15 - - _CullMode: 2 - - _CustomMode: 2 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DirectionalLight: 0 - - _DstBlend: 10 - - _EdgeSmoothingValue: 0.00008 - - _EnableChannelMap: 0 - - _EnableEmission: 0 - - _EnableHoverColorOverride: 0 - - _EnableLocalSpaceTriplanarMapping: 0 - - _EnableNormalMap: 0 - - _EnableProximityLightColorOverride: 0 - - _EnableTriplanarMapping: 0 - - _EnvironmentColorIntensity: 0.5 - - _EnvironmentColorThreshold: 1.5 - - _EnvironmentColoring: 0 - - _FadeBeginDistance: 0.85 - - _FadeCompleteDistance: 0.5 - - _FadeMinValue: 0 - - _FluentLightIntensity: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _HoverLight: 0 - - _IgnoreZScale: 1 - - _InnerGlow: 0 - - _InnerGlowPower: 4 - - _InstancedColor: 0 - - _Iridescence: 0 - - _IridescenceAngle: -0.78 - - _IridescenceIntensity: 0.5 - - _IridescenceThreshold: 0.05 - - _Metallic: 0 - - _Mode: 3 - - _NearLightFade: 0 - - _NearPlaneFade: 0 - - _NormalMapScale: 1 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _ProximityLight: 0 - - _ProximityLightSubtractive: 0 - - _ProximityLightTwoSided: 0 - - _Reflections: 0 - - _Refraction: 0 - - _RefractiveIndex: 0 - - _RenderQueueOverride: -1 - - _RimLight: 0 - - _RimPower: 0.25 - - _RoundCornerMargin: 0.123 - - _RoundCornerRadius: 0.5 - - _RoundCorners: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 0 - - _SphericalHarmonics: 0 - - _SrcBlend: 1 - - _Stencil: 0 - - _StencilComparison: 0 - - _StencilOperation: 0 - - _StencilReference: 0 - - _TriplanarMappingBlendSharpness: 4 - - _UVSec: 0 - - _VertexColors: 0 - - _VertexExtrusion: 0 - - _VertexExtrusionSmoothNormals: 0 - - _VertexExtrusionValue: 0 - - _ZOffsetFactor: 0 - - _ZOffsetUnits: 0 - - _ZTest: 4 - - _ZWrite: 0 - m_Colors: - - _ClippingBorderColor: {r: 1, g: 0.2, b: 0, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} - - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1} - - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1} - - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1} - - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1} - - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75} - - _ProximityLightCenterColorOverride: {r: 1, g: 0, b: 0, a: 0} - - _ProximityLightMiddleColorOverride: {r: 0, g: 1, b: 0, a: 0.5} - - _ProximityLightOuterColorOverride: {r: 0, g: 0, b: 1, a: 1} - - _RimColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat.meta deleted file mode 100644 index c54911bb7..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewCaret.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1427cd2949bb6c94ca4958f6da5d9826 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 2100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat deleted file mode 100644 index 14478efb9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat +++ /dev/null @@ -1,171 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: MixedRealityKeyboardPreviewTextRect - m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3} - m_ShaderKeywords: _DISABLE_ALBEDO_MAP _IGNORE_Z_SCALE _ROUND_CORNERS - m_LightmapFlags: 4 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2000 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ChannelMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _IridescentSpectrumMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _NormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _AlbedoAlphaMode: 0 - - _AlbedoAssignedAtRuntime: 0 - - _BlendOp: 0 - - _BlendedClippingWidth: 1 - - _BorderLight: 0 - - _BorderLightOpaque: 0 - - _BorderLightOpaqueAlpha: 1 - - _BorderLightReplacesAlbedo: 0 - - _BorderLightUsesHoverColor: 0 - - _BorderMinValue: 0.1 - - _BorderWidth: 0.1 - - _BumpScale: 1 - - _ClippingBorder: 0 - - _ClippingBorderWidth: 0.025 - - _ColorWriteMask: 15 - - _CullMode: 2 - - _CustomMode: 0 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DirectionalLight: 0 - - _DstBlend: 0 - - _EdgeSmoothingValue: 0.002 - - _EnableChannelMap: 0 - - _EnableEmission: 0 - - _EnableHoverColorOverride: 0 - - _EnableLocalSpaceTriplanarMapping: 0 - - _EnableNormalMap: 0 - - _EnableProximityLightColorOverride: 0 - - _EnableTriplanarMapping: 0 - - _EnvironmentColorIntensity: 0.5 - - _EnvironmentColorThreshold: 1.5 - - _EnvironmentColoring: 0 - - _FadeBeginDistance: 0.85 - - _FadeCompleteDistance: 0.5 - - _FadeMinValue: 0 - - _FluentLightIntensity: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _HoverLight: 0 - - _IgnoreZScale: 1 - - _InnerGlow: 0 - - _InnerGlowPower: 4 - - _InstancedColor: 0 - - _Iridescence: 0 - - _IridescenceAngle: -0.78 - - _IridescenceIntensity: 0.5 - - _IridescenceThreshold: 0.05 - - _Metallic: 0 - - _Mode: 0 - - _NearLightFade: 0 - - _NearPlaneFade: 0 - - _NormalMapScale: 1 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _ProximityLight: 0 - - _ProximityLightSubtractive: 0 - - _ProximityLightTwoSided: 0 - - _Reflections: 0 - - _Refraction: 0 - - _RefractiveIndex: 0 - - _RenderQueueOverride: -1 - - _RimLight: 0 - - _RimPower: 0.25 - - _RoundCornerMargin: 0.01 - - _RoundCornerRadius: 0.1 - - _RoundCorners: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 0 - - _SphericalHarmonics: 0 - - _SrcBlend: 1 - - _Stencil: 0 - - _StencilComparison: 0 - - _StencilOperation: 0 - - _StencilReference: 0 - - _TriplanarMappingBlendSharpness: 4 - - _UVSec: 0 - - _VertexColors: 0 - - _VertexExtrusion: 0 - - _VertexExtrusionSmoothNormals: 0 - - _VertexExtrusionValue: 0 - - _ZOffsetFactor: 0 - - _ZOffsetUnits: 0 - - _ZTest: 4 - - _ZWrite: 1 - m_Colors: - - _ClippingBorderColor: {r: 1, g: 0.2, b: 0, a: 1} - - _Color: {r: 0.6, g: 0.6, b: 0.6, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} - - _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1} - - _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1} - - _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1} - - _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1} - - _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75} - - _ProximityLightCenterColorOverride: {r: 1, g: 0, b: 0, a: 0} - - _ProximityLightMiddleColorOverride: {r: 0, g: 1, b: 0, a: 0.5} - - _ProximityLightOuterColorOverride: {r: 0, g: 0, b: 1, a: 1} - - _RimColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat.meta deleted file mode 100644 index 7df994bc1..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Materials/MixedRealityKeyboardPreviewTextRect.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1fa0912959595a142b2cbae1684e0d38 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 2100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs deleted file mode 100644 index 5e54b73dc..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs +++ /dev/null @@ -1,213 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Microsoft.MixedReality.Toolkit.Experimental.Utilities; -using Microsoft.MixedReality.Toolkit.Utilities.Solvers; -using System.Collections; -using TMPro; -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// Component to manage the visuals for a Mixed Reality Keyboard Preview window. - /// - [AddComponentMenu("Scripts/MRTK/SDK/MixedRealityKeyboardPreview")] - public class MixedRealityKeyboardPreview : MonoBehaviour - { - [SerializeField, Tooltip("The Text Mesh Pro text field to display the preview text.")] - private TextMeshPro previewText = null; - - /// - /// The Text Mesh Pro text field to display the preview text. - /// - public TextMeshPro PreviewText - { - get { return previewText; } - set - { - if (previewText != value) - { - previewText = value; - - if (previewText != null) - { - previewText.text = Text; - - UpdateCaret(); - } - } - } - } - - [SerializeField, Tooltip("The transform to move based on the preview caret.")] - private Transform previewCaret = null; - - /// - /// The transform to move based on the preview caret. - /// - public Transform PreviewCaret - { - get { return previewCaret; } - set - { - if (previewCaret != value) - { - previewCaret = value; - - UpdateCaret(); - } - } - } - - private string text = string.Empty; - - /// - /// The text to display in the preview. - /// - public string Text - { - get { return text; } - set - { - if (value != text) - { - text = value; - - if (PreviewText != null) - { - PreviewText.text = text; - PreviewText.ForceMeshUpdate(); - } - - UpdateCaret(); - } - } - } - - private int caretIndex = 0; - - /// - /// Where the caret lies within the text. - /// - public int CaretIndex - { - get { return caretIndex; } - set - { - if (value != caretIndex) - { - caretIndex = value; - - UpdateCaret(); - } - } - } - - /// - /// Utility method which can be used to toggle if solvers update. - /// - public void ToggleSolvers() - { - var solverHandler = GetComponent(); - - if (solverHandler != null) - { - solverHandler.UpdateSolvers = !solverHandler.UpdateSolvers; - - if (solverHandler.UpdateSolvers) - { - ApplyShellSolverParameters(); - } - } - } - - #region MonoBehaviour Implementation - - private void OnEnable() - { - StartCoroutine(BlinkCaret()); - } - - private void Start() - { - ApplyShellSolverParameters(); - } - - #endregion MonoBehaviour Implementation - - private void UpdateCaret() - { - caretIndex = Mathf.Clamp(caretIndex, 0, string.IsNullOrEmpty(text) ? 0 : text.Length); - - if (previewCaret != null) - { - if (caretIndex == 0) - { - previewCaret.transform.localPosition = Vector3.zero; - } - else - { - Vector3 localPosition; - - if (caretIndex == text.Length) - { - localPosition = PreviewText.textInfo.characterInfo[caretIndex - 1].topRight; - } - else - { - localPosition = PreviewText.textInfo.characterInfo[caretIndex].topLeft; - } - - localPosition.y = 0.0f; - localPosition.z = 0.0f; - - var position = PreviewText.transform.TransformPoint(localPosition); - previewCaret.transform.position = position; - } - } - } - - private IEnumerator BlinkCaret() - { - while (previewCaret != null) - { - previewCaret.gameObject.SetActive(!previewCaret.gameObject.activeSelf); - - // The default Window's text caret blinks every 530 milliseconds. - const float blinkTime = 0.53f; - yield return new WaitForSeconds(blinkTime); - } - } - - private void ApplyShellSolverParameters() - { - var solver = GetComponent(); - - if (solver != null) - { - // Position the keyboard in a comfortable place with a fixed pitch relative to the forward direction. - var solverHandler = solver.GetComponent(); - - if (solverHandler != null) - { - var forward = solverHandler.TransformTarget != null ? solverHandler.TransformTarget.forward : Vector3.forward; - var right = solverHandler.TransformTarget != null ? solverHandler.TransformTarget.right : Vector3.right; - - // Calculate the initial view pitch. - var pitchOffsetDegrees = Vector3.SignedAngle(new Vector3(forward.x, 0.0f, forward.z), forward, right); - - const float shellPitchOffset = 5.0f; - pitchOffsetDegrees += shellPitchOffset; - - const float shellPitchMin = -50.0f; - const float shellPitchMax = 50.0f; - pitchOffsetDegrees = Mathf.Clamp(pitchOffsetDegrees, shellPitchMin, shellPitchMax); - - solver.PitchOffset = pitchOffsetDegrees; - solver.SolverUpdate(); - } - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs.meta deleted file mode 100644 index 0577601ff..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/MixedRealityKeyboardPreview.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9a7474a8d648d9242809a1e746e95c91 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs.meta deleted file mode 100644 index 1ef268e8f..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0304686f660f72842926a4d011edb644 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab deleted file mode 100644 index 365c507c4..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab +++ /dev/null @@ -1,1027 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &183941760938112068 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2330731296467722998} - - component: {fileID: 1822919828956948948} - - component: {fileID: 8726814150827023740} - - component: {fileID: 6797851686308177208} - m_Layer: 0 - m_Name: TextRect - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2330731296467722998 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 183941760938112068} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.05, y: 0, z: -0.01} - m_LocalScale: {x: 0.75, y: 0.7, z: 0.2} - m_Children: [] - m_Father: {fileID: 8910712925943562261} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1822919828956948948 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 183941760938112068} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &8726814150827023740 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 183941760938112068} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_MotionVectors: 2 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 1fa0912959595a142b2cbae1684e0d38, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!114 &6797851686308177208 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 183941760938112068} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 75fa637a68e599040bdd08afc22b3bfa, type: 3} - m_Name: - m_EditorClassIdentifier: - renderers: - - {fileID: 3490193353260647841} - clippingSide: -1 - useOnPreRender: 0 ---- !u!1 &241817367976372379 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8507539107667219505} - m_Layer: 0 - m_Name: PreviewCaretRoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8507539107667219505 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 241817367976372379} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.065, y: 0, z: -0.0011} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3676246485763817785} - m_Father: {fileID: 6901291719397127952} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2973922908821219074 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 654040154712435274} - - component: {fileID: 3478792477868216622} - - component: {fileID: 6292870745760616320} - - component: {fileID: 2555379631864223453} - - component: {fileID: 470763197332114876} - m_Layer: 0 - m_Name: PreviewText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &654040154712435274 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2973922908821219074} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.001} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6901291719397127952} - m_RootOrder: 0 - 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: -0.008, y: 0} - m_SizeDelta: {x: 0.116, y: 0.015} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!23 &3478792477868216622 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2973922908821219074} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_MotionVectors: 2 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 21202819797275496, guid: 6a84f857bec7e7345843ae29404c57ce, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!33 &6292870745760616320 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2973922908821219074} - m_Mesh: {fileID: 0} ---- !u!222 &2555379631864223453 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2973922908821219074} - m_CullTransparentMesh: 0 ---- !u!114 &470763197332114876 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2973922908821219074} - 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_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6a84f857bec7e7345843ae29404c57ce, type: 2} - m_sharedMaterial: {fileID: 21202819797275496, guid: 6a84f857bec7e7345843ae29404c57ce, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 0.1 - m_fontSizeBase: 0.1 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 1025 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 3 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 0 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 470763197332114876} - characterCount: 0 - spriteCount: 0 - spaceCount: 0 - wordCount: 0 - linkCount: 0 - lineCount: 0 - pageCount: 0 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 3478792477868216622} - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_maskType: 0 ---- !u!1 &3853641652402260931 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8910712925943562261} - - component: {fileID: 1465011035919059612} - - component: {fileID: 4706580937112472571} - m_Layer: 0 - m_Name: BackPlate - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8910712925943562261 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3853641652402260931} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.16, y: 0.032, z: 0.032} - m_Children: - - {fileID: 2330731296467722998} - m_Father: {fileID: 6901291719397127952} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1465011035919059612 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3853641652402260931} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &4706580937112472571 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3853641652402260931} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_MotionVectors: 2 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: d168438bf6820144983a2ab07904ac24, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!1 &4969729429136545061 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9167226088367929190} - - component: {fileID: 976066350291492552} - - component: {fileID: 5113930710402075964} - - component: {fileID: 7444971991107798077} - - component: {fileID: 2112173559973941710} - - component: {fileID: 6553862962818015716} - m_Layer: 0 - m_Name: ManipulationHandler - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &9167226088367929190 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4969729429136545061} - 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_Children: [] - m_Father: {fileID: 6901291719397127952} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &976066350291492552 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4969729429136545061} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5afd5316c63705643b3daba5a6e923bd, type: 3} - m_Name: - m_EditorClassIdentifier: - ShowTetherWhenManipulating: 1 ---- !u!65 &5113930710402075964 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4969729429136545061} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 0.16, y: 0.035, z: 0.002} - m_Center: {x: 0, y: 0, z: 0} ---- !u!82 &7444971991107798077 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4969729429136545061} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 0} - m_PlayOnAwake: 0 - m_Volume: 1 - m_Pitch: 1 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 ---- !u!114 &2112173559973941710 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4969729429136545061} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 181cd563a8349c34ea8978b0bc8d9c7e, type: 3} - m_Name: - m_EditorClassIdentifier: - hostTransform: {fileID: 6901291719397127952} - manipulationType: 3 - twoHandedManipulationType: 7 - allowFarManipulation: 1 - oneHandRotationModeNear: 1 - oneHandRotationModeFar: 1 - releaseBehavior: 3 - smoothingActive: 1 - moveLerpTime: 0.001 - rotateLerpTime: 0.001 - scaleLerpTime: 0.001 - onManipulationStarted: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1375880285230804054} - m_MethodName: set_UpdateSolvers - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1153477373352757420} - m_MethodName: set_IsToggled - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - - m_Target: {fileID: 7444971991107798077} - m_MethodName: PlayOneShot - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 8300000, guid: 72d90092d0f1a734eb1cfcf71b8fa2e4, - type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.AudioClip, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - onManipulationEnded: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 7444971991107798077} - m_MethodName: PlayOneShot - m_Mode: 2 - m_Arguments: - m_ObjectArgument: {fileID: 8300000, guid: ec33d8a6027c1574390812966f8aef94, - type: 3} - m_ObjectArgumentAssemblyTypeName: UnityEngine.AudioClip, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - onHoverEntered: - m_PersistentCalls: - m_Calls: [] - onHoverExited: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &6553862962818015716 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4969729429136545061} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5b3e6359c9750ad4fb8a05c9b8704d7b, type: 3} - m_Name: - m_EditorClassIdentifier: - targetTransform: {fileID: 6901291719397127952} - handType: 3 - proximityType: 3 - constraintOnRotation: 5 - useLocalSpaceForConstraint: 0 ---- !u!1 &5819135953064820660 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3676246485763817785} - - component: {fileID: 6912228345002898200} - - component: {fileID: 3490193353260647841} - - component: {fileID: 2252353847096159120} - m_Layer: 0 - m_Name: PreviewCaret - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3676246485763817785 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5819135953064820660} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.015, z: 0.01} - m_Children: [] - m_Father: {fileID: 8507539107667219505} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6912228345002898200 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5819135953064820660} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &3490193353260647841 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5819135953064820660} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_MotionVectors: 2 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!114 &2252353847096159120 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5819135953064820660} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: caf309545b476f649949bf93bf4830d1, type: 3} - m_Name: - m_EditorClassIdentifier: - defaultMaterials: - - {fileID: 2100000, guid: 1427cd2949bb6c94ca4958f6da5d9826, type: 2} ---- !u!1 &7980448365335647764 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6901291719397127952} - - component: {fileID: 260466191685692226} - - component: {fileID: 1375880285230804054} - - component: {fileID: 4650321119762720622} - m_Layer: 0 - m_Name: MixedRealityKeyboardPreview - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6901291719397127952 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7980448365335647764} - 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_Children: - - {fileID: 654040154712435274} - - {fileID: 8507539107667219505} - - {fileID: 8910712925943562261} - - {fileID: 9167226088367929190} - - {fileID: 8593696031498887406} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &260466191685692226 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7980448365335647764} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9a7474a8d648d9242809a1e746e95c91, type: 3} - m_Name: - m_EditorClassIdentifier: - previewText: {fileID: 470763197332114876} - previewCaret: {fileID: 3676246485763817785} ---- !u!114 &1375880285230804054 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7980448365335647764} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3} - m_Name: - m_EditorClassIdentifier: - trackedTargetType: 0 - trackedHandness: 3 - trackedHandJoint: 2 - transformOverride: {fileID: 0} - additionalOffset: {x: 0, y: 0, z: 0} - additionalRotation: {x: 0, y: 0, z: 0} - updateSolvers: 1 ---- !u!114 &4650321119762720622 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7980448365335647764} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4479a0bd44d822241a4c5f4890c481c0, type: 3} - m_Name: - m_EditorClassIdentifier: - updateLinkedTransform: 0 - moveLerpTime: 0.5 - rotateLerpTime: 0.5 - scaleLerpTime: 0 - maintainScale: 1 - smoothing: 1 - lifetime: 0 - orientationType: 3 - faceTrackedObjectWhileClamped: 1 - faceUserDefinedTargetTransform: 0 - targetToFace: {fileID: 0} - pivotAxis: 7 - minDistance: 0.45 - maxDistance: 0.78 - defaultDistance: 0.58 - maxViewHorizontalDegrees: 30 - maxViewVerticalDegrees: 30 - reorientWhenOutsideParameters: 1 - orientToControllerDeadzoneDegrees: 60 - ignoreAngleClamp: 0 - ignoreDistanceClamp: 0 - ignoreReferencePitchAndRoll: 1 - pitchOffset: 0 - verticalMaxDistance: 0 - angularClampMode: 2 - tetherAngleSteps: 6 - boundsScaler: 4 ---- !u!1001 &1090913102773355362 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 6901291719397127952} - m_Modifications: - - target: {fileID: 45677156232041691, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 6f99b8c3ebc31c942a5af2e66bfa5950, type: 2} - - target: {fileID: 508094984745842231, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_textInfo.characterCount - value: 12 - objectReference: {fileID: 0} - - target: {fileID: 508094984745842231, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_textInfo.spaceCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 508094984745842231, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_textInfo.wordCount - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 508094984745842231, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 508094984745842231, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1320670344384237396, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: iconQuadTexture - value: - objectReference: {fileID: 2800000, guid: 5ced9c7e98be2e941a88b5d0a16b2a3b, type: 3} - - target: {fileID: 2243437068443470798, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 260466191685692226} - - target: {fileID: 2243437068443470798, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: ToggleSolvers - objectReference: {fileID: 0} - - target: {fileID: 2243437068443470798, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6414827836461462228, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_Mesh - value: - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.065 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.005 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalScale.x - value: 0.6 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalScale.y - value: 0.6 - objectReference: {fileID: 0} - - target: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_LocalScale.z - value: 0.6 - objectReference: {fileID: 0} - - target: {fileID: 8674287671906198893, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_Name - value: PressableButtonHoloLens2Circular - objectReference: {fileID: 0} - - target: {fileID: 9003627748057373110, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e1e3746d5067a614683084937319e0ba, type: 3} ---- !u!4 &8593696031498887406 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8674287670279332748, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - m_PrefabInstance: {fileID: 1090913102773355362} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1153477373352757420 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2243437068443470798, guid: e1e3746d5067a614683084937319e0ba, - type: 3} - m_PrefabInstance: {fileID: 1090913102773355362} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1410eac1ae94b4d4492a09cc368e152c, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab.meta deleted file mode 100644 index e3384da63..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/MixedRealityKeyboardPreview/Prefabs/MixedRealityKeyboardPreview.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3a1a906d65a695048aa9dcd5216dbecd -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard.meta deleted file mode 100644 index 969c74eb7..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3821ab1acc1b31543b2866e22e0fa6de -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons.meta deleted file mode 100644 index f0cc68ec6..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 45696b8ff6c47c645842894bec3c9716 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Backspace.png b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Backspace.png deleted file mode 100644 index a5e4fab2a2c6a9c39ea010ec5f54cfa2597ddfd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 zcmb_geO!~}8h$pGPDx=Uf*-lJVTm8G4TZ4@Y|0jJOyMXw@B^4^-~u+-h66PArj?jO zR1EV-&a!@_7M5s=qD<3~*%9(v%ur^c<^h%(Q`dH$=iLUFNZ2|4v%U9we_Ypf-_QLF zSH;hY9x{03U;x07*cjn#0Lbtw8Bhnnk9+xNAHt6j8d0KVjxt@Nm8fK3npC++hQ($} zGGw!55@|v130XJ*9!um2iJHWjuk+HB*+CNI6O^Bw1ET>5=jZ20(lTWlY>_NOu83f? zAFN|wa%luZ95RzNGbc*6SRPZTlFcccm5^4LnZ}he_>ow6J`X0ymT4qdes-2Z&C8Eq z5P5mt4`JA}iT!kL5xv)Ca_)@0^n zR$%aC-V_#ZN-*a7$AHyT(sbTz;cKp1@F{|^Sfk0|F_~JeHb^@;NU6$TvbkI?lNHPi z4i1DKf$9QQ2V1&PKclZ?$H&tQ$tJ-s*&c92s-AOs&jQrNMrr`@4goc6}E@jt~tmP9=v; zkz@&#X?fW)g(g-Q!GLdqq;e@QRK^LGrE}PU94@3B%AOJ&7?#cn2}}=5XR#-ThNP#5 zvD|rji|2~Mxa=tIbk>xRFg9Dn2@BzJMN!kHai&dYO=pXyxnpA$YK=sZCUe)8!`iOc zX?@1>qEs@8MyX0rDzn^E5WiTdQK}a!bFio=qU%_ISgw#Nwd(PxO-|NAnM%GyCVfq% z%*F_vdGcN`^pC$YUix?SV?t0&G%P)a$8CZWiN1Cn1^Cc)m}Clgf>iLR?4@T&0ib2Y z3a2IHH{H2%Wc3?)e)ZRus`c|$V*B$h9oS2KWqDKj^dJ3pFSvR2RnLm?M@2vC;}5JG zF=&S0><#HJH<^aFIJTZFAFzDS=kKoiq_Q(?!oK+Syc<7ldNj5Du5s7q%^$XL)raXB zS-0oDagGF31^=E;EDCP`aCpEe0ATQg1OOEP0sIDcNFT4B(Y-rUzp{6`cVp_!_B5Q6 zE+n=y4_v9zzLT(HN7HC#%K3eDT925PZS|Y!UILQfhNW&yMj5nRw_JQQ9GK|X%Ou<~ z&>N)MNEG0wgEE-t0`LqbKb_eN11vjKPtS+inZ0mew0cmHi409RfF`VOlPjiiKU+yM zIX<|eubz5pq1Zd|J$g&+M40H8632PPzNPg(l=266My+ZNw?gR6R*yl0fWFQ$5CJ!P zp^7H@pP8iEN+1NIbrhtATQ~@lS&6u!cnBGWdlTV^1EStrz+?EIJ-lbV9um1!`# zmR?WvXc$aG8t=)n84l1hHfs0gb$*w%qTzX3<9g6h21bo`tTA-dkJRgGe>l#)*vMDC zRUx7^R#{3nZX06vZxsrrQqi!K)KOV>2AYi6NIS#mL^SRe{B$Ax6oIRwqB&X*LA#wH znLj(D2^{;9j+SZ@5gjsgg~D+x(?Bbd0=26v5mc$cyH<=cnfaf$x1{}i^ZP*v)-C_4 zYv=Me1>KAq4iAmUzN&h1+pWu0TTtf>M;NJdDUHi5&9u(nLd0=M>$o*ktMOdsy_&Nn z>Z4YF)LdWEwlO5%mb-Gp&I>Po>dRJ7gf;09^}`pC$)pQ!JASfi zD>0rljI8GqY=t;fjS!ngg4qag(G+Qks|uaAc2bwCV0X9giEihyP#*%)W6s8_w2s&r zTW0*)@{8UQjbtdL`rWC~yc)U7Yj3K}w`EzDjfQrCKY0L0{3hj|-jUpurW;X)%rUUXL}U02EU8!L?^omg6PE=Y8pHH;iz-MuT-ti_>|m3QeQLiuQvj2k zo*Y6hH0dhcrkE}y-6D3?_F55bycX6vqZFTBU$^9 z-f++}X%!nbTJj3b+tB=CTv5_#9Wy0b@P}<_y|bMw7tlKL-d66jRI;P~7>-+3hSM6y z-@WXnRqX7ZYYx1ge2hB^X9m3<3nvP_kK6rhhUZ@<|6X6Sz9U7~AeNYL56dnK)>_RNMANw?%c;JH@JV!YuoKl#*zAV8H<=Q88d|UUXZG0ez z)ZdMcZ72@&-MORb>g?$UkG0n`PrrW=?W5I(Nx%+b*_0IpEerz<>-HxSoW;?Z_m@jC2`3?bG0Q)Vgc+#_AKMIu3bgjb{J@ z2ti|qm8mH&I-N3C&A=Ct1#rKnP}WX?Z{Q{Zu^#`M0iG%sIz69(BXsZxJK^db)JGFe z`Ot9SO=5uG^bSq<#>1;F**lFPy&j|)>dbyUmqP}XJB8H zRtJ!s1(3u9DPlRhuyDGd=wikk=f>Z*^2d>jULa8cT&*noA8-jp8gyAF)Z5qK9&lH= z!EP*d)RaeTBsP`HHx>>AA)nDY4qi~sewhvMN&+s0&^_yRc5D5(bA?+YU)XD>L@7{Q zf`CnHtAxGs`d`S>nft>jD4tu_tsFA!>vpaWmZ_ zXkz5W=n{HJyn~z@(Up7;ax#nsrUmbxo8$OuYyO#i$C{H%tGBQ9dUVUnvuPyV@sjxK z?;cgz-`S;0Y&;YuZn2qy0N}!e5cY)p)C3F& zw>OUc3=jYUKjDq)!R^`8)NhU_LvIA82Kr;BJ!|k^b3=WGlcu)ZXNqZw@7?#eJilgO zQoF|`ndIE@i2XHRQ9;1N&XoHp%RKRQ)_({pYn21Ru$hnr)TkE>{WH0cKGsa4+o=7p zVl?v@35Fo@TBp4DwMDwhj z7V(Fjai_FnD|YNwTNkLUTdN33bq#f$s%=qJdmuXB| zlvrTQ)6%KM8l855R#UKY`B7~=LOv_>>6zxtw3lT0#^P`d_6aX9E`iku#mmb}H2KT4 zW;#!+(;E_m*PCoYT3?VL%!p1Crj; z=v|=kwuARQIWLwpAfQ{3JPTll*!&)U?m8bn9U_Jk*KV!EWAt-ZZzpc z5pi*GB5|ZBGBON2!b(>f%$o8rLutrR1f{k#-=r@w>x~8)N7UpQE#?FvAmu0&m!zc) z2R4*?g#yV$<(d*vM7UT~T#R`U?^5#u?R^-ddY7iJEYXSmj#yZPc%>l_i<98ne-qZZsARb;0~4MzgVWiLr!EN+MOK|B|6M6d21&pTlM1 zSSz(A{R(YCvdLIX6P;!HQ80{+KexW%QS}o6C=qU!5zRC72s#qq4!;Uu48KfT1H3^d zcvU1fpVc80ur^hhm|lMF$Mbut({;}{G@&1;r#ye8@QASC<$?`I^4?*1jr9I?QE%<9 zKF`$l{3-D7;+OvXWZq7_a;vs}@7d?ycGpy{{o4nEYtn($E9-nGCCw^$xAeaUZ3z*t zTwT%hB2v61s^lXY-e(>{0)!NB2YZD-LJZvT(Qkb8JKgUm8B_H8?jtb$CeEJET#btj!Qq=Z$pYBhZraq^d zU_atuQ=1wM9jl+@i7&W<_vXkZ^Uz`kyKC^pq z;@hL(FS@(g20q_yv%o@vO7C0MM@-gxs2xqmyYu-_7&FmzCI(TafkfFyVAzq%*I8#ZyTg`#%YcH zrejTZYp3jZ0&ni_x>LOe-*aD@(tI^ZO(AEu&fPIdSA2M#>A`LXeF9LYgSFqsI5G-{k$5=$b$Wx$dUSCWnk83JvA&AQKh zEqi9xXa>@HP0jK3PKVNXuXtLhrR#X5CBoBru)#TRz_s(*_E2lB(VL12HnRhR z>~Xc{9ll}(f0jJ8t_oF6v#Q%3fb+=cXbRc|7sHi7v>u4@izI!$uKu`BnEoM? zkEW;Cqjlm6cViH+FG#k3Hg)ZlNB!u8dGvTt<)j_L;kRGyFC_pSyW0 z`>%?XF=xMK7dPFpEgu)sYK>!CEgtoIUq06mp+>nU=g%%yQ(Y@3=ek3y<)9=pDWETz zAIPqEbZ>$5AXlzC5#jz=2LlgFhe#5CXfJ~2ArqGb;H@Ji0eFeH4KX|#?=f7Lk)Y7j zxbH|Eaf=38aY%5*86GmX>-d$Dqpt2KkNC^MPg?$YG{0xOAo>UOuHfFxcFR3e&xxCh znu~f}=UkF+2JKT&-}Kxi$95UceKnOx=gp6UVkLiWj*^m&r8Ytx{COI$0D=vOELLQC zp&kM@pvl-T1Hv9(r{DXx8xHWMcYm>%XI|L-k1IDnt#?+d54$9%%G#%(oj)-wk<%bQ z7IY4UpTQY|kl~(T&1tA5t}8AcaNtzOK`2zk@$}Li_40*+f4=UgtKCwMxNlIquVY4c z)?(ho`j)zVz1oGX?c0#Ot3|gBA%|_p#nr}hbw2(`VTU0Lm&;?l=jZ4Y$S!u;>Ye|AEiGx9{PXr#X4PF^MDnsfIBnVWi~MRc0wDfZ zL2T_Y`Cf8AH;9$5$863#0vj0y2lERb4=|rM;b?+c$nhxwV}BoLVTykEOaa8KoMs~g zc{s%N6HT&t$H(*UjZ}YJPXlVc2dqK9s{dgIu2C5q@wM8ezhYumNTYoIi|i6$58mmvO6@~4)uzwP;a*)zX6E7YU2q_nJ zv@oy@15>A;H!3l)pFdBTz0WeR#kTjT)4D%<+v(+pT}kG28_fUJja|NVQZ=fY%5LiS zRa56y=YDr>f&ftt_M~f_V96vES8A^`zQBizNR;{o^B3vCB*8lRk_x~+hfO>;iB7oM zWF_A12?ac-h$|jUP#w~SiBKKVhCmO4VRen0fkbuPu$x6(SxMGG- zGtQMpjv%(N_hJTo$TTbMJ66=G&_t<6-RnB-@`2G|5Z!(S(j`B`h7cF{CN;eDp-97~ z4^hka|9}VF@Hy27N&<2k-8?7>AMXQ%w3j8b=2F8P=7JpfT)uI*?PA5*w&f$f&U|&l z?($K}A208DT=C&iKaV1?KAdHAE?u0W07uQg~c7i4V zEJ2=DwgI-LCKx=4DDSchBOgNag|Gq8)DH1=!Cxc|Y1o4>0Y=8T@f-@KqJtfWUkfG-A#3=R&K4_1;V`MV=g>gwu91x2Kyq8tPv zM-KG~a0!v~As_vRf*yg4_xJP-@Fe*lb}71CAO!|sB_T=wQi14eYWgq2KIFd*1(^&P z;^K=$$txg<#9h69K$8Q`5dM!C{}!5T73xbso*|G)f&O^NA8tqgL56Ji-!s|;grvck z`+Gu8aq-q8;RA^Tp8z90tR!?I@9OD_Q6-=i32tbV99kVxSrw(MD5vIzR*`d4b5lSm zsj9fSsVV$J=ilM$D(a}{=_@HID66QUQ2J;cgHxyUR8-VXp;S>ydMNZixJEwY02d!T z;UC_f5bwWn75`gYjIKYyC4l5_MIw3s69pC?qyQ4xgXD|Q)&1dh#PPG9KCYx-@`+tH z{iU@Y!QV58;A-GcA|ig+8RPkHWcdHn|1W&kpS2$n5(>E+EdMEZ{<#H3%z5VSHb zPA=NB%|26|%HB5qCuLc=)MPoT*Ql@+5vq z_Ltf_Ytdx)>1FkqU@5HE&e~`ld1mu#Cv`TUVH6HL(wlqP00PQ$IfY+^7y%fu?9@!3 zng(xg)kHgOuLm^i0-Ni0S~A=2cm{uwd%n2r=M>Ad{3xNoa60M3_a<{8LU6?A%lEs( zgD!#8-pdb7yo2I~wY*Acfefz5B@6l+%XIy1wdA$%fOv?_&>lE$WqfHZd05u#)WoBM zv3_Ui!TGNf@H=LsM*t^Ox?(lHj~}EyD;N{5juZd=)SzDW{=leCmhMlyFdX0mpLSrm zn9wy^iXpMw@MUMLrLiRsvT^}5g@E7%}ETsTaf%zyEjM{&)A9&M1#zx-#w-=y~j zrB(=0)2@#tMOsK7C`gX4o6x8~^#gBu=e@WXHQMxm$HYuAeZ;&#YpUcjoB~O__=;oI zpi;eJQAz7A-i~gGGS4cKWu+7^rpazZTI}Gx%LA86T>5lNn)oL-FVT(#a@c?}u=r=Z zwrQ%9Tv+q$HK_&-ui)-|58((%LEb5!;MO4r(dx>vyko_Bjk428xwBlbymAM)b1lcW z&k18Uo71$3H|1Hjj=$Jxs)xfUsySQexUSolrJs20JSJ$Q7k<99^1NgRc*f{{c^LP~ zRI^)ec-<@8Mp!EhbuGda&F#tCy9W~9;u%Zu$NaS|#%%_>Cdr1bg-UVAlVt^vAwA}F zsO6ExgdH9R`_`3`f-zBYy9#6r8p|3`xW%HHl)jv`<&x9ak8E}-PmKY%fqB>u4;j!s9V5dXQ)8H5NS9_!A3|!AnjU)f$6FGg3>$h}QJ& z+|O6jv(5%w5&&NBm(7?8uI{ZyK7OMVfOGt9fLB5!d zJFKkI7^brQ>x4`AgO$GiRhtC6C+x)RgDUdV)B*FSud$FTQU_s~HkZGq*rEERim%0an0IuB96~ zpUfRG#C}qX4HcEX<1%e>=)pqlp}pwhG@?{jCV#d4mvq@gv#aXmP6wzG2E@CTk8R9k z1?9$(>?Hy~QT`2@4O@~!+_y0FT{i{b1rii3Afdq~FqmDP+Y zQl;@HJZFX=bu{0nqtM8HSe6q^Nv4l8B?Qt|-UM+R<%3JLxpmX-C8PO3hz@VX_O`xB zU&)9-qBCc$hH9?w(-_dQci_SIg%XWR$yFkUDE;|g%W8RygBlzcMsNVJcT$GADb!l? zcx0ZP{UKLs)cLTdcwQJ~Ab})VfPd`J+V%Y|_7C95r}E%~YS{%e0$5a63hZnL%otECot=X#81(a7#`Tls5m*yip+(WnJw7>F!yruY0@(mQhWDOXANQUEtoZmq) zzu8G=vwDB;`VP~h0lC9mOr!X7Fno0``P7ZSW+OC5Z=$Sgz)~R@KekG zjF5de(zO3hCl(;1@p#^cTN8 zo}3;wICvBOD}`q|=itqV> zf=5*3FCZ0W>_-XZfaP7;;^sS4b*~-=^1|+Xpy-hIQ2>tpWGif1jFlqz=pYC8-5E$8 z*OoJ)3LZJE$A4h9-~usX%gKKMS}$_*!zkC!U1z!PEC7+YAkN19eJKX?oVqgs$ot^X z1Bepiy9f7|82FcLK*mj&mv+esu?JXv$}}tKf5U@gbAa;!T55xD%>59qdjNOkKxbe|3;Y$(2BuGgAk6>R6Ha03^e}N8UxYIsedHZ-1+Sg65!jFb5IZ3LPxcA)B(8xBsy$}9qD+Q$9fRx*k zO8fSGKBKTvH2#L#dI@3SalydLJauaclB~#nPGAGv8l=*qP6tcvRDE#L?=g`!n7?gg zU+%LWv0OND94ub?mGp8p026(^t1*+&Dw1FRkRO-Zw2nL&=(V*>OT23x2xwt!&UbE{ z08@o?Lgcc;X;yEL(sjxO+c!?Nn10>koFTo#$Vtl8+m1Bo3R9SSa(%>Ng^)UvXa++_ zTWjAT|4w@&>+{T9X+&D~wk)hrNzBeC|@R zfkG1IeE!bopoR|Dp5*@g9K~PqD$HIMiopTAB|-D1k%mmOmeBYa@uaS^+#D<3oo5)Zy;vXH$*rU%2<}z7oAO_dSk;aqPMY^xj?}%E}9^tz>m*%%+(piKW^+997@oOT0 zgjQyyh>qSh(s&fc=3{bUwpB(#Mbo)y`{dlM&f!}fPyI_Lj)198<&r7sue@(hh%7W6 zTw&2=J>Q#Kpq255Y_yZN2vp797d6ior|poGJYGH0Kfea+Y&y6Y^XH02i2AJMaCqCd zCEQhF$H$N7b{pykR3*>0*TU?Dj8e*IevX2Pb53&Hmuh{zOeTto_v zD=)t>;H1j>PMC^K(3HQ8Gc${uoMf1cJi$xN*Q!1ZW}JTwl)T?OLG{BW|45-tPFw zj@$LeS<&aSm+y2CD2<8>r6d7)jvgP+_ML6NlbxNlN#SmagC$z^uT%E}|KL!m`4Hp6 zHG<+knCCHsqf?gmP>*8nb&}m z`*>&XWo)+AYOAh^41d`BoU8Kfz|-qcX_v0Dzpi^+kSo-!g1$|H{5A!5lrBvu@4bP_Lt{3sfai zjWooQ>U;V4!Q6*7-VbbCuuC=?bGp>V|z;(8^Sv zX_u@Jux6#KFU=tE85A>%8=q4nZZ`nT&8CAdk8u`FzoGJ9WP)dlcV*1T>->qZ$|22z)ge+{?@+^`o}-(X4V4ETqJn{^>7Ns|WbT-m?Fa;3 z=rZ4UoKk_RtV7Pd$yD|n{4|&_(`$Cr9K1w>Td@qP{z8eedadNJ`tK(q#UrUvIk$2w zbL2@+v0jNcUglkO>J2|hwEMVev%dFEvFKUD*6Bi%yUVt8u8*YyYyg%Q1Vd!|B0FgJ zM)d8Gq<7x$?1^tH%NSD6-z5FI@g;uA)~sVosLhXo(@iM|?>9oHNo9*}N6?L{-ozaQ zkM@CC?bAq3yFr;2ob)5*n4(-%;}Nge{NSS#wX|c2Hs^IVo~Yl`+&?CG`_4+g(x(OQ zjZzP#&DGp8d#2=RsHvC}0*YALnBY9|qhoa?vTys)?7Z8ob^GImuG1ry27aoqV9927cv;n_s$E$@=ln& zEW_r?N1Jh^%3I3cwG20lN17>p5rj@k!K^_`R(V57+Rn_pu*Y`I4)*$(ajic}ZcaJe z0C?P;RJzz5<+s@U#wTVVXDdCi>t3eH=T3~4R^4qU@6kBaj0kf}+;?_Hk4m63#)TTs z-ZHBc`aKZ#zHCS|!!oTesr};f2xU*LVIK}V7%e-xqYPUr(1^YRo5!p#WWR0KRu7Ld zW7@)KAGvU$?;Q_N(Qd2zS5vwd1H<|4{FWqys7{7*w=Ey%#M_ahSSaKa0ZRRb-c=$- zg_p+j<*>(Advri=cxdmLOqF@%apnV{9L1KW$=R>eD($+8>Jw>EP3T@q#d0NSu9w8m zy`!zU4OB4=o?3p3fULyen=e3+^H?E#<Od}~4t#?gf?1KM_bbV+`2zfTo(Za(%|f2F$Gq?9;+V3P>T??F&|k(#^U8n$F^cCIH)+Xfu2gewgGad+gX zy3-eT%gqo2v}^PS^EAu)=1)q(Xr=9`knIffV%|ye@LM%= z^W0JJ5Z+UZKvipI{Zj}P1x2CrZ_KD7-;yyou)wmr6V zO4@K>bm$eZT#fu-zHhH_=_OgZul(upt%}1jQ7AQ5$}~I0KXr%bU0!kSL$2H?V>yjiSbb47{jt8}r0bx;A?}==lOHcp0M?mK*cO(2m7UT!kfK z=ifJuFWzk1xKR1_m`r0m+HtaCxuf>=b^P}G{a<8Rplpr;$2r0`=D)P_e7avHlWN1# zr}PTR&+gl|&?KWuiXYaHxw3ssWU*2{DJ)!cyqgO^4M9&XEEkUJ7tg@9P>%Tl?E{T-pINnvEVeZiABufC2aeIus*3)|8uzS@UP;J8wF%c+m(8SLSAw`T`g z(CI6sw1#|UPj~LVKY;maN1Iz0?Hhq8S{?Pw>^pfA-y7b#Ai>^K!=3?pavMj42rgMxi6S>CRF(iL|<7dBe;HmK${wKrqD z-ui1iDPw4CzbUYh-3cb%NNy$K<)7kl2A{GoY9_k8HbOV3-mc(h`p}10`5uB|Loxp4kviem zq}5~ra9-+Gp`m|qdUCBg-=X{A31cfvav&QVht+LKs|Z%q$YwNXM(8#5*1G1%#z}k7d&ew!NB3<|jU%iQ8Tu&JV`=HZv-}obyPmdKYcgX?<4J zwfvFc1JE;rSjN#gCUdEVj^&1Vt4zM?Xu6xJ`Z}Jig{#H+%<5%-edoR5!d}N3t7d9x zkMU7q#WCbG>`7>j!GakIy53dNSHl@D@<{ueghZf0r*XfCru5r>C`ACoqlLu$WxIUa?vfB42Q)t>8IdXP)Z3QvUZHojBNCSnhXbeR4E>REz_K+pKIlXH(~ z zGlYiHw39Yzn!lW%yXX1+d)~9)sa=kywf9!six67dyxrc4kQBa3k^COGq$BU#gv%zr zp@ZMedHAq1$ReAY>t?BDpK~AE$~xT#e)I;r6``X2-nI_DqvbJ^i}R_SxJMoF1z;MX zt(Hi@>FQ;9s+-;C^_x|nyqZu^Ubk7*u5V#l0`+Wf3QT1GqrS$5WDi>2@pbWKYjox6; z8NNqp8I7K1s_AN`N?UExF(#ds5~mo@|}k((d)Uxp3$^cuj(9I~(-wXWflK&PS1)P2OcR z+?{`6-u-p+qd^pn56f+br*I2SB>uYaDnPODGO>PmgM#p?Or4225L$Dx*=}o#%zS+1 z*S`B~8=rK(`NxvqT@I{&NPXx&?d%grOCMYH!J5`RRJ>#+KEgWADZaJll}GcL!Afuc zhC}Qa_sQTTG;`M1j;zmJlOrprY=D zx>kY^g_{tPBhn5(9I|EZDG-W5-^z~`A?~Vu3GtVsFKNd=a3aYP?O%m>5n^RqcMyNY z_C-zq59ojM1a0wLJ{wM+o4Z;RpZNBb&~pK7pn z&c>sLoC?KuBol42^s3UEJCn2&{Zf~^V7Jl-r=!*4L%S?}zIgs<>V64otH@t3pMJVB zofu8XQT$@&*fX)c|A^=JWg8HBb~4c?OLrF!JtemOtbBU)gXxE-I%Q~=H+!MMN(ZM0 z3xhw6?foEr7vYt%Q>m@_iZAy*6*r}4<{KIfvPyme%$kNTlW|vs~P?jz!HiyJ& zk1Rc0cJ6%UX@tHzmOm>0OK~NC64Os6E@qUKlKJ@XxDik%GVT0!S-Pn7+;!ZWRBnq54r#+mU_8D5XGdGlDsp z+@wW^>>%5aBb@(P2+L5`g%jGCpG_SpCCYbCS?Y+O`;iJii9!-s-;xpxCcuUY>+b}k z<%|S;cSk85rL3^E|y=!FGwZ)4;&((B#gttDwb-qNCkdO2vUU-JSd4Az`%5eu?H;1 zjy(vi-~mf57nQ~2BnmjdV(T5{FtO2uuzvxRfeh^ngH{=a=0 zyr?S>kd5~4hnpR9zvbS!bzJ$9;}`7c;D_la=Z)j9IFgsNxtB7RW=l|HT`W~Bfn!5( zkbo|Dnp9#${2gyb0ql5#*wyVygkFIiKgavW&xL$$2NyPgv8)6uMzAD6K9MN`6QmcC z21A0)FCxbS5U()sP$QXpqT#=G8TknQ+PI?bni;w>Ip=+K^z9p7$2X3@>sT$=5Nz6z z90}X9B5_+%By3B86dUkbV<>i-L@Yzt&Bz4m87%GZt=k$*@``0@_Lp71FIpXLUKeSBNjkN*YO)}bl@ diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Down.png.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Down.png.meta deleted file mode 100644 index 97f089d1c..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Down.png.meta +++ /dev/null @@ -1,99 +0,0 @@ -fileFormatVersion: 2 -guid: 161fc5872226601449a8143014ece469 -TextureImporter: - fileIDToRecycleName: {} - externalObjects: {} - serializedVersion: 9 - 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 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - platformSettings: - - serializedVersion: 2 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 4f7b0fe9237160a4bacb9ca8ec9359c9 - vertices: [] - indices: - edges: [] - weights: [] - spritePackingTag: NonNativeKeyboard - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Left.png b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Left.png deleted file mode 100644 index 8cb453da038a63bba31e8435f0adf6cbcc098a6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4492 zcmc&%e^8V69sa%{tEskkwH@p@Kwr;|Xt1z)cCaf8aWS`HQL_mIs z{?q*PzWMTbp3n1np6@sB%PZTrZhUz8>g9xxhx0a>3J8(Ft%S%PfXleAXA&;4o}8VY z=lD`jrP;+1qm|#o(Rp@r8CSrWtyMq#h)X9V>Lpv@PS4K#Ev$vNtISxV^4Xn$CL}$} z=QLX?I1jytE3-K=l%s9!O4?@4P!^@+tMi@NT)AyiwTpYMdTXJjy26rXRc2+<={^<+ z?3~9;`|NuiZq}Ef6nR;=$7M!IizS|l3}r~v&iw6kHt*u-6qPQ~qSonYeVR&>qSq(u z*V9_HCWTQaF-ht~Z4#TTW|Osa_@jhwE^8@UV9E{mf^Qkha*xN!GE8MvoF!%j*l>yIJd=Rb9!vNgGNU49^UK8P=eCX2zFHRhPKN$TX3RE;J_pQhW8Yc%SNdJ|kXY%oT!c@DS7?67c=-ZtnR#%dSE zve_=q?BQL7Jij-x3$~Z@9^PHfJL&9fF?IT>BAdg?SGvE4F@>f!aW30SoHf_Q+iB5f z);5oZrOhA0TkqFD21GHqS!QgW$P(;GyuE!C;LGj9#5v#ux!|bmKGuC6j_>h2ld;hE z#r4lmI2vjnKR1^7r&X)o8`u5v7crl-Y6@+hreA9guNjbRIz?$VXItKUiaj6ueD1ne zF8_gEyEgr7KD+kG>I+p}Llc`1qy=LFzv}OP?PA-;?vr21NE6riG$9lr(irb|{_#n2 z!!v^1etB!}$9r%6z5mkd?fp-#AmjmOpl@VLPi@?B*{Q2LhV?-yQ6C#@pV(M5a?$ZY ztdtnK{EdeQT(A0nikIPU;d0>99{s^x!x#SYgVoKXvpw$Wwd2**nG~VR0;4@u*Z;Ma zkUw??H+LszPUa92Q!6E;Gmav{*hc&|*hq+a3KvQO4OtS>;a>w4!kB(aM#vx^P(XFR zKc0~K_PGEfGRTn+Aq}i@aUvnxWUftZ9MB9XwK?WeV9OQT)yEeU~XnUC=R!DF);3u)KlWP5^-E9 z+6N0@jtCdsxV=P6?!zxyG#L5h6r6rE_|A?BFdGe)LxLtS8xxsVz_h06givybAnGwH z`f163tLg-Jc*;_X%W|YdLjI#1__>TMJXn^gV@u06Y~J(;m4Qs>>jm#ZlJ0qic>&bG za-0#KiC_v1ra)H%iWRHTg6SpPw$n4tHEG@kApr6z0gSFU##0kgn>6}ikWWjm2aMa z&PyCYA$oWZGe-avbTAMY0A3vs4yMmoio_(=%$y0g-qKwb8z=-K#)9-F0AnoJ?^39wfF31cx zD@uv!k)`e!dK($6IUOU_M^;fZ5l+i|@e-(+TaP>HPU(v_SQ-GvBML+B*UtU%r(XW| z>3^P*#;7O0%N8>u-gWFack#30iSZh+peup;^R)^cyl@N0WS1TfR=gG?A#{SI9$v@k z_21s5?dF-@lW)VX`I>|9&(Xw{^kU|Xk)f$c)va5qV&Y#%gyg9Q2?R}=2HHpzY5eHR U=3Tz$TM2yfa<-b@*-%pVe|FIw)&Kwi diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Left.png.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Left.png.meta deleted file mode 100644 index e87e451f8..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Left.png.meta +++ /dev/null @@ -1,99 +0,0 @@ -fileFormatVersion: 2 -guid: ec8b4073237c9724ba8422f71fda3694 -TextureImporter: - fileIDToRecycleName: {} - externalObjects: {} - serializedVersion: 9 - 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 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - platformSettings: - - serializedVersion: 2 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: a6292a991947c4b40b37d40c3cf64b84 - vertices: [] - indices: - edges: [] - weights: [] - spritePackingTag: NonNativeKeyboard - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Right.png b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Right.png deleted file mode 100644 index 50cdcc984abf93c95008a71a4c68abbeec50df70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4438 zcmc(he{56N702&$-iFiC*(PB?XqwlD)UGT389Og_@!}*VAsbFmNJl6Qv1306H`veE zFW3ptxY@KZ@Jgym&9sfuX{zYf0TU8zYue$7DWzgdC#`Mh3ZxpUnud&@Wp$}>cJ6hY zIH?^{R;m8y`Q3NVIp6Q+ocrvbtgElR=dPl=5JLCVt+6&DB!RCIB>g&EJ`TTi6E4fd z)y?91!7YXy0UlMlgf^b3^E%r3M&9A-+V%#&3ZcC1o~CB8*|yf?6uc@2-lGb8{Sb}N zs*14R;q2f=rj2j+_{{9(ffFp_ahcf-2Ajs_ujaRS)^rE>_1*PN&h8GU(ZyDLhglUi zK>{x?I+(C`t1oB@n^}_A1mE$pnq|lqvBS)!L^a#iG1WqVXAG(`rBhSJF`QAQHE^7s zTgm7&T7z0ssxH+ib)_b~#-!IVlOGnU1zc`ZqqSzT7TlTHEu!c*snwxSNEIqo34wOC z)@U@UH9ECUr-U8KV3$vHgq6PFigX4mA9Myhe$gZN7@X13CUlBs7L=wec>OlpRAOIn z5)>d)haG;kR;5vUz1SDo9TXe+X&G5}2b;S5yta5j0e zXqcb>RJ`j>`Kdva8V^gx@T8YuBJtO$qX0Kkhl%&W2@1eb84qgjhU2@v&RW?N{@3`s z6@qQsy{})rPnDmy_u&0n?Vbm`3twDZZ1qI{o!_S^3QO7^z5hphj(_`^ZzQ9Jx|{k} zMlDt4f94jhS^FQ`CF6nNhd=$`_j>L_{U_Hiy=Hswcmc9Jx64N%DMCyvrnJB0`S~-6 zv&X%{Fn{RD=(&;tUvC2%?K@_YJ@Rq)u0@DJXAa%` zUiZ(&IV*}F3%wg5Dk7Cr@K#hX5=0}`LIVtIM2h5SH&Q@=oWi~s$sGhRPyw=$^f)}S zxi*&HAeW=QCDi4ICG}msu=YD?d1HGu4GQoUQgUY0ovV-&+4BD;9}^lcNlyN%_~P(} z69-Q&`D4?E-~F-gV*UP)Uirf>o;u|1MmU>g*zOQxiq^=mh1^w=oq#)?~1tsNCuEY1a}uv z>z`+&h*3*6KT7}d6S@+ijSBw@Lq}7npG((uCHDr;MPB1qjl0Xr`09fM6 z3QlfYF;~D0E-6h=AdBQw0_QTS-&{!}%Vv7jVQKRfT7l5OzDTHe$G+A@;5KruHum^_ z85Y*Jm^v_~Q-0ojE-5)_%?JSF*epfxN(f#WHyJOam1FwTOEAK-XyF+!H}R06hFZ^F{p$*)ab$E^u_P=d~dZ)^n<8q7+n*j6H5hCfbyS0P3Rik~^nA88%GvF*u);*oW7}9QNm*59q;h1$s~b=q;cy zZm5WH(*$>_UUu9d2I1Y)`sS0*e(&Ifz2*7kJ#gmViK~Z=9azK03q3=(Q?c}^r#7J< zMko4BK|^vmdFiw#+Mh^_gnO^-J#r^n@F=BN0^AwmEAWC0yU&vlG;|I$*~4eBgxQbg z$R{PJ{dt%~fOZ#sJCw~2)6xz6K;*FvSWrKY5kya|*%RDR|oJA{e zH)W~fIg@63&r~}dkcTrMpac2vp_tUP>+QFepBRY!W9$CK7i8mqDJdlXy4U8H{r!oS zOL!Oj3Y{IZ(1cI(SAL0X+i}46-a9S!@-r(w{nL%lIuEK|9xMr*SxmtRe5e(EQ4m6l b5`}hjzTkXC@^+0#btwL@5FSiWDoo1qmo!dIzZ? zQUnx*AicNugzxwF+;`petY_W#zWL)MIkRV%&)&1ooINv7OpNr-P_R(|0M6)N)-eSD z4*i4!G7{)(GkAC(`eF^xwF)rvb`1z}@N)qdoxL4hc=VADZZ4)S4$k*{J6%)(APRIh zw+gT_ysGTvjg)X8&`1O$eW2a|sA>fJI5>H@1n@YzxVd|&@vYP}@bS1itMOUN8A=)Y zXuI5YzZ~M{Visa#?iAwTq~y$}q0XZktPC+gx&%1z1S37Y{FQ^%_)hsML%#{PCHZ(x zNdi37`2JDK%Fu*I+uP5DM@~Xs+(}Aafk#0}LRwBiK~_PG=Yo{9oTQYDq>PmK1sP>o zDP`FUJpX?9AZdQiuF9r5m;RLn{Zr$+9T4E7EGZcj6eJNOBjN4mCMm6?q$DYILGr={ zafm|P|DIQXL$J7)KmUI?=(zYh`MLW9xO;o?5I8zGdfyFDUcZdMY?ze=)x$T3S~@>5`VTqMV|Rj)KlbB`s;$ z|Mb=O@(*zEa&q~PY_*STmOJb}+79k*z$e5@C1-g^JO zTOY?tlbI6#t@@rZ zKW1|5*N63RZCKeTa*Ob*>wl?MFe3{#>$TWlf5yToU0HF|ASA2VQlob?>9GMr2gGs;aE^NGOqSkYO1@`_LCnjSTd}^=eiPUM|wjdGROs*gHhkFw@#q9 zTqgaOE_a*9t+_$*27T@&4uJ!LMz~n}~?73TPFV2U?gwAPq4_fW%Fh zG!$~00JSrN_TI;J2U21;)iuq^YN))DY;xD!5xp=1-7bZ&b-p)lGcXM)?x9_%$rx-H zSm%jqE9iHpCfJx$t%-gbu>E{l#QGsq6q`d0xu^Ay7wFJkol`Nxg2A4x$EoNe=Zpb9 z6Dhlnk_*x~YfJpEhzR!Og$;=1J9=YnYnLDBF~3mbISB2b=9pDIPf4wS# z1K~L1gw@?EYHavd=rQa#ny6kMATB?oA0&!D*VpTl;OtygszDN zbGRloq0T_^qTi%>-3MqhmoXWBf=-%OsHb&X$$4?j)AyNR>F2z=jsCI>SG0-bQs%u^TQPgKWUU;Vu3a_6D11`ydCw`m@VD-Fb?7 z81Z7534=NfR;$SaD}AaWoss9${rJveMsc`_e^xSQj_-!fP-!UU$|Axs+f1(h4Qn^MW#p)iEcz=WjsSTxMF4 zS>RiCkFROGxO+0Fjei2>ee=W*wdhWx=anCHMY_(uv|&8J;EQWz4{~Q60^s#SBFu2n zuGF+*^W0mBe@hiHNFR;8K5JQG$Z^2%?&yg5Ee5MeJ94o%4Jo*o+OXUrx5n)nM#cI|A>GQ;AcDd<(j+8$*ovlB|ZM>a08v|(!A`w?K9TBGLdIxF{)Oz zrM0aDV~ZE3{%#PlLvMI$WH@I4C*zSz;Q-s#FLtaHHu>Jy$ZN-{k6iO(G$aZfk8aU= ziY>8KUoEH~r)s=`Hv5^7{7-DT?u>dXByqA@{ZJF~jGAIV>p5$?NR|uLxJFD!GsEkg z)m*y2iTJljuud4N@2j3lYc$UEyUR%ATsX*9F`tcYLi3_?=S!2_>6z{ImCxCt=ZozAOD01DE7mRGwVu z;wP(4c!rUZ^@W|&V9cqFzkRS@N{I~+IaK(AOF7O-oa{W7d?j%61OxlYjIRGIZd75j8y@;%6L})SpuS#wEtqIn#uYC-JB2>d z#?+O05)I|@9tfQ$ME z(U=|Hie)AwhBc*^;(lK&Fh2TR*uJT%2haM_xa*=wH6P98+jKCUnJ7;0PWwH$e0h~f z=@JWsPfU9g^)+8x;r4Ut@|BTK@E7W>waz$pGm&riJ<{w?Qr-4PBN^?oX9+19W!H{g zIl@#$?$E3L)kDi@V_rqV>u88uGBQQ&MHi|>n&u*Sakk~#0%{46;=BF@eZ1CxjyGDk zM=A1qa+{iWnfL)l!alOqCNhK*Qe<_`Brx&|a$0|HD&U|b5{(aJ z+Kw7hyk*py?OgNtQ$Iu5%c?m=Ny0N&c-r|P&^jgI)#N`v2no}z!LV}I~&ULfTAd$~6*w-TY{7(&Ew--62a!&%g*&OLRj z3I5H2?ITx975_GAy%u&x4Q~x(-?6{-OLsA+G8W!TNaj4ZbY(sI0$;<)Ro84p$S*BL zVzJWAvEaM1YWVLb>982VJsdB8;Ag`H9j-s}Sh~ffgg-VYZpYdWvHUJV9TS48 z-|MJ;R)Emti2r8T+Ki4TSM7^NhmW+=3{?P`xFD5|Zl`VsU78ZjPmUf z$u7G57RAQz`)4FhwlK?JhJO4yq++lqL9wE+0+Bd9oZxJGu=S{M_@1f*iOF-{CUqj) z=TD>3Svk<6kA!518mYkhv_oWj90%$tT)$LXjDjR+;lOCdp~< zcPulFni71hK-O2jsS3=ponO5Md=|}htVqxdQGBX5em$L3Y z*#}i2)B_YP_=OP74_0mY+<&5tjbAKXV0jFq;M7xI;LFi_pWsv9_MD#3SgproW?E@;i9L50{*|vWi41jk(@tepA=SDJPrZ&DrZJZCgbT({s=4yN+Fo{4Mu)0k|7>!>c`)26#4J=TuS@{+UI%84Z7M`rL`vUi#wGFBLQA22obxxOj`82X2s$=SMpyMz-QU7)a zBr(I1E$|{WJa6yVrA8VNBT%7ziAZ{Vo8?>gr}i>nAVnK7P94>}wcz{Q{PPFA{1cSK zrtPCJlrGBR-of;>*52~GJJ=?dx@2|`!BXKFa@2L%mICS4_?WFiP34h{6kg{nmVz^q6NU>GY5>~ zDkjmeDs+J-&LQp6_fayGIYP7k_sTJCd(g?;aGRUdcUYsC4r-EjpzEH+a@hsz>cg|} z9N$&)9KYAJ`s*60^E9C19;{*rzFbegqDP7oYZbrpp7W2KD~L7sW6x({ipoLHM+$n; zfGw7>kcW5+30%(ER-nrs)*Ww9B2x4X?QAA#+|8mYhI#+ zv7YDJ-urHrWMNss3PaP$4Ma8_U89NbWgC7so!hY8WRd|RX8{vgga0jE9CJ9h1rpA(4?S}IsuQFDbJxi9{HLRx(PJ6>v=jLeZgRM2Jw<_=V!U=yyILB6+o zf9xqLj`*rD*^;WmWQ&@auK7NKx{KkSK}cGJU99MFS%Pr|-0JPS6vZaZ z%$432o6qC?ZtCLLg6rs!q9K&9fwLb*bz48j7Y3)_UsDgE0C&XTmkP%DcIy=Eb+J!2 zA@82QC73bhJ}GgH)>elZrg@RCu|#vlZRLtlVQ`A=?3Y0^GE`gb5$?*Ex>4ay4BjM! z98fU90?k*;jSAhe;rkw9-WQFJ-cMU06mjzniLnaKT%{R@mocdmiyq%u0LQa5d7o(x zH0488zuLC$Ac;javhZ#}tB-%Je@uiRPI!jMkS^`Z39UTg}}TEKag z+^Tvm$JWbVr<+dJy2wX ztrU(c?bfRKG$)E%ArOsX<*j1fibZ2G=y$)lfR6Bk9U^Ac*sSbx8VIAkFlN-uaIvX~L7TeHv z1N5|=VyJL<8FJVTqC1ZLP}w!5M~332DZ>@+RyG&d(abFD}{OFWERk3>JUl7Hc?Y9M+M5%K+2>l}LPwZ*bOc0Kl; zFYzaG8DR9fq9WFbB-*f5^$z7QvQUM4>;1p0@YFNH3r8yEH{f%!cDi0LCEol#dv;5mQgf%BYomFb}4sBcp7MD zb#Ex>B^*m)MfRp{@a!p&xWajuvK!9r)+h(dwDuA8fcM6BZk^ML_vek*z4>~e^vuD5 z-ZIKkEWTProN5a49$4oow%(}ZGF@+omyViGAVXcqS^HZ!<89gas%aYDy0~?bRRi|> z<&KGO+&evt$|uWTMUhF7kAC=r7Ftp!q70RSZy9KdjT)+gz3)BX?2MB; z9Fj-H!Gbn3t}9FOthyi@2C>46TYr5yQHzpBoeE28I1H{4oq2d@<~xD3`)CaIa3?kB zR!%i98nu;oR73(NBFzh6m4jK_qV{z|c<7Iy*ffvA-JTvWoNkkO?u1?cSm1=M=_&}$ zB2K4A+rY9E<+qmZ8^{nP8ZXqIvmWhqihohu=-VI==?VwO3_?T}czoWK28*KaJye>9 zn|D(V;~EkV^^bd?;zW$bV^7Nz=6Lfn+k}7VF!bP z@jm^#AG?eMKN-lNuxEeWptE4515=K_$r))v^5gM4WT1TN-^{|P18Qh+-v4Oo;b2_i^C0LgeL5ES$X)0 zhjL!m>fw74pab~89R5yw14f4;L%s6<(9=A+^jn>%MV)BoLsRKF zlGFQIv$Hac35t1F0tgHZ7w#&}kbR}4h2l;4*%HSv^giMl1M*;OSD7f)Kc18dZ36-~ ztGX$QK_CT3R5JLbCjH!x=?#FJ&{cPx^1McSwLZ67As#@8An*_}q zyDJlrki^In$q=4ho%k*KAH=6hv^Tq<&Jg@va*QC}UT)rh z?;IX#Gp;b+ira$N%f3g7vtF`-5yE3o>eI~hiddu#1#BST3-jTDq{je$D2{73v^V8W`3wpOrM;FOm!H}6=^3?%{EzwF&2Z{ z7vGPZCg~6&6Czl`({%&Icf&?qSplB2R&;H3rQt1XU1gSxfJaRH58{*hOos{)s4YNr zcPCr$@jrIli{)U-2PP(x1&+K>6_yZUmv$>`&ZyGEXcwp&*{Bz#UQ59VW8&?H-#5O? zsmfoWg6G`+xp^<*?ODwmx{Wq5Q0YeYNy&QWXQ-M)j&h6P6#h&$F5PnXj65Hxjhox( zNWBPTUyo26AJMf?r`$qZyYm zP7w;+W|4RKcApiTg2Kn$ZK(rVM(p3o{SMdq4j`LDVzYXWSm8MiVs?Jfuu~Y~SWz#a z$B*22cMBDyc2dsowJ_M;)O|A4zS(9y#2^V`fIUf$mRJ;sdG{vxfE3DWGEm^s z%MasPC!pwA zfWK?`{m4jx9|YR@-LiSfs%vB@T{-~C(E$ST7#SiH8fB)#18xQ(=vD}!P$ZlNSYFWF z1Ssh7L#X0aYQfw(8}3C}%uv`9pyDx9mt5;co|OT*3baB1PDljq>$*)1{ZuG_*eatm zBuf(^pg%aL0=K6=8%{pJ+(M>lsM9E=1I--Xx&`kcq)2~BetrN_bP=Asp=Y5i$2FbH z2M#Gv+da@4p%&tqpjb{K>^Ev)lGU(_@-F~4|_q;g7mx)uTlr@=^Jx+zxr z^e(U^ZVZD~90`F~pfk8sOAF#jxtU<6mi;l^G_bWsG#0tr%y=8~%0rXJ7}WchIt&og zw&3q@0waI`;8Y7H2Fl|jdBWnQ4oEQupR_>FD?S?dEW>Ft=$x|vpTt(Hgyxt|@#ldE z2|<~cN68QUd?g4EOblm!NyZ{TC#9ffb>|~LaP1wxPjnX4Cgcp|;v7V(9?weBc#utZ z?O&-~&8MRU74{-XIPkxGtnJLMmwKpRu^ySqg&^qD$$iI|l=K({d^&DHYp$Ky^Zkl; zx*vIgtKoA?IW!4CK@-L3`85$hVZ)mr_3>N@OcR>%3KN^|hV&S_oL;z^Qs~D9)-iA27ljtH2C|G{iDnFcWfw zBrT|Ck6{IOKoBFJyiC{yYtFSuhmYLSP|o`1*t4`z_?B{5fddHwxxIi&Ma)&@d7c`mmvggO7h~6bU=u z@Ctf#NrH$=)lduX`B<(oy^uRpP|)3YZUyz!Hifd4CK!%(k&USou!ZnH{Yy(cE6kWo zS)@hD0E4ngCpVN$UfLiuiGmyE`{1WqD9ZqD9K4a*8 z=9}1kqtJKrMntE|4IN^h#>Nv{J}?GxGcTYtCH|EZHBWP`0`ow*_8GXXD9I=eWLGN% zBTi%K_Knh+=}6;doD9Y6oD5}Hf@-orr2`2=XtuyLo7D7MpAuWX(<>2#5e87qgDmRBRjA_e zN7ZI^rJuW+`E*>xJbCNpg`_;#AVYneb71=*w1zmf@dqvtH9|scIj6h#Cm5kQv?djY zKJP$$+7`t*Gx~8xS#|Dn)LS}0vDROr~6A~&qziqV`K;;sfm-zcHnW_fXN^^I78)RuKFYy z29=j1W_RR|R(`aM9uTI3WN;{b(X2A4UOh>m?lT6@Y{2)W9O^KV(;yG~@uL;5zPJ8~ zg-!GdET^rq7`393*G1jJPVm;u*Ar$cXx1Cu^37G6`?k#ZMb5w#NZMVxPj~5DrZaIKe4$aZmc1+Lwz44Nss4D_*8ik#uX^uy6cTB7%?w?zBz4 z*{wUdR(~YK3)cGq7sj@SyPEqn0P`$vSshQb>)(Y~`qd?e;PtHjVfjO$seQJg-SPFY zu|61gLtTSjSn5gel}`)^(7jpY=%N&cH>wj|wU8drze~+85e2PBjO1QOZ9U86{Qnt{7mWT7)297tr%_KFC(FDtY=@ z+^nW+)W8idDTFl0gLiW0tj`tpG^Z~0yCm>{L!Wo}P|__cp54!{;e^<_e9lO0jeGvR zvcmjQKP})gaSNk6{N5Ju>2)PBFC`>2wmiD1BKgZL)=(#TgMo_@L8b}kT#jNadG?6R z1+L>CEwTuW+|xNek$^XHH#^%Z|H?c3Bm%{h=Fso72CI8B=(B9HpXc94xqo@rcS9c| z?n_`Q*!uKm!MoSy?bMkyLXQFsx0Z(kiLM5krp;|MaY11^por6l&Z(I>; z{5`Ya_t*_myrmiVF?Ko`B4}B0 z?pDt4CTne;BSQt3X-Cz5AM!M+C0)BUF&`-l!Fkbl=t?VjtqC7sdqg6o!nDh$XQ8Zb zH2HWy5OON)S4R`NHFNl<47QjIwOcmF)~=M_?TF@o;z0-_drWynPOOGf!ME1fr=9tg z{_AkfOnJdw<%&HPr64!0*Mv-veomWk4|6sr-9xp>H1GP1{Z-Tv^{fc{;Pw($gSntF8;)YXF>F)6~Z-%rz6w{s9yj zG_RP2R*d%RCT>upWloGG%`{|1KXYfL(xhZnD>jf*(n6+Qe&OU&s8~3JjeR*thFYhp zw^K3?%XChYQs;q2T;gxs$xV^?pzGop+Zt5?P6^7*b0{kVw@>-PxRuW-6|UnqmVFqS zb@NFssgQ=p6rJhhrr+}2Sf)cWzP3OHwf1hwc~QCoj+iqw%bjy|%aQ%Y?QmBDV+uEw ztH+WZBq@G9=MShfOIq-x*@?v~Md!tMH%&vY(llO$0Gi!iGPF?rU3Q0EBrr=jM-3{9 z^C=by#rs&v86cv+Y4<=5=Uty~&|D4Lj`h`}>&#{adNSbd>*0FX@?w#aVE3q5Ms1_i zR{}G>O(*t&l~m-9qC4ArK`yQR2gH?>GN5nQX|+n+#|ta&mwN9v7eP5%-e~2k$89fl z&qYe|fC$x@2)aY0v2^MS8+{sHLOT|BqReZ(yKu(f&@Httau>1MK#jZAx`FnhK3D>k zy)IOuA2=?%g;A$NGnC6=qwxxn=XY_A$j$3ilXgA_JfM~wRqKR*w)o>Zqnn}AbkS&M zsqACFSkwx{JgRhJTc_J$Z8(3UHV?MNs z(RzcrP~H~vwyi&b4iv%CIRh0F+x_1xFZN_?7&8LG!rbzXMzi~t(RSit9SWoq@3C+5 z8WmRQ3lCkt`=gg>|3gD)ZA zW?dkr5aI4!^xm_+Kt%iD&MOZIO3+`mj#c=q zGH>tk%^H}zdFZm|h}xL+r?C zLagp~j83EDCJT_AU7k)lxz<;>hsH}mOLHb3bUwwgOPQAboneAd9Rb?af872Ue?`6j{`*MZ9>ju$ z&Bbkm3=Ehg%tu~ASk&E|TLB?dFq2PYWllmnPjdZ*uK7EvtUZF@{HVYfpg7$>i>6%O$7iZmB z2_h#(nF>X)2lUg_OR8ox?VxShs<@uk_P&H&_F-y#J=8}U^FxXP$G0mhL;_Dy-czvj zy(<6(Bj5IXKb7WNC?njzBhF~tbyLq|(py_TvuzRveqK37T8#ftveq&E31iC*GTiv}^e2rBcnh06sV%w&^A7k|)( zQ1k4~d)J_{5{tR@Uo0mtGO?Kn4TLiGT!VHpgydkG(`k2+IwR`VfzS3GlzHKax7O`! zT4}Mf&&}@@k-rElynE#c1uolwdCtiztphQ`7~k9?yNEw@;Jq}{)^*>fMd1P#7>{s; zF~v>I`{CDuId>5z>=$M9TjkL-dN%MzC8egg2%tmPq!9ypU3Sn-~L|vkgLeic9uc2_rY2kuk}5g z;M+Smq;+VXofp3|c+2L^WbT{nncPvJetFwEPRWenFS{$aqR3$HMub0$_O>n`=!2V5 zhhB=f4K30bOHG>B(mJeHZJ8dK8Xeneg0uYazt_r*A6itgf5q3Lh=1#XvCc?0M&s_( zXGM#WkMSnx&P_fzj|<&^U8^tM^~ov0to|x`7^<{oS}V}D1H)DIq-cMoGvZzOnso?0 z%!Gu_-qOpK#bG2ZRV_ElH8O;*(Qw_4&pG;lgUew{uT#F4*+9G4kM=2`q`4VtRTDE8 z^j!V^^7$#faQRdpxUeTj`CM3OaxXVT+#T{haKKn?{~0TAg+(YL`$vhsv;5)53$s7B zi$H)%Lq7j*Jlk|ApW*TJFYn{hZy97LbS$u5{*oa!iVW<2jKBG#d7bqP$ctD%c^RAQ z91ZQWkx4os3#rKY-Yf*{?x-`vtaT1qnw@J3X*76iLBR#1ap1n>-S?t0Zc|!tzVoD$ zeup30jwNMAXFqhWA%0i7t%KS`W2(jHjLG0yQ~WQCoOXupAxrAv!R;`X>+AJmwbWto zRiOyalO+tAlt1DbHJbhBjKYG@bC~83LtCJT?YTW7I1dsUXsbw8^ivhbHYT$Ak|>YR z5XPLrCk@Fx@okm;52PsD~WeMy202|4udS$E~zuM zJQLqt(q9isb+aOxi2!94JEdvMuN&vaCxFWP`H8Rte$b=(ciALc)Fnf3RdKpQ-mFK% zp#L~8;Ux^E6#ItN8gU@Bs>r#%z#_6>_i~DOH~am7>2~{JF|>;59ewDjv%W(P=i#C& z3yRqopLtncj(0f|;MP4c*bFoTPV8>n>gc1!o_SsFWF4h2pU4fZW!WIEreUMF+t00E z7I)tMxRFXyU%x4pqPQl>SJ55H^`bbX!wE}uDJbrS_qXQw4GItNmP2Zr3cJ&kf_Oa% zi+H$y%oxIQg}%MmoI~Uw*)!`Q7c#ix`oYOl+brY>KU5Bl3*^EH2K&dXboFDU#hpD6 zMu{}f-lp*mj#t9GNU<-`ALv7C51hj{ihBrE8uP)Z2v&3j{FecKu&uK%>Byp9Dk|&o zLq|-_US(0}{RFp~7u%*i5yr;tyugZxR(elqLOwApar|9nTBb;--bHj(5pms_=QP`* zon9l^#zLF>mOMX_|Ir>M&I}LoPoz~$(5v~hpo6tVr#?~tHHI$k z4tvK9#oSEio1z~^eWY0__w)l_;i+8_jW?(!$RqS{*5yTazb5QsJpEgzLpPNPwB6-_ z*L*Ezi4q+`pCQXD!^vDi{eNDNw`&!a21SW~1 zXidr--KkMcO+7#O4ktfXtn`5as&&VVVLjQuG4d8C6D>8HL7QbC%v&<7A#Us7i#|F| zCr)-Ld3SQ1IAD!9mYzb+d@r4NCaKuuYkL*3!PqO7#K^ihg+>m?R;Gc8a~21W0{X|& zIWaYD)N{%&R*s;uu%@z+TQ1&43|H6EyPA%_gUwv8^bIB+ev%+(j_1W$$VcjD{O}Kr zXl*l5CG2j$JhbPTSfewFfyguQ+liSD$HHzDDe_EA77o^K$k@n{B!y_hy&W^LuqSSW z+Pu5Uj0mr_Sk;AMI`tQmJT*6tcP{ikuU&zr16Lxf*@r}ZBx9f0si1cQ9uhVOn{Wwz zVg)sso{=}_G-|ogmGlqBbrYSxRjD0hbp85h5i!%8Xt?M9UXnm->V_|V+fc+%ENv$3 zQ-!}V75{d_W5aD@8L7W7^HUkS@^ftZ+gXB@pE=P^9T*BPZI7OmL3F6g0~eZ3aCBtG&cW_p~ zWX7KHo5r7C>avcgD`PF>cd_)%l!vSU{(dG)WEp45bnkQCeoo?m%fp}j>gJ58Ueq<> z^Zdjuk?&ZS$k{QZX1v?${*uHYyJS0=CgO@20o(yvJ!liH3=!t799vxYg<#$)I&_+I zY3G>GpzO(mZ{`dUmkrvnnyO>J=H_p zREQ38_U@drqzcQfmK4u(gbwW7!-^|}75a^{a+7wa)xZ4*l!rqSIkRF|+o+Y2k+UQ# zzwXauqZ6F@-O^|0mdFlUFgS4u>$maZHbOrnH5Dw+;J$>!9L}r%b6(+&;)0f(-%1mQN?^*BS@R;c*}0u~loXiX zcR)AGsn=_rI*0Z_vgG^O-9#IO@3Bm<+fsqIhu1upv>|ak*WIeZXM{Q;m=)U?bJT0a zRrCWz-F67MJMsRIWbUjvHa;qR7RWUB1uI^Y=h5#T)+LNwa*P0plDV=hdXf8~*hZEL&9SC$bb! zL$)Z%d(hTzt^qYdt7+jTea>_eVL?}Y>P3LpJc&5Q7@MT+B`@g4&LSWAE z-?TAy9qJ69ax8MdRQL3D>EO8Bt6z}CaBzqHYNk2HEoh8X?ZP%c; zL`{H7XuN6D>V>v(&UB~Cqs6#*-_F`x8CI0b50hmQ9= z^~`DeX#9_Co)UYH7f+)&ovpimeXy{n){jhl+4gSd_UYLw=%|)J_^Ar?WLh;r_S#sc z&*IvJDUY9^9SA2q*n-sG=o6qtt&{w`BC8=DG9g$&(pEM{mUDi3sZ3yTb15 z&>dbGm8p8+{^EDpyI^ig>|(gVZt0)^!2%#FYmYQ=D7{6ME@c&a-M1Zqt$HSasR3=vRCeH&*}c3pyOH1TdS z_SOAgpNw>OuWToIKEx9n?Blyh37Rx|BvxH7zav3%_3ZfhN0?N5*iE<8arRndbEus0 zu7*H(9A);P?5R#IT!)muDu}wfulICA=l{BIzIe}isq^?{hE4WCJYF1oaCMI8RJXRM zCMI?XX$I(U;bm85?#jD|WM(e!{41&gadsN(xgQm?FMAUxQ2^W?pBelZ&+q7q6pG^M^R}a5Hz4jQRyJ4 zAQB@*iU@2&Oj`mJ|=`QvanXV2`}pPAYF%jBEt|Os`6@b-im7KBI=s*N~-GWD(YuN&M7LXDkv%|C@adH zQ`S;Z)KWPo@?SqOu(vR{kCvU0$$#|){--PE7ZDMnrJxWM6(t{~ERPKHRZ!B@)KpMB zr*Q6^9N0oG{CaSNXS7^!xcGlK7$L&F!~8=c{E@*T6po%=$jAs?F;LQfLkJ47vijeQ zgTwy|C=fD*XwMJ@C3!`KpdiY)j$4OE*dhKOG5(LO!|kt!AQbEn;mF7^Z%`jT;{PEA zvHR~kqBI1h(Xt8i2bJO(XoU2R3_=7)m>cPefp6sD{%|cdg!(yzkGhhax+XYeH6@jE zavDDBs&YOWK8i}pYN|dy8jAnn^M9g0f8M}Q$>f}YqKc}9l9DmV<@`AV6%!>*6%{oD zm2;~9p*0TxYa$hWjByL<|j& zwJsv<l z%Xt3t2((Db?f-TK@Sp$fOo(96gTg>p=`>`I0RU|mb0Y)$=r4qFy8ViYg8`cY%a-%! z1Fz+tG?tb%IO8Sd)BE&l1N}9JyAF%U$$R;=jS{Hy7jKH~*7Kc7k>xNq$|3LV>i8$9 zEUM4$#s3Pg7+-n$>nCv`?CQq#u@@WR36;OgJ_P>VS%rWuJ!~9aLUC=%JwQ*nz$lmF z$pc`c+@UEKfSPgu#c!5BY}0ZiyF(Ne5B{fr0Rdd_uSR?*(6f;C>N%g|zn(!y}2TNEmV}>?|%s z4!Y%ZR&RM|%|huxIALdB2TlB$33t_1D7=s0zZdTnZJ>5}H!irz?_QDR1gHQAU>hOQ zcB!QxFy1BetJa5e4vVq4G|WYe)ToNjE7R70P1bwXA9z*kd}})6Dz2F9uHucz9I43D zJsoSZIA~u&!v?~KeoTFBK<&4u1YOouRepgZxJRaT&o!h+B&!U8}p?UjGW%iX(?y(HZ zj4-@+cTmMnP--`Kqum99&P`8D_ps2XedXkT3_e=^JqmNZ!;@IK`G~-RlM{8-MxO*h zpaRVPf;SZCdSXLx>PKA|h-m37ogX8r@U=Vq^R+mBtMKDKx~PU7*YIkcGYI_Pmyfcx zG;Re~rA|F)S>r5$QpPAPpG6QWk4JP2@jN!JGMNsh!aGJM6Xf;SkIA1i2)VX&=LhQJ z9zUb!8m+;cv10Zk##DYk7D857#iDlF6swLroc~~q*c&1VV4!z2GEP!B`*}47)-I$F z8-?i-PwvA|o_c3Ck^efaO+b%6@}k3i6YU706EQhGNIOEZ@y5HV&{1Gj{Ml2a51-p* zEs#5(29td%*I|Kr+TU*K&q5hE1R$TFKYW~!M^MM?KBJcyy@Z)Syj7XCs?ntMN)2;? zzP4V|mWLni;opndin(Q#i*~py&Z?9^A!rb>JV~IyDfG#cg!z|OrPYzcw8?~!`y2mw z+eOA{x35Uxo+ff10g=~DQS}5ZA8HC)v!QPt^%|n^*nQWJVnFMXDsBT2)ocQQEYU@R zotFk5|7B&4Tcq=&A0Nv2Tof&Al?e6)vt*gI?%RNy(mDQts?gxo_O;W~$yG8Gj+=z( zcZS&Jaja(KBV$0e-xdc;&ldj3MX~Yd@U;{6Wm2xWQ$Q_aE_`KhY|>e?;yXp%Rerv1 zm-}#-b-xqnl1=kL9!9sf8OO$!8sgI^^6|&?)qgEy8qpZA0q{_Ys)>Q4ee%F zmBw#W9T7fH2&ZsP*EPE`;vH7V-IV|9#WK zhqgcr_!Eh#|2n^%(NUE88#;0H-0MN$J;IUJ@}27#VfAYJua>esyd}%$J#L@;akf=k zkPy8hxt3SH+F!EiGKiXG{zm*~Fssd|=y6ZXCHT5ucIr7}AE&-9(O6xDcci-LlZEJw zXJg4djF@HknJF3Gs>3rGL8rdjbp6))2j->nNC$2wI>$XHDvKZED{5K_b7z0@ZEnkP z0>{&Vm2`-{(L_;M+Mm`J?#G(x?|OlgxiLVOu@S_qCP%(UV8BTqmg;`}v)zG}bH9y+*6FXw49my&wPCLrjY76f_%>3bfp3lXT34(m~6}nF88Xk{(2r$ zq7}RoKJs2RyjPx&Uqm?m_G5}Z=WDEAl%$Gc9Q@N=wry~VxDedp_U8>h4&JVghm81= zFQ!wJ&|yONZb>z465zMZ3xE@_T zz@LgXUiE%6#T+P(*M)a54!=C?^Lb79nyDX}rwICaR>cG^kIXIF@&3`hB>Yv(2wZ&n zDP3y{yEf9p9jAvew)nyvHL`2=?c_Czk^7E3Ca!<)>a_TaO?bp0d@$ww3bMwhjN%GK z;z*)+H)m|(YIRmTN3;Nvg8M?GitCSvj=;to-M>%_6MSzA%W8G+zGRrFM}W`wGast) zG6i>JZpgo80-Y7TUpC64Idj&vRw6UdcLQ%=vNDwE)(5S6vo)y)PorIT99_P!^8+QZ zpC}-H4;*gqqQ{+D4fVW54&l---OebPIl23^Er>Mg*p>5DPUb>~{y0=>Q|2bcDSDc` zaeFuL`0iK+p}lwgWG)cyd%;VG0UP)O0A!YK$OX zU&y>xSW+f=>dn=ad5K*DiMc~9_D+ko{2U4*ePI#=|(|%lOaw zE~ryXhdurR@(l}nn3?lmRv4y7@u6kBl!=jR!?K$N=hba*quk15VV!f7+{>EXyL3Uc zBNBOdOZYc7>#71#PM5-!Ytf9ZzFqM{+X?N89edm-%Rhz>w_dzVHNdz_{!PJZganLD zQ$W7<6Na)K(iC;QTgFc=IJ$^pcg+;Zj-C;LcZAvLWWHs=uQfWyCs&w&ZRS z;6xknO6#@|>Q}-jV3bQ-&tmWR`q)A&Gopb&|K|_gj(iWR((Hx4Yz!xSo#XnG--Kd~ zGd(NJ0F?-f>FU!31D6_Vp%q;ma&mz6V=JJX9;H1v!t*9Ldr%zLvP36FMPvZYVO)ULAMrxglW>tOCp%9>3$8;KHcwN#I{T^E+r{e&}-%B&3{}z>cYo*ES(Z zW7Vg5Xmrh+s8sxzn~l49lL`4&UaIBnDMtoYxVng{p_(j|C64iUot z=iJVVK+~faL4&~yX?*zA5bqne85E&C%sqiQ-Rspsr?$LbiT-Trio2}{tsQLlsDvnt z_rXS)nQ-}U=9Iv8z{5gf&~Vs^9DSIv`@Q}l>_lbkoj|6bCxJ4jhD!h+pa`-by4^;T zAa3|dDk=Uf-r^`q|2~cFr8Okn|Q2N|CeTmgJxA0+< zec(xqs#=R%W>5f?{P>0`$Zc2?nkBsL?RxY*t@-bz^Qe+J8p3ZHX*jX@67`*7Ez`gB zk94HaNoY3UJN23RXqDa<<78c2##&Pi-)#t^py|scu`1t(nIRSZ+2U-#^JE*KPpjvF zXz6aI(g8l`Rzofka^;mux6!>VcJ~(Nl1=Cu* zO&6kx4HUxApnjV;A9W6grHNDm7i59S@2C$0^e&l$^`u9EQh&yw%&oxFfg*&%S5a5V zH@x>6Rr{Gu0efLR$Yj@qYkj-qn zH1}BTY2KfVCu{1(9z$(H5SW0N$IaAoI5cSgZtWV1{!2)D;hBjvdUT$KIW`s^sb__4 zrOidI>Y;xa^+e!`|F$*-dKo#i{bAZ$>Nr((ne>_;UDA1kzt3wZUXNMdm~)K})%B#x z>OHv=&K))6b)ge@;@ zyThTHOZOy7u!X)^0OIS5BC9@FB4Y!ug60q-{dAzVnK!2>gD~rc((1eeq{toMKXmO4 z@}xW*9#0NznRDF{f?>qw1Grt2+x5&@CZk{SQkqE~;2jFFF*gp(>H{mK39k4Ru-&%U zyf$~o&{$^em%{IrmmrY&3ImLlcwIxe#e3}pWdI$P0^mhM+DSU{IkIgzGqUXO^Jg2f zSexmaWszj<`gSEA2RZHbCsAS09#-!Ht0s5$A&dL#%+t2sQ%i&RGCnjl)L)f5NxbeC zPPF58E@*?laKNcn+Ci_AOj89{&o_wzuOt&X<_8>!ZE006ePw@Sem^e^3>u^57{AKH zebLdr3h8Zh9|Noi;d&7Jvj_MG-LZxOb4Qt%PO-i@f_R+vE?#GA)~3F!-Bi!O?b=R^ zez-o$3_D-OX1=Xou*3?qUWc?!P_1`yY?#vFAM}*wnQ4Cr7zMcMmelOFY^iS!=aBi@ zb%9CmD?j-#;g+w)shtH6dv`T+`Oqpi;iB9LcdO)VL=T`as9P`Lkk&{@=UpMl6OsS>+U%pP z-~ful*ZK^+Yg~v~Sy#8jDhvq&vO8WrcWACxT7A8+_GI;d{lL0&wBSDV`(_qb=f35PhW*6A@Em=>ev9Vaxxz-e_PJ2i*jv%TnsC~l zLuT01nDw5!?%L}kTbMtePznoEfNhdeOLc1Zh-2hsV?2L*MSpJsW&VR*!VQ4)*1D!P zI89dFR=DQg@I(C6&u6Jv)lDtQFH<`_R8=w;8XHo>1)R1NX%=;NxPVD#>U$Sk5Sy_` z@GF*cRfZaNsoj3+ga3@YBb%EUF9c>FHqXa>w0?ESpF4BP;!0EuBjkNiTY~HAmjVAj zCW9=G3V|vQb`Mh;;h)c9c4a)8`?m{rCT;$v8>3sTNKEz74&S$44(%ZV>KnUy(jh&s zqy3?K>7pI5LGgirS2{BnV?}{7CLsK~pr95e9@+Y-aa@@IpsOEF>A_<+b$>Azo&EVV z^mimRjJ6W+nbGVlKb_z$45FnGcfIw}J~sQhPFgPtdZl389-#6l80t=EY-0L3=9D!9 zQ-Gi^v2SLiUcEVvhpIE8+X3S9O9XGEN zJ)^Uv!i!rM1|O&CY#|1_+|yqNL3*_LE!Js%8@Slq`P5n40=H&_?aWAT5j?(v?2tzs5OIgH zwdQL9BfHX(bIr8#`q0TOS<;UuGF|zNPj{npJ*hd&Ns%ohaJAe7ed9Bd8&ElW9a-0L zmrr`xa#F$q?yyot=zOncNA1ZU&DXlY&x8j<`ih*k^)Bc-SrilQ`ErG`Gs@ECkOq?F zIdMs_?9&kT!<7r4VGo9c*=_aMJyxL6uR4~Zw!4ija8d{|b=8WyRdRX#%4&qP_FRI) z^S4sWr?Nt}o0ux0!;7a-q3^L{^{Vz=pS%0l(Ljg@Krrca8!M@5`ZBL}n^D?)+mt$Q zM4u4$ybw`d?hq7oFsnZ-0hAPeWslXiB(>!b@824ln-7OEyx&)|?jwQlS+D+m@I)Cn zNM;)!dZ`_=lQ85swl_wVCv%|8X{(p;LT0~1D?0pOCVmunXru2tG^cTMiB-~uG)kR! zC&>^yJH%O&zl!a#V+0~YEVyel8m6EZNT1K0h7INFi&aVZy*kv{$8$HEY_`E#V&ZN4 zZGf2Xy7pJre`K$-tmkX|6gDG~p_R~&d!oN93YsuUQ=Tv4upl;3)&;&!EjoU8-Fz~kotwqNyl$*^j;Ljb1x?+%2YDhGD5PV<{2{TcPa=} zUV>(%6kuN=M&_?`UvWnLq!m_@N+cM|(#2EAoL6mg`fK7+COw+`dTfb2criZ15a@lU zl(Ba10!mqlMIyln7>(fZc+e@KS^rUMyXi!3;Lk~3$lAfwyWFR|Qxm__#YPjC+%E=t z&NDt~Fz+XyWzdmx9Wl@Um4^(v^vxGeTSY7It5&`(iwHL3rp+eime4d4qHk5p20dzb zR(p=Jz6{j9EwF9r%w4n0FSqoA4s|aGG~5cM?JO*#kGAYPa;q0Vl%o=nXUTpZVpk{{ z_QQ!GK;$5oc%O9ivsOM<#^k#((5qAwY1`72yEZN3RKqp`+Xg*5$p>Q6(EiRm@{9Jc z3_V)2?s--t+is7C=61&|Ai<_o>jPAp&^%ooSpx49!(F)dQItWTf#B-53RuN z>Q0Q*r{Fa{^vt^FozVk_$aB1wJYN}wa9_ty;cB~ z-cbmhyivZPXb5NsOl#5TyOM7YhYqlH9m|!g`7TX};qF;l%TQVmR@@b#eixjG7mpc9 zBB6HhY>$QPuL!&HcrJ@ZFXY5SYS@jqhlPC!sI|FMx8x`t+bX?!Wgl4(lniY4nP3oQ zlgnqlxXnmb3lTZ`L^#j93^%K0o%K#7#Eui_(5@Ts4x994a1uFCFHz<;9GHkz*JuEW?qaG^@p zeT0^?^my0~zL3+k?e_|8sL>zhhFY&k4G?c{QXi9!J$gN`)uTNSa~dW~y9Ci*YQn3lIMQaQg=ft z-i%~>KG0(R4$E3g(7j3s8<79nv3l0>?0JKsIY*;5i33AimavsW=%b|iQC=}3Guv|@ zMCB-%;{gb4w;&C%C$N54BOtHlzUlY5N`PVt(mbrKEf&&_PR4+Jl;X37gjlWG z;Xl0s6r%Z?rf^}6TGL8r{DH%WAm=BHk5oK#gYf#0fF%7}Cl2|4=v3w5?cUmy)POOIY-zSmIe{BZu7;t?z5 zoyOY_zGy3U;M423*GDYL;B2+Ts<$NqJZR?yN3Rhq)sJ2xLlaIPBqVO#X(;y9LxZ$ z+*eMNHo7rEY>Qui>>@W^3Q^U|^VYSAh71Y!=nCmU1Hk~E8TAK=zxfl~@1v1OKud2b zx;3Q%W;LRwY?r_<&&^EYA6;%F@0IjF?0~<@!xJ}H*&V^>DYvs}$TxWVj&kVHk0+|< z=MoH(<~0@=%t*k8dCw`7E;Vd|cKoR<&zToF$HrRasUv{Fxl+S=l>woy>dhl?(E-@A z$G>#hhN#9w2UR-LK2l{O9o1n5=%v7k-$;|mR-(cGY!MUWeYB&({+|0JS|d?|3XEkU z?#b@&tuvQ8umR~cv9G(y)JoJR%t*0WM99}o4b8K5kgC@a?A%NXFv_<)tnZUV0w6rt zw0><~i5{)t3phsE-nn>-eNy?rox|lhIA_qNR`gw+@viO_0a6{UE0?4$fbIi&M*98I z{uCcD<3!z)+sgtzdhqy1Xk0MvBR%?d>$TV2`X$p4P@c(GT$uH*h%rPc1DeP zk+^gb+pR5~++Z~G;4iFRmHH#Bfiz&R6`38)z8CyUz%ecL;UP-Yq4_c7do7*u-&Z3}UL2@4a z;MJyvNu2m2-*O&YNuUyahcslp06>f#*x)=vaSNE1wDswR{bxP0&!#k5*{D3m&R*W! z$P~RoaWnK%bkmYT+eLb`F&jW}f2f2S7F_aKwLmF_*`z28z!W0HRvx10nDjHMmx1C{ zl%&`s$^*MJ_n=2Mghr9_EbDY--u|*$Dj)j6sT5AYoWfk?;Mx3~FKy2YV886-KY1Vi z*b;;&(xrA$|G4CJi!vg!oCm(q2h@sm-_N{A0w}C(JGVLqi_Qb1i7cbQzbF1&mnN8Q z43(aOD8_!5+289HvCJ_inSuy-oNfgW@vkElKx;9ZV-q%)AScR>NgP1Y)kG-iFDZ%l6#;DYl{IsR(Eo=>GBi~Saa76w&^H|IWWupbZO3MD1lLz z-j*}9VmY#frKbTX;)MW`7NoDb5L@k3w-s=C4#YKZi^M0MMym2h^|tkW6MFXe(-@90OSlb0MZf34{3imw$q9M>_FC8;{+-XS`Rg@cuQ}( z1t>en%B$th`o1y2r`11*m z4j}X>r9>+)!J@|*xK%PqhOVb>b=&*0O_)dZvodDTXenWH2EA_#^AEgR@C`2*9QN;0B zyob(0lq@i-MYuj_-R!`zpWYA=YFOx?YIy(A2-x~3nBfQI4tg~0ru9%c%`stw4=`&C zOjfE}{5p%K$Zikx-Fmks?;4^y3+C)6oEzBGjt9yy&4L#D9BGx`nGDqGH}Mh=XYTS* z#%l0k@c;~8ABzBMHXkYh$4THzNjn6DX6K39=0^9oMuS&O=+BI#_(PvwU%AmEfrqTVcNqxBausOh{MRs%7DNlpv10|?_A za}LHeHyd6{p-ncuUUzq&{ssjVQ|mHfAm|1IRLWM;cmRGyJexjfiYWzu7)eKMs%~-V zfS*P+XoHTUR3P#q*JARB#%h-#n_+`2w$eF&?h1or=rz4jhaa~fiJhte-p^~vaCOIE z=sZE^KufojUolSTN6?Ba^t)!BqymSP7k#pu9k8nUv6`E#0+Y88FwiybslfPy3gjg| zn4c4_3H>Hc4O_ha(Lhj5G^45lG-Ymz<@bptUZ5Ct$+dkb=Jkoy?D{h=WxE%>J@mxu_#zfv#0KskV zduzFFwvo=YSo-9S$xP}#2%;E36zzVNOHS1z&+U@+7djikRlZu-la^v??QmC@5m3}; z3x5NsVao@lNr_?pC*lG)e9`puyc4nW%&ZE2;@*C>KS28#Zn7r|NFX4zr5(UZJz3V8&)lH`k!AK*2wAgM^d=KVH`1MdI3fv!l7OZS54%_(ZG@*!}h&K(Lb;}bZjM99qZ zo`Tb( z)i|om0h-4FZ!q49KXEO9z0ej--`v+6&knH_V_Bx*f_Nm&*>f9~+pj1ta8Mws71}P& zw-5YYCCdpeSl}F~JZ&(B%V(pZC?hA~!`}c)U$WF0V3I+hKKiwR!{s3s2|WlnC8FzJ z9YrzT_~r3J?K{?TUDj2hyrsMBnc#g!ic0Kn#N}U~4m-LVNKMtls!lD8zyF=}hI|e9 zN(`{Oe%RKVkd?c3rLsvMjD-0%^-kOf_QoVWkrZV*roN{OzY4~$sne%guis<|E6$BM zEBe#s6_r@k2eEmT7}m8{M|h@BFsV;`_uFHbAoH1b;BH#qe-NL^0!Fa6n$}y&S+hxH zq=U44I(e)62Duj2{68LRua$8l@a%19dOwvUHb_>tnc(_EE!2;%S7n|B)FW%Kr{=Y# zA~oH{@b}ngDRT0^+dW{)r+aEIU}b*)VlEf3Ru=kte3^L$;mX;4tmx`FlFhE2ASY1w zENFPHMge7CsE?ueaSGtar9I>rW>?t3rM)2z5LrX2?R8ckYMoiJWVMkoY|8)8jnNzf#NS&%iQf^=7M3qk!*r(a!`y!Pt4Yl!MIXzx_GfqQav#Gh zTTn#pW?V}TuU7p>^RPASEj1A;Hi)7rOM%??hw{QB!6rcO9l_5Uv*uTM@&(PWKq)Q}?SQYCVh^l)YzD)%y-*woG^!W|bjN&~nK#{&kQfl~nq+KBcX5>=f5+=|} zd;9}>$_*vEbs`0w8urAf=gp2A2a-Her}6$`zPyuVTq2MX1v>;Ij*R+eg=KN7=LOjy z+}{FlKJ~w)cCK)g$^FK7Ukh`ql<;>uS5vZ9J2Ngh24S~tSt4`k7WCp1Y`9&)M3Slu z(+C)15ZC%o2|CmjmURk?vZjD(1Y#BuOq&f}%qJv=+71V~VHf>vSaB|6ZW>P3a~1FD zjDR8GH=eJ@llA+v@-mL(IsseXE`H40#8)18DjTt15O&zM!U4WJJy|NIK8J8`65n}` zcd~3DkY_$blYD_0f~FTaC_IU;`}F!^d~jAKxM^*MWQ)DnXO&S8Z@8+EL+{sr68uof zNnn^GslSUKWV(FRxE5H?JLuvd(^NiVm*%6Y`{bUXKsQvccEs(l*7RT za3OgBEsFg0X{BG9qHJpKk^y;n0crljZ=L+`?vz@V7r6x11)Aqe`^WpbmX>t zmJU};t|_b&22-xAHY0R=HdpfIZqeBKP}r1uBhF|yOt@^fh0>$9nXgo8+sBn7c$M{F zca1?7>uqFJ2Z4XsOKsS>q~Z1D2i49AT# zXXK8@rvcJ)RfslS!Null31c<`RMKf6jy2;hnC0?Mt1h@KyZ(lpdjkd!r|KtfY%1aY zj+MNjov@k|nt;NtAY)Js_z)M@9Q`G|mg3YyLB}A&gBfp{XLQPdHT9i8z3gDhJn6^% z9X1I)PEdaRgK=SEd8gM`H=}JZ%=y3!6O`(-?h76(S=7eGT+8+4GZA@R465j_o(J@A zIYzGB;hi4&sl;4tO%=+MwujG@CIL^ik~1UWTU`1pvDb&njI=y&dk4%ZSJy6W&`|ee z(lyv5b+60xpTnH_A!=quokbkk+U-US@{q2-3B=hf(3=k zyk#^hVfKk*DLTKcV4Q&8`aV8V5aHZ8yWJhj6f8`QRtHnA_sTEo4%aU{@h6mi`f`xp z545DB!Ju{N5Z6EE3dd_dnHAjbUKe=APSsNl3~CQN{<;_XOzCMfbuFf+i?Ka7&C z$chYi?%Y5G#9Y?zlR|4~nC<3Iyu2zdwPphD9lahJo&7?qZAI!|JquP$sGQVHzsh<2 z;l$eW!V{M^5d|1Rs&|-lDu|MRHt#pLKJC{o0KSmocI*Y#~6c1IMB9;A2u}n7psG2p}s; z6-e$}DLufR5C~!bo?DPc>YI%}HkLVVN#ZtE>u^h|dJvWARpfYXqZ5nc;njNqP#E{X zYZ^n;<+XFx4SsF4q_4l<=<7jx@5VFkPlg_mY%)G&22-JBC7))<{t7Q6rZ2ku8E1w) zr>bg8?GSYOAn%I1vaZ3wONVC6h)3xj=wjS58V*vP)bw}zkKuFp(9#ZqK)^_gg~^D;OC7y{x9S1vjDJ5Io(zxU%rTK zRPydQZ3`P_iURezOdhenqUdq!c5W@nS_y_=nJH(Bpvj?j(;|Yu5c#kHOcQcIP;Vv; z#u{)AYUjl~F2*ne{9C)oA+q1fr#J)DNlK{joW9+pFLJEmg^?a7B}Tk0LH0I8slN0* zeT(4r%zWo0RTVur^PO0UymGpd!8z*}6*>kC~VU|NP!H-;rOkY?z@_4xxg7An4E)-^dW-!)6w8s-R_Mv zTR=K;q0M0L)%@X`R=zj|ywT#6cy^nnGQcoKRTTc^08kPz@pPrGobQF9?WD*&vQJYb z4o;c&RuGFJW)ZYi*0zmx3mX_UcKf}bSynZnQ2^{k4mcO1qQ?rd?XRcw*UfPF$AV#B z1w*uBpI)~8=Zq6wg|5_)3;Dzqhb@@V&>YXv(d`Oww?mBTcKyDg#HZ&>w}L0DLg;nr zvf{SeuEH{hrZOK6@0v$iq}Oq-b~1jK2DjOD-xEA7=?MZCpO5F9u-CVgG6HfeNDXx- zE7mz=v+Zl^B-*zp3_P1_um&WSw_`YQUf(mjS6@V{r=>F`zJC!2Zx`sFz} z6_%Mo4|gs%Ir9S9SyuI~HMP2$Vqc<&v;kS+Ri0N~Wi-?_I5L!;Z zeI#qP8j1?{scnCI5RC^NXR+zE zUr_idp|wI+20nCce<_VU(HQFwcjz|8w)U6RG3=dC1|-WEnp+_#MqFE?vmX*7b4M^w zn4bzDaau-kkDC+`gF5ZWdAZ%ZY(QTMy2GAu%Jb9uZAEPbj~g-UJ(1gU#(kU^NwJ2% z;iB4k1nn4hNEU|vZe|A-bog_f>W80@6wJ z&1cjVQkvH+hAO6Dt@@qx^QR9KgfMU8Su&gddLv4g(;nS-)J!o(C(||RKDpZ40v6PG z#HQ{!RK^=>K)BR0rbD|v4^s+s7U8;=w13nH#rHD9;z$@P`#xz-x?dL&a94e} z+ub^v(f?fayb{wIgG2%~Fqv?=3Yik+InS(hhj8*69&z=D3z}AvJmc`HB$GzTn~4;Y zO=Jh&E3$j+(SFV9S)Bg!rYQi1&n>3{!YzquBLwAnRm^neEa@D);mBq44uGajMf15* z(@AY={9YPYvP;5W0PD`k5+p}V^>!QS9Y?f;_L8r7jy@Goa++$FAynv;jBSlGpM^*SEv3XXm1QR_tDIXA>6NMGhI&k}*-pN@qawl8syo_*(B+7G^%EX@ z#;3ccW|0ke0!b+%N?V;Wo3$c*&>FPP@2nHSnNH=*-X5eo(>rCjsD0%OrOPO`$jTh=UKqCDnQd)Ea->8 z{~cBgDLICJZ`>V8Y3IOx8%6kIAJKUwC*rlw8T&RI8rJ5^G<5jn0?P#_PM#HuX@X*}Wt z#ZLK*3q194S+p@1`t$7~Sen~5*mU|E!~2wJ7l%INdDI!-fgD{@5~f^ZiWh8d<}K1; zjE!Rup5r-t)!Pe3`a?Slgr{)3!U78I*Lgqcx_hIhfAMSI`)S{`Ck|$(S2fDZF;Urp zdmQR-#W4-=sKL+ui`=$SdX7#lcLLRMagsr|Z3qY4r^L7DL109zR$2{ydAW3e&8cxg zqS|kXo?~3nL1)iCc!M4L!bO&qM6#4_Z!|gYGmlg9-ycyu`G#2MV9CqkaS|PFsA}Q{ zO^NvRxk@ScnS-F9(bI{s7cGfjvioYpZ?S`QNZT6s-vQI>@WTmy^0)G=#{Bl=tJLPF z@-(^DgA`9bood5*<$d&va* zZkvAx0DQieSuD3gO5gMUdBbwyy0h9FOFbfwm7VHbV3SwUSM}JTms9AuAT{FZyp^~xUsDR#9ltcA8MZi6gKtJzXSo@bUx z%{ESlLv;ENj*m9@rBtI%;EExx6a4A@dVD&ict6~4OyTm+T>ldCma6u>fv&|SQCBCd zqTGZZ!IgY}yY;>b4drNuRp@lN{T1n-MgjJ>HV{qAH|HgBrI^o%4Qbjgo3DjDwk;0= zU%Vnzoa%DWB;3nPTDGV>u5AbG-}tXMg+314=!yD#jWMY$%wW?7cZg9^w%pn>roQ2Y zU+2k{a~mkA&)r<9DQ&nNbXC{rMi}eAg9WN(QG(os-;qJKt_1o;R(R#@z{c0@ugbRC z`xWkKPUd9W|>@(*!lc(=cxxl^YdlS?fUSEBZ8g*Xo^*jGXjwb zzIO<;sz9yauFDUz^y0RE$3VDN-=o&PytrSsR|B2oID8ggFu5!!qH0_Y2yS%i@EOoe|;d*_#!>NWJ> zpHH+sHU{|b3Gzqk;QvzQjFeBfAmM!mj4pJbooe!qI$UZf_&ebSWlVMyh)IBgpaJQc-%%rT!B_)&fGD+9DcNzwdp_!)kacvgFNnHI`|UAr z`UAs*cv1YvD8ajw)c`z*qjZum(Q^@82;QgiByxE08XPIX=k|-&C{^xkz#~>h*Ry_j zy1f&)7r%kJE%@NrP`icq%zw`D^kgP^S6rbM;J}nF0bV}!1QhN%|D4GO0SfP)vZRNP zQiBktgHw-;Ma~g0kIuk(uU(1#uX9WMyo$Q^0$iBt+bU7 zcLh#|5XKH>3{fxVG0*5VUOR5io$j#rp056PJju2bIA^*lgI9o8GF%2vQ~}5pN@!Su|pNRj#P)an!Wdg>A$|&oSL7H_4Tk|8sUQe z+(m{TyZbB`Kj8np1P_Ge=z+?D01VXkXSAE|2abF#c%HlX8V@@`CVqGbt+2dwyS`fbKhUlj)#N8s#H;2 zlO?QhRLAV1Xot_9CWjtHx4?52Km65ZA9;Gm!pK5g$xWVT*2eo+c3%ZPBe+=nC5+Hf zB`)j%Df7DJZ{AM*7NlZs2PRvtbkMB=n97oo?p^(VgOIVG>h`BT=_)`wU4c{q{&5@Io| zwGD-L*Z*GgSfkPiNok1&0Ke(^57>;8Kl1ReFf5UySfwvVbnA#+nFlVUIiL4p#Qht$ zWH1boBwZQx#W~Rq2r`aDjuStWCGQm;;EAl}m1jc1{e18@&tjiD6Bq8(wte7&?9ov`oh#PJ6NJBbspNY zK0v}pyRCs{168fcKLjdu+PZ0|o2m{`NQ~NrwXE7#Rl2n-nOtd5s;;RD%Zg|3dEc`W zI+>7G)Bc#2f9`$mecs>K^Inqu-CY}QTlCdM0B~DyW1t6s!6gI6Tk!Fz^44egST48s z$@fc9ITK2W&=Qfhifk|*+9vjhp~$XBUl-Q_=m%rHeR5ytCU01Z+d`zrro@wY8epAI zNru8ZM48U zKwOkVtPX1CX=yc8f;Q(8*le` zJiOrG9S$pYSkt=_a!9cz()AUDfS3-aVo5nBC0K$O+A0mm%^WJ#EX0$Yoio6RbU7%D zj8{TQ-fk24c%1m6-D$Z;oRv|vJKei0De^sHS{g`&aURk7%3;iIZX(i%YP_3MF&s*0 zXFv)M#KnXh3^a4NV~fNh-X_uI5Th=;)#X9UP4-5I)g5&?tx zRd5KcfsRI@(do9^+g)y_tGy#2INYtRjzD{hyK**|NXwx_Sgdfzkh^@gVa~JOwv-r> zrBtsZ?X28_?(LE+rMF8-wylj$on8GvED@11>3hhSG}i$!6&n;I9Vsc!(wx1qDjMeJ zUppW9vib2SiYJ%ly312}g*TEcXFdfiW&ez*Jb$&o)Fv%Gxy+|?~tj_zase)@xj z@bU3{DfY_xqoX6GB`-bm%Pq?ed5Z5|IaU1VL4*H%*R3EFIWVZ8{(fqijs*ie{rxc` z;OdxMXa`)u5ArF$^4Tkw+xD&>{lmQ@Th2bQ;LLZ- z&`;0hu&EYQ3aWmfJv53k(|_%en|_vBg7LA!>Hr!cj%%q*7Kltgm8k-tQS>|hhyj1I z4r2-is3VqhX3YlK_XF9-Ub3&#_F>qE5#m|{AEMx99RaUr2>1qaAb*e?7`Gtcza8NG zbiYDQdL^2nQ2gVlbUy$79%bFc6ZCZUx6>1e^XJ~brg$oEUYq96eezVY;jhsalC1G=A)>M^_A)q8S6w5f8MLcnA=w zpVvlQVH7unF_93*Ei@>f=8*6sVGTw_K+ENSgdZ6w>f_YpuvU`LsB+Y4qN!4LmO)_? z)1;N!ZNULhyDSr^DC0D{L^o}{uC!3yKFvQFvQWf>z-X2*Ig%5Vb3^{x`SY6zzN$$z zA?i#?==?-Ep`*$PU9Aq46T7IKOpwg&<|Sr>lhIIe)B0*9UJD)GaUIOTw9nsGF9U@oboUqEm;ol z?#o^neQyPx%>CrT(afiZHbYlUF{v7fYc^i6TrJcbuUVy}3?!d!XYo~rbu%P^AFU`o zr>m{gk(lmk&%HQh`5LsCF_Vo4)aUZPyMf_Q+M(NZub$051e=CYl)uNYX?f`dop2{2 zK+r723qP#M

udyft;usOriHm-3dSu(ks;XYXOSao;y!a7aUVZ8-ZdoC*^?PjT$G z3ibNQRb{3}^OhA*GNUB*dE?N^(nV0(%6)@{yngbIGWf+QUjPb~t-S@)QpoPt&{u9P znC^gVnQLXVusN|rnKWHKS$wBB{pPe@Sj)WJd9u0G`kDOvo-xnGeZGJEOwV2n=Kiwx z&eKz2Nd+Q6f&yvgweYSm8Q?++0%)`Pg#Jt)+ zAI97%u*iRd?EW9nO)l5}KtPd)-X0iO1d|H^l9%=_65uzA^~%tm56AIZK(M_laJ;qu Gv3~)O{%_g< diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Up.png.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Up.png.meta deleted file mode 100644 index 22ec8f1c2..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/KeyboardKeyGlyphs_Up.png.meta +++ /dev/null @@ -1,99 +0,0 @@ -fileFormatVersion: 2 -guid: 73830216a21a45e499598b2624ef723e -TextureImporter: - fileIDToRecycleName: {} - externalObjects: {} - serializedVersion: 9 - 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 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - platformSettings: - - serializedVersion: 2 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 55af5c7de98a31247adeb8bcd93aa233 - vertices: [] - indices: - edges: [] - weights: [] - spritePackingTag: NonNativeKeyboard - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas deleted file mode 100644 index 88acc1182..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas +++ /dev/null @@ -1,49 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!687078895 &4343727234628468602 -SpriteAtlas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: NonNativeKeyboardSprites - m_EditorData: - serializedVersion: 2 - textureSettings: - serializedVersion: 2 - anisoLevel: 1 - compressionQuality: 50 - maxTextureSize: 2048 - textureCompression: 0 - filterMode: 1 - generateMipMaps: 1 - readable: 0 - crunchedCompression: 0 - sRGB: 1 - platformSettings: [] - packingSettings: - serializedVersion: 2 - padding: 4 - blockOffset: 1 - allowAlphaSplitting: 0 - enableRotation: 1 - enableTightPacking: 1 - variantMultiplier: 1 - packables: - - {fileID: 2800000, guid: 5eb0b332d494ca84d9c38cf77ba0e12d, type: 3} - - {fileID: 2800000, guid: 7029cbbbce5f0ac4dbc4e93267bfddf4, type: 3} - - {fileID: 2800000, guid: b575d7b7d87461b4ea9965b50e367249, type: 3} - - {fileID: 2800000, guid: 161fc5872226601449a8143014ece469, type: 3} - - {fileID: 2800000, guid: ec8b4073237c9724ba8422f71fda3694, type: 3} - - {fileID: 2800000, guid: 11e4524f21fc6434abbbba83d70d0040, type: 3} - - {fileID: 2800000, guid: 1dde69ccd9583fa4f8dfab2b590119ee, type: 3} - - {fileID: 2800000, guid: f6f44dc3b387f9d48bcaaee0038969c4, type: 3} - - {fileID: 2800000, guid: 73830216a21a45e499598b2624ef723e, type: 3} - - {fileID: 2800000, guid: 2adc8135dd936004db37d5cead85f951, type: 3} - totalSpriteSurfaceArea: 0 - bindAsDefault: 1 - m_MasterAtlas: {fileID: 0} - m_PackedSprites: [] - m_PackedSpriteNamesToIndex: [] - m_Tag: NonNativeKeyboardSprites - m_IsVariant: 0 diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas.meta deleted file mode 100644 index f41a9aae9..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/NonNativeKeyboardSprites.spriteatlas.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e81f5531b8920a64d8453c403213fc82 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 4343727234628468602 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/Placeholder.png b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/Placeholder.png deleted file mode 100644 index b85c81f26a43cea58d7b272f48970004fadaac8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18829 zcmeI3ZERcR6~`aDZsWCdafC`k8OxnR1xR)7y^bBnuJg7!q}7(TwAmUYL~?E4Bo?u+ zYdcL^R^owBGc`~RHm#9BtyWEY5o4eU3gSZ|tak z8^?L#+=SPCxsjsWbI)_m`JdnO=6vu^_U~=mym8w`LdfPlyF&*EvBIO3*f+qRkB46W z6#jf8x%-|pA(c(|Yq31>+aD9+zaH!8%yhPYKM>L4HA++qt2IOMB#b5`*ff+>BKNBq zA*}Ys5)IC4FONHgShT@;$lETpCwHlRvE9c~>cL}sJ0i#KkNBg`rpArIp#UU^s~JTY ziuWhdfuRN`%^QGcd@VW!IwW&{gR=z-3Z3oygtGRc4_4h|014A$0Ysa{d` z`~9Ni7Tsi)N~{jOJ-tPLcqLASR2SRIGtFi@T2z?PZkO# z(mFe!C=Mw}QLd51QbEy3AtpJH>Zj785mD_|<7y(4hB&!oT(VEgXz4y}g^~sLiiKfL z+S?1YOX`isOO{S&T8{t%9cjtPbjQ)8DjrbN+CVCzwjP02s!MgBiS;Z_&XP>%Sy8(> z6k8z-JuHka1vW!L=ryn_r79UM)uCzqjck?eUqC4A+J&piC){x;mWXPD={tiWAF?># zi`mqWl2IEm(j|FZZcm5o3wZnixy~i|0+LjegpK5Kv}@5=&(WeBUYF$Uki7xP6OiTN z97QAf9I$_)N=8{zmg2ERd7_a(kCuunnZ{UL=~cyKqBkfmzAPG9SXF^tTECV8S!!c# zP%QPjD2lGMz@9`pqa-5go=_vasENg*0iP$ThP_gc%j5C+TyoeWyTXwkkIN4)l{#7S zx_yv+S@^QlAuTe1y9H9SgC(j(ApN4OaMZ0t>J^WxR*tGJSyp|nu-_eVg}wEv6!k`A zPqa{|DA}??`%*DD_muvkG1yBKiq-j*I?3m*bA>&gu&Xxe@w*g{$L(_WcqPdz%XQGx zLN6uKEGxA;mWI`Ov}hH>TBax4LG|#`w+oK`7(JnqN-C}5{%de9Y{0^iRyeURhVJ8l z62Y^rF@oDejRwUfZx>}1BK5G?^66X~0+zoheB~O0eQLsJd$Ck>)XGWHT2E$BNvSQp zutL_d^I6uVVSM_ah<8DM>?@dvv~uK&O~cxD)#sark|)&vZyFX?aimX4^s3QDabW>3 zyja`JvH4uOvle#i@|_sO%P9c67*>=*caIztm%Ur8%*J=(ZtNdmtjXnMSu>j(c4cg?A`B;19ybJ+-mU>#g+$MgBD(u|GDX_IHM2 za1y8SMDfZ{iU#qXl9BhU7+K`eBiVEneKe!{kiCTue(;%7EPUu(wnYmk*_ZjS*wUAo zmCI!o;eZ&MCN5(>oY%y~0WmgBT*iDjuZfETVr-hYjQMb06Bh@>*fen&^WnTEE)IyX zY2q^G!+A|y91vsE#AVEf^P0FgAjYPN%a{-6HF0r3j7<}lF(1xr;^Kf9n`a^*05!BdFrKG06cvF(IpA136JJp6s1 zkO7I154s5noF-(e_ITIDy9g=Yx+m1qG4$5ezdd*NEq7PmHB~jax&G{?-<|!=&PS}m zksE*3vgLz^CbmC)>Z!iBUwdV6>hi>;7vfh4x%2#EgxH`eRJIUe zC!`sk;A^T5C<{-I;Qk zv|PUpvsC@-!GDmU3KUTOX#P(>WhI*G=6`*zj26AtmlJQMV#c4C9nVma`EO1Rx3Z^q zXS=pAZ!&j?$rQKc-(V6?UVUeu^(79-=jIL} ztIGVxbH88@SLfbj4+sBkO&s6Q3KO@LIC0D{;0Uc^g4l7GQ76pFWEZflfUp^ngkTaz z$Mr;@e-o*I*`LvJ>$7%;1v|6S3OE!hwBfAGoWi9sS%s4@I!>4Z$Ro{L7t-pXoY`y} zfn|0JlUquVjTOZzsBaA>&4PJpTY~l8^|YmcxfZAZL#vR_XcOb(fQiD!+E|~! z7ixf?<`Jy4q_MeF5T?!AC*~f8X#stPCe)ykP^*A_Gp(?4UyE zpmi8eoC#3SKryXRfj~fb&I3I0+I?~guF7lE$A9$H*!i)S2DgKEaxQ=Pc55>szn|S| z0sEhGCkYhE zRbi&TY|Eb*`=qgUA2n{yzjp0RR|pE7_0Csgwo9vK`>Y}=^QJj1ZWd3F*tbe5`&$xnu&)ioL~Yy?cs#5Wvg-5L!<*fxKN+H;G-9uH3XA|7aRn^ z`A93Y*|KX!knv_ zFg;8X-X}B>XkACu)B2DITgGdWwv3ZPha!P>xC3U(sJe1wKUqcFZekP|6u7-{5rCg& zS}-YxH5G*_Kz9_Aq6P!=eSk%r!mXBz?4io?Jbh@kUC;v^n_voHNj2}#6F&FV49MC? z)&m*6uwV_tGO;);wAx6v6M*0y3mQP~O@NJ5P-UMz?Abf4KV+45jApm6DkrO_Uu91_ zN3!4BKy_Tb&04dC7JBxa{YCt2NkS8sozp#6UifhI5BX@$QvaKVob`dh*U9ONWxZgg zY)@YL@aOlPo-LcMefq&~;S8|3gAXGJZ6q81d~NJYUCQ5JCoevvk>&q>3MJlU;hpin fq}R`Ptt0DybxM2ry#x2cXtJkuZ|Irtc0cq#t_Gg> diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/Placeholder.png.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/Placeholder.png.meta deleted file mode 100644 index 6efd88efb..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Icons/Placeholder.png.meta +++ /dev/null @@ -1,132 +0,0 @@ -fileFormatVersion: 2 -guid: 2adc8135dd936004db37d5cead85f951 -TextureImporter: - fileIDToRecycleName: {} - externalObjects: {} - serializedVersion: 9 - 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 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - 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: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - platformSettings: - - serializedVersion: 2 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: Windows Store Apps - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - serializedVersion: 2 - buildTarget: WebGL - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 7235e86522f7462438a6f73987376edd - vertices: [] - indices: - edges: [] - weights: [] - spritePackingTag: NonNativeKeyboard - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs.meta deleted file mode 100644 index a888030e0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 111b3cbc1124b6a40b9726022cd69f70 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab deleted file mode 100644 index 7e0d039b1..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab +++ /dev/null @@ -1,34602 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &100204 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22443326} - - component: {fileID: 22237330} - - component: {fileID: 4550885347688056754} - m_Layer: 0 - m_Name: keyboard_Asterisk - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22443326 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100204} - 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_Children: [] - m_Father: {fileID: 22490200} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.006362915, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22237330 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100204} - m_CullTransparentMesh: 0 ---- !u!114 &4550885347688056754 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100204} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '*' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4550885347688056754} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &100386 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22441896} - - component: {fileID: 22232726} - - component: {fileID: 11405664} - - component: {fileID: 11434882} - - component: {fileID: 11429606} - m_Layer: 0 - m_Name: slash_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22441896 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100386} - 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_Children: - - {fileID: 22427104} - - {fileID: 22417272} - m_Father: {fileID: 22460848} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22232726 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100386} - m_CullTransparentMesh: 0 ---- !u!114 &11405664 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100386} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11434882 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100386} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11480960} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11429606 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100386} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: / - ShiftValue: ---- !u!1 &100464 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22420378} - - component: {fileID: 22288078} - - component: {fileID: 3173562886919763487} - m_Layer: 0 - m_Name: keyboard_Hyphen - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22420378 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100464} - 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_Children: [] - m_Father: {fileID: 22462662} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.002532959, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22288078 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100464} - m_CullTransparentMesh: 0 ---- !u!114 &3173562886919763487 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100464} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '-' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3173562886919763487} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &100600 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22460848} - - component: {fileID: 22290486} - - component: {fileID: 11409552} - - component: {fileID: 11494450} - m_Layer: 0 - m_Name: keyboard_Space_Url - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &22460848 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100600} - 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_Children: - - {fileID: 22432870} - - {fileID: 22410804} - - {fileID: 22441896} - - {fileID: 22468454} - - {fileID: 22411788} - - {fileID: 22462662} - - {fileID: 22451892} - m_Father: {fileID: 22458684} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 124} - m_SizeDelta: {x: 1222.5, y: 76.65} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22290486 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100600} - m_CullTransparentMesh: 0 ---- !u!114 &11409552 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100600} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.11764706, g: 0.12156863, b: 0.13725491, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11494450 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100600} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!1 &101348 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22430620} - - component: {fileID: 22248240} - - component: {fileID: 11465080} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22430620 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101348} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22492868} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22248240 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101348} - m_CullTransparentMesh: 0 ---- !u!114 &11465080 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101348} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &101610 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22485892} - - component: {fileID: 22290994} - - component: {fileID: 11417928} - - component: {fileID: 11408050} - - component: {fileID: 11446920} - m_Layer: 0 - m_Name: P_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22485892 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101610} - 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_Children: - - {fileID: 22426486} - - {fileID: 22480834} - m_Father: {fileID: 22479812} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 918, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22290994 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101610} - m_CullTransparentMesh: 0 ---- !u!114 &11417928 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101610} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11408050 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101610} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11495442} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11446920 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101610} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: p - ShiftValue: P ---- !u!1 &102650 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22477236} - - component: {fileID: 22281598} - - component: {fileID: 11413782} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22477236 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102650} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22412128} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22281598 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102650} - m_CullTransparentMesh: 0 ---- !u!114 &11413782 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102650} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &102692 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22466816} - - component: {fileID: 22275444} - - component: {fileID: 3605769191140905409} - m_Layer: 0 - m_Name: keyboard_n07 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22466816 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102692} - 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_Children: [] - m_Father: {fileID: 22405132} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.00090026855, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22275444 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102692} - m_CullTransparentMesh: 0 ---- !u!114 &3605769191140905409 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102692} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 7 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3605769191140905409} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &102846 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22451410} - - component: {fileID: 22207248} - - component: {fileID: 11454324} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22451410 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102846} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22439758} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22207248 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102846} - m_CullTransparentMesh: 0 ---- !u!114 &11454324 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 102846} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &103102 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22479812} - - component: {fileID: 22209054} - - component: {fileID: 11451576} - - component: {fileID: 11439834} - m_Layer: 0 - m_Name: keyboard_Alpha - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22479812 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103102} - 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_Children: - - {fileID: 22428854} - - {fileID: 22411626} - - {fileID: 22487526} - - {fileID: 22425902} - - {fileID: 22455304} - - {fileID: 22492986} - - {fileID: 22423982} - - {fileID: 22452272} - - {fileID: 22436598} - - {fileID: 22485892} - - {fileID: 22418362} - - {fileID: 22448102} - - {fileID: 22430750} - - {fileID: 22413622} - - {fileID: 22411502} - - {fileID: 22429856} - - {fileID: 22471068} - - {fileID: 22492868} - - {fileID: 22490040} - - {fileID: 22488768} - - {fileID: 22484368} - - {fileID: 22476324} - - {fileID: 22402474} - - {fileID: 22458212} - - {fileID: 22478130} - - {fileID: 22413830} - - {fileID: 22423580} - - {fileID: 22477678} - - {fileID: 22475638} - - {fileID: 22496376} - - {fileID: 22491032} - - {fileID: 22486042} - - {fileID: 22401596} - - {fileID: 22422930} - - {fileID: 22444694} - m_Father: {fileID: 22458684} - 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: 0, y: 0} - m_SizeDelta: {x: 1222.5, y: 306.6} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209054 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103102} - m_CullTransparentMesh: 0 ---- !u!114 &11451576 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103102} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.11764706, g: 0.12156863, b: 0.13725491, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11439834 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103102} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!1 &103114 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22412128} - - component: {fileID: 22267378} - - component: {fileID: 11428272} - - component: {fileID: 11445442} - - component: {fileID: 11426314} - m_Layer: 0 - m_Name: n02_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22412128 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103114} - 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_Children: - - {fileID: 22433460} - - {fileID: 22477236} - m_Father: {fileID: 22441282} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22267378 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103114} - m_CullTransparentMesh: 0 ---- !u!114 &11428272 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103114} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11445442 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103114} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11413782} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11426314 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103114} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 2 - ShiftValue: ---- !u!1 &103988 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22495524} - - component: {fileID: 22275556} - - component: {fileID: 1749709116190024291} - m_Layer: 0 - m_Name: keyboard_LeftParenthesis - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22495524 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103988} - 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_Children: [] - m_Father: {fileID: 22406720} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0056152344, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22275556 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103988} - m_CullTransparentMesh: 0 ---- !u!114 &1749709116190024291 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 103988} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ( - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1749709116190024291} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &104864 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22424336} - - component: {fileID: 22202390} - - component: {fileID: 3770621604958090559} - m_Layer: 0 - m_Name: keyboard_s - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22424336 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104864} - 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_Children: [] - m_Father: {fileID: 22413622} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0065612793, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22202390 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104864} - m_CullTransparentMesh: 0 ---- !u!114 &3770621604958090559 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104864} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: S - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3770621604958090559} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &105314 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22487824} - - component: {fileID: 22273100} - - component: {fileID: 3993777365790581395} - m_Layer: 0 - m_Name: keyboard_v - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22487824 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105314} - 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_Children: [] - m_Father: {fileID: 22477678} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.005218506, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22273100 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105314} - m_CullTransparentMesh: 0 ---- !u!114 &3993777365790581395 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105314} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: V - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3993777365790581395} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &105596 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22427586} - - component: {fileID: 22290940} - - component: {fileID: 11456522} - - component: {fileID: 11401680} - - component: {fileID: 11448386} - m_Layer: 0 - m_Name: Quotation_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22427586 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105596} - 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_Children: - - {fileID: 22485696} - - {fileID: 22416406} - m_Father: {fileID: 22464878} - m_RootOrder: 15 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22290940 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105596} - m_CullTransparentMesh: 0 ---- !u!114 &11456522 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105596} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11401680 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105596} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11422964} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11448386 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105596} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '"' - ShiftValue: "\xB0" ---- !u!1 &106314 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22438734} - - component: {fileID: 22244116} - - component: {fileID: 11434834} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22438734 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106314} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22404266} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22244116 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106314} - m_CullTransparentMesh: 0 ---- !u!114 &11434834 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106314} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &106468 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22476458} - - component: {fileID: 22255310} - - component: {fileID: 1329973937297089497} - m_Layer: 0 - m_Name: keyboard_LowLine - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22476458 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106468} - 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_Children: [] - m_Father: {fileID: 22424052} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0065612793, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22255310 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106468} - m_CullTransparentMesh: 0 ---- !u!114 &1329973937297089497 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106468} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: _ - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1329973937297089497} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &107098 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22457140} - - component: {fileID: 22200354} - - component: {fileID: 11427392} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22457140 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107098} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22468698} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22200354 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107098} - m_CullTransparentMesh: 0 ---- !u!114 &11427392 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &107284 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22475506} - - component: {fileID: 22296198} - - component: {fileID: 11419704} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22475506 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107284} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22491728} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22296198 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107284} - m_CullTransparentMesh: 0 ---- !u!114 &11419704 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107284} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &107322 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22429652} - - component: {fileID: 22228760} - - component: {fileID: 4824161434703171681} - m_Layer: 0 - m_Name: keyboard_n05 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22429652 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107322} - 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_Children: [] - m_Father: {fileID: 22457066} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0013427734, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22228760 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107322} - m_CullTransparentMesh: 0 ---- !u!114 &4824161434703171681 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107322} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 5 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4824161434703171681} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &107822 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22475638} - - component: {fileID: 22262966} - - component: {fileID: 11492052} - - component: {fileID: 11471312} - - component: {fileID: 11477144} - m_Layer: 0 - m_Name: B_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22475638 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107822} - 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_Children: - - {fileID: 22411230} - - {fileID: 22428030} - m_Father: {fileID: 22479812} - m_RootOrder: 28 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22262966 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107822} - m_CullTransparentMesh: 0 ---- !u!114 &11492052 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107822} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11471312 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107822} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11433628} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11477144 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107822} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: b - ShiftValue: B ---- !u!1 &107950 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22449608} - - component: {fileID: 22278584} - - component: {fileID: 8110098023297676271} - m_Layer: 0 - m_Name: keyboard_n0 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22449608 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107950} - 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_Children: [] - m_Father: {fileID: 22446928} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0057678223, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22278584 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107950} - m_CullTransparentMesh: 0 ---- !u!114 &8110098023297676271 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 107950} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 0 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8110098023297676271} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &109714 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22489008} - - component: {fileID: 22233504} - - component: {fileID: 3767512230428610148} - m_Layer: 0 - m_Name: keyboard_colon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22489008 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109714} - 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_Children: [] - m_Father: {fileID: 22412186} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.006500244, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22233504 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109714} - m_CullTransparentMesh: 0 ---- !u!114 &3767512230428610148 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109714} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ':' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3767512230428610148} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &110114 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22496102} - - component: {fileID: 22298434} - - component: {fileID: 11423458} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22496102 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110114} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22496850} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22298434 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110114} - m_CullTransparentMesh: 0 ---- !u!114 &11423458 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110114} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &110624 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22457912} - - component: {fileID: 22210894} - - component: {fileID: 11449860} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22457912 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110624} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22451892} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22210894 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110624} - m_CullTransparentMesh: 0 ---- !u!114 &11449860 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110624} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &111220 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22430750} - - component: {fileID: 22273988} - - component: {fileID: 11404190} - - component: {fileID: 11470328} - - component: {fileID: 11492724} - m_Layer: 0 - m_Name: A_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22430750 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111220} - 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_Children: - - {fileID: 22417264} - - {fileID: 22414504} - m_Father: {fileID: 22479812} - m_RootOrder: 12 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22273988 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111220} - m_CullTransparentMesh: 0 ---- !u!114 &11404190 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111220} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11470328 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111220} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11479148} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11492724 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111220} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: a - ShiftValue: A ---- !u!1 &111426 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22414504} - - component: {fileID: 22244518} - - component: {fileID: 11479148} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22414504 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111426} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22430750} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22244518 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111426} - m_CullTransparentMesh: 0 ---- !u!114 &11479148 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111426} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &111632 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22436598} - - component: {fileID: 22299792} - - component: {fileID: 11415278} - - component: {fileID: 11460888} - - component: {fileID: 11490808} - m_Layer: 0 - m_Name: O_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22436598 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111632} - 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_Children: - - {fileID: 22402854} - - {fileID: 22477136} - m_Father: {fileID: 22479812} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 816, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22299792 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111632} - m_CullTransparentMesh: 0 ---- !u!114 &11415278 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111632} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11460888 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111632} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11418040} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11490808 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111632} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: o - ShiftValue: O ---- !u!1 &111838 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22404324} - - component: {fileID: 22273266} - - component: {fileID: 11439478} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22404324 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111838} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22411626} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22273266 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111838} - m_CullTransparentMesh: 0 ---- !u!114 &11439478 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111838} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &111968 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22409728} - - component: {fileID: 22289322} - - component: {fileID: 11497224} - - component: {fileID: 11411850} - - component: {fileID: 11447238} - m_Layer: 0 - m_Name: procentSign_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22409728 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111968} - 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_Children: - - {fileID: 22497062} - - {fileID: 22465256} - m_Father: {fileID: 22464878} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 408, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22289322 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111968} - m_CullTransparentMesh: 0 ---- !u!114 &11497224 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111968} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11411850 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111968} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11496008} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11447238 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111968} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '%' - ShiftValue: "\xB5" ---- !u!1 &112062 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22455986} - - component: {fileID: 22298680} - - component: {fileID: 11409338} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22455986 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112062} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22476324} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22298680 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112062} - m_CullTransparentMesh: 0 ---- !u!114 &11409338 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112062} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &112714 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22424590} - - component: {fileID: 22253910} - - component: {fileID: 1665931555022093053} - m_Layer: 0 - m_Name: keyboard_Space - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22424590 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112714} - 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_Children: [] - m_Father: {fileID: 22418770} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.002319336, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22253910 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112714} - m_CullTransparentMesh: 0 ---- !u!114 &1665931555022093053 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112714} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Space - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1665931555022093053} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &112982 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22436468} - - component: {fileID: 22253312} - - component: {fileID: 6036211770715982206} - m_Layer: 0 - m_Name: keyboard_SoftHyphen - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22436468 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112982} - 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_Children: [] - m_Father: {fileID: 22447026} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.006500244, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22253312 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112982} - m_CullTransparentMesh: 0 ---- !u!114 &6036211770715982206 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112982} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '-' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6036211770715982206} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &113540 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22438832} - - component: {fileID: 22271150} - - component: {fileID: 11495184} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22438832 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113540} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22474578} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22271150 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113540} - m_CullTransparentMesh: 0 ---- !u!114 &11495184 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113540} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &113620 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22446928} - - component: {fileID: 22290404} - - component: {fileID: 11402014} - - component: {fileID: 11498948} - - component: {fileID: 11440438} - m_Layer: 0 - m_Name: n0_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22446928 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113620} - 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_Children: - - {fileID: 22449608} - - {fileID: 22475582} - m_Father: {fileID: 22441282} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -231} - m_SizeDelta: {x: 202, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22290404 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113620} - m_CullTransparentMesh: 0 ---- !u!114 &11402014 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113620} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11498948 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113620} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11419346} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11440438 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113620} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 0 - ShiftValue: ---- !u!1 &114078 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22409046} - - component: {fileID: 22210998} - - component: {fileID: 2350760866162767259} - m_Layer: 0 - m_Name: keyboard_r - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22409046 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114078} - 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_Children: [] - m_Father: {fileID: 22425902} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0056762695, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22210998 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114078} - m_CullTransparentMesh: 0 ---- !u!114 &2350760866162767259 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114078} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: R - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2350760866162767259} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &114526 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22404666} - - component: {fileID: 22251686} - - component: {fileID: 11450624} - - component: {fileID: 114428551527755376} - m_Layer: 0 - m_Name: keyboard_a - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22404666 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114526} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22468698} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22251686 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114526} - m_CullTransparentMesh: 0 ---- !u!114 &11450624 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114526} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ac0bab4de91677f49914700249bbfd65, type: 3} - m_Name: - m_EditorClassIdentifier: - m_TextField: {fileID: 0} - m_ImageField: {fileID: 114428551527755376} - m_DisabledColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} ---- !u!114 &114428551527755376 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114526} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: f6f44dc3b387f9d48bcaaee0038969c4, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &114726 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22497062} - - component: {fileID: 22278242} - - component: {fileID: 9015407448272089273} - m_Layer: 0 - m_Name: keyboard_procentSign - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22497062 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114726} - 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_Children: [] - m_Father: {fileID: 22409728} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.006362915, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22278242 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114726} - m_CullTransparentMesh: 0 ---- !u!114 &9015407448272089273 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114726} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '%' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 9015407448272089273} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &114788 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22407146} - - component: {fileID: 22225898} - - component: {fileID: 11425092} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22407146 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114788} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22446786} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22225898 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114788} - m_CullTransparentMesh: 0 ---- !u!114 &11425092 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 114788} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &115118 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22434546} - - component: {fileID: 22217768} - - component: {fileID: 7794365799640979163} - m_Layer: 0 - m_Name: keyboard_RightNumbers - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22434546 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115118} - 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_Children: [] - m_Father: {fileID: 22497832} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0020751953, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22217768 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115118} - m_CullTransparentMesh: 0 ---- !u!114 &7794365799640979163 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115118} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '&123' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 7794365799640979163} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &115356 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22429566} - - component: {fileID: 22256986} - - component: {fileID: 11471986} - - component: {fileID: 11430642} - - component: {fileID: 11486678} - m_Layer: 0 - m_Name: keyboard_LeftSymbols - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22429566 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115356} - 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_Children: - - {fileID: 22409590} - - {fileID: 22468698} - - {fileID: 22499340} - - {fileID: 22462540} - m_Father: {fileID: 22400998} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 49.6, y: -0.1} - m_SizeDelta: {x: 101.7, y: 306} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22256986 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115356} - m_CullTransparentMesh: 0 ---- !u!114 &11471986 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115356} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0, b: 0, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11430642 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115356} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!114 &11486678 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115356} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 328426518affdb0428cecc2a1d99c373, type: 3} - m_Name: - m_EditorClassIdentifier: - m_PageBck: {fileID: 11474394} - m_PageFwd: {fileID: 11431514} ---- !u!1 &115424 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22452782} - - component: {fileID: 22296834} - - component: {fileID: 11493640} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22452782 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115424} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22488768} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22296834 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115424} - m_CullTransparentMesh: 0 ---- !u!114 &11493640 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115424} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &115894 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411316} - - component: {fileID: 22243892} - - component: {fileID: 11412602} - - component: {fileID: 11489086} - - component: {fileID: 11425326} - m_Layer: 0 - m_Name: LeftNumbers_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411316 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115894} - 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_Children: - - {fileID: 22446988} - - {fileID: 22416294} - m_Father: {fileID: 22416050} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22243892 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115894} - m_CullTransparentMesh: 0 ---- !u!114 &11412602 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115894} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11489086 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115894} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11452304} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11425326 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115894} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 3 ---- !u!1 &115944 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22435746} - - component: {fileID: 22203820} - - component: {fileID: 11469084} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22435746 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115944} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22404838} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22203820 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115944} - m_CullTransparentMesh: 0 ---- !u!114 &11469084 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115944} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &116040 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22433482} - - component: {fileID: 22276032} - - component: {fileID: 11439402} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22433482 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116040} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22474762} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22276032 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116040} - m_CullTransparentMesh: 0 ---- !u!114 &11439402 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116040} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &116422 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22438784} - - component: {fileID: 22261358} - - component: {fileID: 11438478} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22438784 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116422} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22477678} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22261358 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116422} - m_CullTransparentMesh: 0 ---- !u!114 &11438478 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &116914 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22490744} - - component: {fileID: 22241840} - - component: {fileID: 11495480} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22490744 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116914} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22405132} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22241840 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116914} - m_CullTransparentMesh: 0 ---- !u!114 &11495480 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116914} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &117084 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22471102} - - component: {fileID: 22276048} - - component: {fileID: 11446998} - - component: {fileID: 11498796} - - component: {fileID: 11486816} - m_Layer: 0 - m_Name: Enter_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22471102 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117084} - 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_Children: - - {fileID: 22443268} - - {fileID: 22425116} - m_Father: {fileID: 22405956} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22276048 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117084} - m_CullTransparentMesh: 0 ---- !u!114 &11446998 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117084} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11498796 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117084} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11421568} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11486816 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117084} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 0 ---- !u!1 &117362 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22482422} - - component: {fileID: 22275836} - - component: {fileID: 718045433180131117} - m_Layer: 0 - m_Name: keyboard_n04 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22482422 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117362} - 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_Children: [] - m_Father: {fileID: 22491366} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.00090026855, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22275836 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117362} - m_CullTransparentMesh: 0 ---- !u!114 &718045433180131117 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117362} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 4 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 718045433180131117} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &117382 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22480580} - - component: {fileID: 22265588} - - component: {fileID: 8457198634668153716} - m_Layer: 0 - m_Name: keyboard_d - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22480580 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117382} - 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_Children: [] - m_Father: {fileID: 22411502} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0061035156, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22265588 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117382} - m_CullTransparentMesh: 0 ---- !u!114 &8457198634668153716 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: D - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8457198634668153716} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &117400 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22417272} - - component: {fileID: 22227962} - - component: {fileID: 11480960} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22417272 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117400} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22441896} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22227962 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117400} - m_CullTransparentMesh: 0 ---- !u!114 &11480960 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 117400} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &118134 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22434488} - - component: {fileID: 22250758} - - component: {fileID: 6903398191824540327} - m_Layer: 0 - m_Name: keyboard_n06 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22434488 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118134} - 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_Children: [] - m_Father: {fileID: 22434070} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0018005371, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22250758 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118134} - m_CullTransparentMesh: 0 ---- !u!114 &6903398191824540327 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118134} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 6 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6903398191824540327} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &118490 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22470588} - - component: {fileID: 22210996} - - component: {fileID: 11413876} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22470588 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118490} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22448648} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22210996 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118490} - m_CullTransparentMesh: 0 ---- !u!114 &11413876 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118490} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &118552 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22478130} - - component: {fileID: 22241020} - - component: {fileID: 11479894} - - component: {fileID: 11447464} - - component: {fileID: 11406078} - m_Layer: 0 - m_Name: Z_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22478130 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118552} - 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_Children: - - {fileID: 22442870} - - {fileID: 22419104} - m_Father: {fileID: 22479812} - m_RootOrder: 24 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22241020 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118552} - m_CullTransparentMesh: 0 ---- !u!114 &11479894 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118552} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11447464 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118552} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11420248} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11406078 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118552} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: z - ShiftValue: Z ---- !u!1 &118562 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22499340} - - component: {fileID: 22271996} - - component: {fileID: 11436626} - - component: {fileID: 11431514} - - component: {fileID: 11403064} - m_Layer: 0 - m_Name: Shift_Symbols_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22499340 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118562} - 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_Children: - - {fileID: 22408688} - - {fileID: 22467450} - m_Father: {fileID: 22429566} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22271996 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118562} - m_CullTransparentMesh: 0 ---- !u!114 &11436626 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118562} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11431514 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118562} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11430296} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11403064 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118562} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 8 ---- !u!1 &118566 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22464878} - - component: {fileID: 22223286} - - component: {fileID: 11440158} - - component: {fileID: 11425856} - m_Layer: 0 - m_Name: keyboard_MiddleSymbols - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22464878 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118566} - 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_Children: - - {fileID: 22408352} - - {fileID: 22473450} - - {fileID: 22465210} - - {fileID: 22454856} - - {fileID: 22409728} - - {fileID: 22491728} - - {fileID: 22406720} - - {fileID: 22461886} - - {fileID: 22447026} - - {fileID: 22421948} - - {fileID: 22496850} - - {fileID: 22406000} - - {fileID: 22446786} - - {fileID: 22474578} - - {fileID: 22412186} - - {fileID: 22427586} - - {fileID: 22490200} - - {fileID: 22404266} - - {fileID: 22477008} - m_Father: {fileID: 22400998} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 407, y: 0} - m_SizeDelta: {x: 612.1, y: 306} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22223286 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118566} - m_CullTransparentMesh: 0 ---- !u!114 &11440158 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118566} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0, b: 0, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11425856 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118566} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!1 &118610 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22425072} - - component: {fileID: 22260828} - - component: {fileID: 1557264954860334983} - m_Layer: 0 - m_Name: keyboard_n08 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22425072 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118610} - 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_Children: [] - m_Father: {fileID: 22454786} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0013427734, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22260828 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118610} - m_CullTransparentMesh: 0 ---- !u!114 &1557264954860334983 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118610} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 8 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1557264954860334983} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &118812 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22434470} - - component: {fileID: 22209064} - - component: {fileID: 5475514655461563649} - m_Layer: 0 - m_Name: keyboard_n01 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22434470 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118812} - 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_Children: [] - m_Father: {fileID: 22448248} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.00090026855, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209064 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118812} - m_CullTransparentMesh: 0 ---- !u!114 &5475514655461563649 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118812} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 1 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5475514655461563649} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &119724 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22400698} - - component: {fileID: 22203100} - - component: {fileID: 413266247495051236} - m_Layer: 0 - m_Name: keyboard_Space - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22400698 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 119724} - 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_Children: [] - m_Father: {fileID: 22477008} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.00015258789, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22203100 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 119724} - m_CullTransparentMesh: 0 ---- !u!114 &413266247495051236 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 119724} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Space - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 413266247495051236} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &120218 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22451778} - - component: {fileID: 22279124} - - component: {fileID: 114273169164405522} - m_Layer: 0 - m_Name: keyboard_closeIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22451778 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120218} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22404838} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0.000038146973} - m_SizeDelta: {x: 0, y: -0.000015259} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22279124 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120218} - m_CullTransparentMesh: 0 ---- !u!114 &114273169164405522 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120218} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b575d7b7d87461b4ea9965b50e367249, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &120684 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411494} - - component: {fileID: 22209860} - - component: {fileID: 11428556} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411494 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120684} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22462540} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209860 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120684} - m_CullTransparentMesh: 0 ---- !u!114 &11428556 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120684} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &120872 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22406000} - - component: {fileID: 22217210} - - component: {fileID: 11403916} - - component: {fileID: 11430640} - - component: {fileID: 11475882} - m_Layer: 0 - m_Name: PlusSign_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22406000 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120872} - 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_Children: - - {fileID: 22436294} - - {fileID: 22429130} - m_Father: {fileID: 22464878} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22217210 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120872} - m_CullTransparentMesh: 0 ---- !u!114 &11403916 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120872} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11430640 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120872} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11446172} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11475882 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120872} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: + - ShiftValue: '}' ---- !u!1 &122670 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22455304} - - component: {fileID: 22278024} - - component: {fileID: 11469676} - - component: {fileID: 11484102} - - component: {fileID: 11447392} - m_Layer: 0 - m_Name: T_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22455304 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 122670} - 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_Children: - - {fileID: 22495432} - - {fileID: 22465560} - m_Father: {fileID: 22479812} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 408, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22278024 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 122670} - m_CullTransparentMesh: 0 ---- !u!114 &11469676 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 122670} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11484102 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 122670} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11441692} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11447392 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 122670} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: t - ShiftValue: T ---- !u!1 &123202 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22465312} - - component: {fileID: 22236384} - - component: {fileID: 8417358467847448544} - m_Layer: 0 - m_Name: keyboard_at - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22465312 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123202} - 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_Children: [] - m_Father: {fileID: 22473450} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0060424805, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22236384 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123202} - m_CullTransparentMesh: 0 ---- !u!114 &8417358467847448544 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123202} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '@' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8417358467847448544} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &123410 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22433460} - - component: {fileID: 22235372} - - component: {fileID: 8491765623453818959} - m_Layer: 0 - m_Name: keyboard_n02 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22433460 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123410} - 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_Children: [] - m_Father: {fileID: 22412128} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0013427734, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22235372 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123410} - m_CullTransparentMesh: 0 ---- !u!114 &8491765623453818959 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123410} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 2 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8491765623453818959} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &123846 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22492534} - - component: {fileID: 22200058} - - component: {fileID: 1831754934476491418} - m_Layer: 0 - m_Name: keyboard_u - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22492534 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123846} - 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_Children: [] - m_Father: {fileID: 22423982} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0043296814, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22200058 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123846} - m_CullTransparentMesh: 0 ---- !u!114 &1831754934476491418 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 123846} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: U - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1831754934476491418} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &124320 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22494920} - - component: {fileID: 22240206} - - component: {fileID: 11452630} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22494920 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 124320} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22461886} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22240206 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 124320} - m_CullTransparentMesh: 0 ---- !u!114 &11452630 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 124320} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &124376 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22439214} - - component: {fileID: 22238682} - - component: {fileID: 3495214814242366012} - m_Layer: 0 - m_Name: keyboard_closeTxt - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22439214 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 124376} - 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_Children: [] - m_Father: {fileID: 22484182} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -19} - m_SizeDelta: {x: -0.018341, y: -38.01} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22238682 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 124376} - m_CullTransparentMesh: 0 ---- !u!114 &3495214814242366012 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 124376} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Close - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 15 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3495214814242366012} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &125526 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22482596} - - component: {fileID: 22252442} - - component: {fileID: 998749802784456982} - m_Layer: 0 - m_Name: keyboard_colon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22482596 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125526} - 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_Children: [] - m_Father: {fileID: 22410804} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0065612793, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22252442 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125526} - m_CullTransparentMesh: 0 ---- !u!114 &998749802784456982 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125526} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ':' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 998749802784456982} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &125662 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22400898} - - component: {fileID: 22208320} - - component: {fileID: 11461392} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22400898 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125662} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22486042} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22208320 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125662} - m_CullTransparentMesh: 0 ---- !u!114 &11461392 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125662} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &125708 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22494754} - - component: {fileID: 22200502} - - component: {fileID: 8738802702142336418} - m_Layer: 0 - m_Name: Apostrophe_symbol - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22494754 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125708} - 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_Children: [] - m_Father: {fileID: 22476324} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0029907227, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22200502 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125708} - m_CullTransparentMesh: 0 ---- !u!114 &8738802702142336418 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125708} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '''' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8738802702142336418} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &125714 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22490568} - - component: {fileID: 22257968} - - component: {fileID: 11491774} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22490568 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125714} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22475972} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22257968 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125714} - m_CullTransparentMesh: 0 ---- !u!114 &11491774 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125714} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &125942 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22425748} - - component: {fileID: 22251312} - - component: {fileID: 11433708} - - component: {fileID: 11466014} - m_Layer: 0 - m_Name: keyboard_Space_Email - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &22425748 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125942} - 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_Children: - - {fileID: 22471260} - - {fileID: 22424052} - - {fileID: 22439758} - - {fileID: 22418770} - - {fileID: 22442914} - - {fileID: 22448648} - - {fileID: 22497832} - m_Father: {fileID: 22458684} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 124} - m_SizeDelta: {x: 1222.5, y: 76.65} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22251312 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125942} - m_CullTransparentMesh: 0 ---- !u!114 &11433708 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125942} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.11764706, g: 0.12156863, b: 0.13725491, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11466014 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125942} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!1 &126222 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22457776} - - component: {fileID: 22259340} - - component: {fileID: 11435390} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22457776 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126222} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22411502} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22259340 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126222} - m_CullTransparentMesh: 0 ---- !u!114 &11435390 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126222} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &126752 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22482356} - - component: {fileID: 22203124} - - component: {fileID: 114473119338292092} - m_Layer: 0 - m_Name: keyboard_back - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22482356 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126752} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22479472} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0.000038146973} - m_SizeDelta: {x: 0, y: -0.000015259} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22203124 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126752} - m_CullTransparentMesh: 0 ---- !u!114 &114473119338292092 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126752} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 5eb0b332d494ca84d9c38cf77ba0e12d, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &126878 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22429856} - - component: {fileID: 22277502} - - component: {fileID: 11447872} - - component: {fileID: 11412884} - - component: {fileID: 11480218} - m_Layer: 0 - m_Name: F_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22429856 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126878} - 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_Children: - - {fileID: 22418584} - - {fileID: 22456780} - m_Father: {fileID: 22479812} - m_RootOrder: 15 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22277502 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126878} - m_CullTransparentMesh: 0 ---- !u!114 &11447872 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11412884 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11492308} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11480218 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 126878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: f - ShiftValue: F ---- !u!1 &127328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22441282} - - component: {fileID: 22209476} - - component: {fileID: 11428826} - - component: {fileID: 11459904} - m_Layer: 0 - m_Name: keyboard_NumberPad - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22441282 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127328} - 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_Children: - - {fileID: 22448248} - - {fileID: 22412128} - - {fileID: 22475972} - - {fileID: 22491366} - - {fileID: 22457066} - - {fileID: 22434070} - - {fileID: 22405132} - - {fileID: 22454786} - - {fileID: 22421144} - - {fileID: 22446928} - - {fileID: 22401602} - m_Father: {fileID: 22400998} - 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: 306, y: 0} - m_SizeDelta: {x: 304, y: 306} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209476 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127328} - m_CullTransparentMesh: 0 ---- !u!114 &11428826 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127328} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0, b: 0, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11459904 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127328} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!1 &127338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22407926} - - component: {fileID: 22278086} - - component: {fileID: 11463114} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22407926 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127338} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22422930} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22278086 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127338} - m_CullTransparentMesh: 0 ---- !u!114 &11463114 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &127498 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411230} - - component: {fileID: 22231072} - - component: {fileID: 94283184812819599} - m_Layer: 0 - m_Name: keyboard_b - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411230 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127498} - 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_Children: [] - m_Father: {fileID: 22475638} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.004776001, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22231072 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127498} - m_CullTransparentMesh: 0 ---- !u!114 &94283184812819599 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127498} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: B - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 94283184812819599} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &127622 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22476324} - - component: {fileID: 22282626} - - component: {fileID: 11408652} - - component: {fileID: 11402834} - - component: {fileID: 11460814} - m_Layer: 0 - m_Name: Apostrophe_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22476324 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127622} - 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_Children: - - {fileID: 22494754} - - {fileID: 22455986} - m_Father: {fileID: 22479812} - m_RootOrder: 21 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 918, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22282626 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127622} - m_CullTransparentMesh: 0 ---- !u!114 &11408652 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127622} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11402834 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127622} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11409338} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11460814 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127622} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '''' - ShiftValue: ---- !u!1 &127802 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22477136} - - component: {fileID: 22248520} - - component: {fileID: 11418040} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22477136 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127802} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22436598} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22248520 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127802} - m_CullTransparentMesh: 0 ---- !u!114 &11418040 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127802} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &127886 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22484368} - - component: {fileID: 22209192} - - component: {fileID: 11448894} - - component: {fileID: 11483544} - - component: {fileID: 11485030} - m_Layer: 0 - m_Name: L_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22484368 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127886} - 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_Children: - - {fileID: 22406246} - - {fileID: 22429358} - m_Father: {fileID: 22479812} - m_RootOrder: 20 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 816, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22209192 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127886} - m_CullTransparentMesh: 0 ---- !u!114 &11448894 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127886} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11483544 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127886} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11442212} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11485030 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 127886} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: l - ShiftValue: L ---- !u!1 &128334 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22406124} - - component: {fileID: 22213654} - - component: {fileID: 11464286} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22406124 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128334} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22447026} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22213654 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128334} - m_CullTransparentMesh: 0 ---- !u!114 &11464286 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128334} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &128358 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22480834} - - component: {fileID: 22200452} - - component: {fileID: 11495442} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22480834 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128358} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22485892} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22200452 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128358} - m_CullTransparentMesh: 0 ---- !u!114 &11495442 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128358} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &128428 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22499626} - - component: {fileID: 22282850} - - component: {fileID: 11453516} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22499626 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128428} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22462662} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22282850 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128428} - m_CullTransparentMesh: 0 ---- !u!114 &11453516 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128428} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &128684 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22417666} - - component: {fileID: 22244540} - - component: {fileID: 11412338} - - component: {fileID: 11451076} - - component: {fileID: 11495014} - m_Layer: 0 - m_Name: Right_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22417666 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128684} - 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_Children: - - {fileID: 22461740} - - {fileID: 22410810} - m_Father: {fileID: 22405956} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22244540 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128684} - m_CullTransparentMesh: 0 ---- !u!114 &11412338 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128684} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11451076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128684} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11483670} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11495014 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 128684} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 5 ---- !u!1 &129482 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411788} - - component: {fileID: 22267048} - - component: {fileID: 11459694} - - component: {fileID: 11459136} - - component: {fileID: 11475466} - m_Layer: 0 - m_Name: Com_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411788 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 129482} - 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_Children: - - {fileID: 22404284} - - {fileID: 22499418} - m_Father: {fileID: 22460848} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 918, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22267048 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 129482} - m_CullTransparentMesh: 0 ---- !u!114 &11459694 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 129482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11459136 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 129482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11475382} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11475466 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 129482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: .com - ShiftValue: .COM ---- !u!1 &130782 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22408096} - - component: {fileID: 22283724} - - component: {fileID: 11452612} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22408096 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 130782} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22491366} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22283724 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 130782} - m_CullTransparentMesh: 0 ---- !u!114 &11452612 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 130782} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &130946 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22454728} - - component: {fileID: 22219984} - - component: {fileID: 1982161777517840801} - m_Layer: 0 - m_Name: keyboard_m - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22454728 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 130946} - 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_Children: [] - m_Father: {fileID: 22491032} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0038909912, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22219984 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 130946} - m_CullTransparentMesh: 0 ---- !u!114 &1982161777517840801 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 130946} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: M - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1982161777517840801} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &131024 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22434178} - - component: {fileID: 22254968} - - component: {fileID: 114233180406926256} - m_Layer: 0 - m_Name: keyboard_RightShift - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22434178 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131024} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22444694} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22254968 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131024} - m_CullTransparentMesh: 0 ---- !u!114 &114233180406926256 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131024} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 73830216a21a45e499598b2624ef723e, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &131166 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22402642} - - component: {fileID: 22203304} - - component: {fileID: 11440956} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22402642 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131166} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22425902} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22203304 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131166} - m_CullTransparentMesh: 0 ---- !u!114 &11440956 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131166} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &131188 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22424052} - - component: {fileID: 22285346} - - component: {fileID: 11431508} - - component: {fileID: 11436246} - - component: {fileID: 11452540} - m_Layer: 0 - m_Name: LowLine_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22424052 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131188} - 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_Children: - - {fileID: 22476458} - - {fileID: 22404638} - m_Father: {fileID: 22425748} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22285346 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131188} - m_CullTransparentMesh: 0 ---- !u!114 &11431508 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11436246 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11400944} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11452540 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 131188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: _ - ShiftValue: ---- !u!1 &132058 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22461740} - - component: {fileID: 22298080} - - component: {fileID: 114629177983863932} - m_Layer: 0 - m_Name: keyboard_Right - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22461740 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132058} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22417666} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22298080 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132058} - m_CullTransparentMesh: 0 ---- !u!114 &114629177983863932 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132058} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 11e4524f21fc6434abbbba83d70d0040, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &132436 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22428854} - - component: {fileID: 22211188} - - component: {fileID: 11463202} - - component: {fileID: 11413724} - - component: {fileID: 11443978} - m_Layer: 0 - m_Name: Q_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22428854 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132436} - 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_Children: - - {fileID: 22416218} - - {fileID: 22422222} - m_Father: {fileID: 22479812} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22211188 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132436} - m_CullTransparentMesh: 0 ---- !u!114 &11463202 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132436} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11413724 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132436} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11439880} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11443978 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132436} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: q - ShiftValue: Q ---- !u!1 &132860 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22496850} - - component: {fileID: 22247664} - - component: {fileID: 11408306} - - component: {fileID: 11490604} - - component: {fileID: 11446222} - m_Layer: 0 - m_Name: EqualsSign_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22496850 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132860} - 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_Children: - - {fileID: 22486324} - - {fileID: 22496102} - m_Father: {fileID: 22464878} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 408, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22247664 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132860} - m_CullTransparentMesh: 0 ---- !u!114 &11408306 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132860} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11490604 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132860} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11423458} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11446222 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132860} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: = - ShiftValue: '{' ---- !u!1 &132946 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22442870} - - component: {fileID: 22266442} - - component: {fileID: 5412101013457618446} - m_Layer: 0 - m_Name: keyboard_z - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22442870 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132946} - 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_Children: [] - m_Father: {fileID: 22478130} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0065612793, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22266442 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132946} - m_CullTransparentMesh: 0 ---- !u!114 &5412101013457618446 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 132946} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Z - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5412101013457618446} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &134514 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22425902} - - component: {fileID: 22252080} - - component: {fileID: 11483346} - - component: {fileID: 11408690} - - component: {fileID: 11478390} - m_Layer: 0 - m_Name: R_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22425902 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134514} - 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_Children: - - {fileID: 22409046} - - {fileID: 22402642} - m_Father: {fileID: 22479812} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22252080 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134514} - m_CullTransparentMesh: 0 ---- !u!114 &11483346 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134514} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11408690 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134514} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11440956} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11478390 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134514} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: r - ShiftValue: R ---- !u!1 &134516 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22404284} - - component: {fileID: 22269364} - - component: {fileID: 3965008020941937317} - m_Layer: 0 - m_Name: keyboard_com - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22404284 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134516} - 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_Children: [] - m_Father: {fileID: 22411788} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0029907227, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22269364 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134516} - m_CullTransparentMesh: 0 ---- !u!114 &3965008020941937317 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134516} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: .com - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3965008020941937317} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &134766 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411388} - - component: {fileID: 22239904} - - component: {fileID: 3537431405064266544} - m_Layer: 0 - m_Name: keyboard_Question - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411388 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134766} - 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_Children: [] - m_Father: {fileID: 22422930} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.002532959, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22239904 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134766} - m_CullTransparentMesh: 0 ---- !u!114 &3537431405064266544 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134766} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '?' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3537431405064266544} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &134784 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22404838} - - component: {fileID: 22293264} - - component: {fileID: 11499970} - - component: {fileID: 11433396} - - component: {fileID: 11412110} - m_Layer: 0 - m_Name: Dictation - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22404838 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134784} - 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_Children: - - {fileID: 22451778} - - {fileID: 22435746} - m_Father: {fileID: 22410434} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22293264 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134784} - m_CullTransparentMesh: 0 ---- !u!114 &11499970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134784} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11433396 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134784} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11469084} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11412110 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134784} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 7 ---- !u!1 &135164 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22416406} - - component: {fileID: 22277856} - - component: {fileID: 11422964} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22416406 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135164} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22427586} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22277856 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135164} - m_CullTransparentMesh: 0 ---- !u!114 &11422964 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135164} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &135268 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22422930} - - component: {fileID: 22288300} - - component: {fileID: 11459250} - - component: {fileID: 11465520} - - component: {fileID: 11467932} - m_Layer: 0 - m_Name: Question_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22422930 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135268} - 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_Children: - - {fileID: 22411388} - - {fileID: 22407926} - m_Father: {fileID: 22479812} - m_RootOrder: 33 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1020, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22288300 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135268} - m_CullTransparentMesh: 0 ---- !u!114 &11459250 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11465520 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11463114} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11467932 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135268} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '?' - ShiftValue: ---- !u!1 &135478 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22494100} - - component: {fileID: 22276122} - - component: {fileID: 3697364953698025318} - m_Layer: 0 - m_Name: keyboard_LeftNumbers - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22494100 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135478} - 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_Children: [] - m_Father: {fileID: 22432870} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0067749023, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22276122 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135478} - m_CullTransparentMesh: 0 ---- !u!114 &3697364953698025318 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135478} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '&123' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3697364953698025318} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &135486 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22410804} - - component: {fileID: 22252142} - - component: {fileID: 11419692} - - component: {fileID: 11479602} - - component: {fileID: 11477592} - m_Layer: 0 - m_Name: colon_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22410804 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135486} - 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_Children: - - {fileID: 22482596} - - {fileID: 22480030} - m_Father: {fileID: 22460848} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22252142 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135486} - m_CullTransparentMesh: 0 ---- !u!114 &11419692 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135486} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11479602 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135486} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11426324} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11477592 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135486} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: ':' - ShiftValue: ---- !u!1 &135814 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22463620} - - component: {fileID: 22269126} - - component: {fileID: 481503532201424789} - m_Layer: 0 - m_Name: keyboard_UpRightNumbers - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22463620 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135814} - 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_Children: [] - m_Father: {fileID: 22446000} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0020751953, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22269126 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135814} - m_CullTransparentMesh: 0 ---- !u!114 &481503532201424789 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135814} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '&123' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 481503532201424789} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &135844 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22448648} - - component: {fileID: 22240180} - - component: {fileID: 11442948} - - component: {fileID: 11477626} - - component: {fileID: 11451556} - m_Layer: 0 - m_Name: Hyphen_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22448648 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135844} - 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_Children: - - {fileID: 22419976} - - {fileID: 22470588} - m_Father: {fileID: 22425748} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1020, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22240180 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135844} - m_CullTransparentMesh: 0 ---- !u!114 &11442948 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135844} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11477626 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135844} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11413876} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11451556 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135844} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '-' - ShiftValue: ---- !u!1 &135968 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22477008} - - component: {fileID: 22281814} - - component: {fileID: 11476680} - - component: {fileID: 11491610} - - component: {fileID: 11458674} - m_Layer: 0 - m_Name: Space_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22477008 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135968} - 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_Children: - - {fileID: 22400698} - - {fileID: 22483284} - m_Father: {fileID: 22464878} - m_RootOrder: 18 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -231} - m_SizeDelta: {x: 610, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22281814 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135968} - m_CullTransparentMesh: 0 ---- !u!114 &11476680 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135968} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11491610 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135968} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11422268} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11458674 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 135968} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 10 ---- !u!1 &136952 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22485332} - - component: {fileID: 22258792} - - component: {fileID: 11405558} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22485332 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 136952} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22490200} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22258792 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 136952} - m_CullTransparentMesh: 0 ---- !u!114 &11405558 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 136952} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &136984 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22415302} - - component: {fileID: 22227074} - - component: {fileID: 2097078206701978913} - m_Layer: 0 - m_Name: keyboard_Tab - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22415302 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 136984} - 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_Children: [] - m_Father: {fileID: 22409590} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0011978149, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22227074 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 136984} - m_CullTransparentMesh: 0 ---- !u!114 &2097078206701978913 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 136984} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Tab - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2097078206701978913} - characterCount: 3 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &137164 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22434070} - - component: {fileID: 22258754} - - component: {fileID: 11465868} - - component: {fileID: 11413684} - - component: {fileID: 11489036} - m_Layer: 0 - m_Name: n06_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22434070 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137164} - 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_Children: - - {fileID: 22434488} - - {fileID: 22438322} - m_Father: {fileID: 22441282} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22258754 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137164} - m_CullTransparentMesh: 0 ---- !u!114 &11465868 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137164} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11413684 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137164} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11406288} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11489036 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137164} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 6 - ShiftValue: ---- !u!1 &137276 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22404638} - - component: {fileID: 22287968} - - component: {fileID: 11400944} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22404638 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137276} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22424052} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22287968 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137276} - m_CullTransparentMesh: 0 ---- !u!114 &11400944 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137276} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &137628 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22466028} - - component: {fileID: 22286534} - - component: {fileID: 11434702} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22466028 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137628} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22484182} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22286534 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137628} - m_CullTransparentMesh: 0 ---- !u!114 &11434702 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137628} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &138194 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22420350} - - component: {fileID: 22247780} - - component: {fileID: 6455618284659580} - m_Layer: 0 - m_Name: keyboard_Space - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22420350 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138194} - 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_Children: [] - m_Father: {fileID: 22468454} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.002319336, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22247780 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138194} - m_CullTransparentMesh: 0 ---- !u!114 &6455618284659580 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138194} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Space - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6455618284659580} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &138206 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22413356} - - component: {fileID: 22207038} - - component: {fileID: 11404442} - m_Layer: 0 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22413356 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138206} - 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_Children: [] - m_Father: {fileID: 22410434} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.08999634, y: 0} - m_SizeDelta: {x: -204.51, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22207038 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138206} - m_CullTransparentMesh: 0 ---- !u!114 &11404442 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138206} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &138304 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22486324} - - component: {fileID: 22209798} - - component: {fileID: 3742567813971029920} - m_Layer: 0 - m_Name: keyboard_EqualsSign - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22486324 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138304} - 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_Children: [] - m_Father: {fileID: 22496850} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.006362915, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209798 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138304} - m_CullTransparentMesh: 0 ---- !u!114 &3742567813971029920 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138304} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: = - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3742567813971029920} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &138962 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22468980} - - component: {fileID: 22245714} - - component: {fileID: 11497576} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22468980 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138962} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22448248} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22245714 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138962} - m_CullTransparentMesh: 0 ---- !u!114 &11497576 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 138962} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &139570 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22490200} - - component: {fileID: 22296548} - - component: {fileID: 11479020} - - component: {fileID: 11477524} - - component: {fileID: 11400978} - m_Layer: 0 - m_Name: Asterisk_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22490200 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139570} - 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_Children: - - {fileID: 22443326} - - {fileID: 22485332} - m_Father: {fileID: 22464878} - m_RootOrder: 16 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 408, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22296548 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139570} - m_CullTransparentMesh: 0 ---- !u!114 &11479020 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139570} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11477524 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139570} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11405558} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11400978 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139570} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '*' - ShiftValue: ~ ---- !u!1 &139696 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22492868} - - component: {fileID: 22205422} - - component: {fileID: 11453384} - - component: {fileID: 11499124} - - component: {fileID: 11475064} - m_Layer: 0 - m_Name: H_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22492868 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139696} - 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_Children: - - {fileID: 22442172} - - {fileID: 22430620} - m_Father: {fileID: 22479812} - m_RootOrder: 17 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22205422 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139696} - m_CullTransparentMesh: 0 ---- !u!114 &11453384 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139696} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11499124 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139696} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11465080} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11475064 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139696} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: h - ShiftValue: H ---- !u!1 &139746 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22406720} - - component: {fileID: 22244338} - - component: {fileID: 11416480} - - component: {fileID: 11483798} - - component: {fileID: 11485354} - m_Layer: 0 - m_Name: LeftParenthesis_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22406720 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139746} - 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_Children: - - {fileID: 22495524} - - {fileID: 22463126} - m_Father: {fileID: 22464878} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22244338 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139746} - m_CullTransparentMesh: 0 ---- !u!114 &11416480 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139746} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11483798 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139746} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11472876} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11485354 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 139746} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: ( - ShiftValue: < ---- !u!1 &140316 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22439980} - - component: {fileID: 22217566} - - component: {fileID: 114690085035336702} - m_Layer: 0 - m_Name: keyboard_Right - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22439980 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140316} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22448102} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22217566 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140316} - m_CullTransparentMesh: 0 ---- !u!114 &114690085035336702 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140316} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 11e4524f21fc6434abbbba83d70d0040, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &140748 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22499418} - - component: {fileID: 22233888} - - component: {fileID: 11475382} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22499418 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140748} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22411788} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22233888 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140748} - m_CullTransparentMesh: 0 ---- !u!114 &11475382 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140748} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &141412 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22461686} - - component: {fileID: 22266740} - - component: {fileID: 5317465675894777995} - m_Layer: 0 - m_Name: keyboard_n - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22461686 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141412} - 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_Children: [] - m_Father: {fileID: 22496376} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0043296814, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22266740 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141412} - m_CullTransparentMesh: 0 ---- !u!114 &5317465675894777995 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141412} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: N - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5317465675894777995} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &141688 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22430760} - - component: {fileID: 22253174} - - component: {fileID: 5104996372146306689} - m_Layer: 0 - m_Name: keyboard_at - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22430760 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141688} - 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_Children: [] - m_Father: {fileID: 22439758} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0061035156, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22253174 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141688} - m_CullTransparentMesh: 0 ---- !u!114 &5104996372146306689 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141688} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '@' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5104996372146306689} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &141798 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22488306} - - component: {fileID: 22250652} - - component: {fileID: 11419764} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22488306 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141798} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22421144} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22250652 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141798} - m_CullTransparentMesh: 0 ---- !u!114 &11419764 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141798} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &142046 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22412186} - - component: {fileID: 22200744} - - component: {fileID: 11496192} - - component: {fileID: 11456060} - - component: {fileID: 11480250} - m_Layer: 0 - m_Name: Colon_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22412186 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142046} - 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_Children: - - {fileID: 22489008} - - {fileID: 22465744} - m_Father: {fileID: 22464878} - m_RootOrder: 14 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22200744 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142046} - m_CullTransparentMesh: 0 ---- !u!114 &11496192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142046} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11456060 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142046} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11456684} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11480250 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142046} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: ':' - ShiftValue: "\xB6" ---- !u!1 &142130 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22401596} - - component: {fileID: 22279822} - - component: {fileID: 11472076} - - component: {fileID: 11433178} - - component: {fileID: 11401646} - m_Layer: 0 - m_Name: Period_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22401596 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142130} - 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_Children: - - {fileID: 22465028} - - {fileID: 22494460} - m_Father: {fileID: 22479812} - m_RootOrder: 32 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 918, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22279822 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142130} - m_CullTransparentMesh: 0 ---- !u!114 &11472076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142130} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11433178 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142130} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11452114} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11401646 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142130} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: . - ShiftValue: ---- !u!1 &142690 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22465744} - - component: {fileID: 22219248} - - component: {fileID: 11456684} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22465744 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142690} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22412186} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22219248 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142690} - m_CullTransparentMesh: 0 ---- !u!114 &11456684 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 142690} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &143404 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22451892} - - component: {fileID: 22229228} - - component: {fileID: 11446056} - - component: {fileID: 11439578} - - component: {fileID: 11438406} - m_Layer: 0 - m_Name: RightNumbers_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22451892 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143404} - 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_Children: - - {fileID: 22463646} - - {fileID: 22457912} - m_Father: {fileID: 22460848} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1122, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22229228 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143404} - m_CullTransparentMesh: 0 ---- !u!114 &11446056 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143404} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11439578 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143404} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11449860} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11438406 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143404} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 3 ---- !u!1 &143664 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22440338} - - component: {fileID: 22239718} - - component: {fileID: 513297941065182121} - m_Layer: 0 - m_Name: keyboard_enter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22440338 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143664} - 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_Children: [] - m_Father: {fileID: 22402474} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.004547119, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22239718 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143664} - m_CullTransparentMesh: 0 ---- !u!114 &513297941065182121 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143664} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Enter - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 513297941065182121} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &143690 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22486042} - - component: {fileID: 22289764} - - component: {fileID: 11453640} - - component: {fileID: 11403270} - - component: {fileID: 11440864} - m_Layer: 0 - m_Name: Comma_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22486042 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143690} - 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_Children: - - {fileID: 22406332} - - {fileID: 22400898} - m_Father: {fileID: 22479812} - m_RootOrder: 31 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 816, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22289764 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143690} - m_CullTransparentMesh: 0 ---- !u!114 &11453640 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143690} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11403270 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143690} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11461392} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11440864 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143690} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: ',' - ShiftValue: ---- !u!1 &143998 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22471260} - - component: {fileID: 22201596} - - component: {fileID: 11474014} - - component: {fileID: 11461902} - - component: {fileID: 11475616} - m_Layer: 0 - m_Name: LeftNumbers_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22471260 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143998} - 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_Children: - - {fileID: 22427190} - - {fileID: 22480748} - m_Father: {fileID: 22425748} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22201596 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143998} - m_CullTransparentMesh: 0 ---- !u!114 &11474014 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143998} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11461902 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143998} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11485748} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11475616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 143998} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 3 ---- !u!1 &144552 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22498516} - - component: {fileID: 22288148} - - component: {fileID: 11455168} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22498516 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144552} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22452272} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22288148 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144552} - m_CullTransparentMesh: 0 ---- !u!114 &11455168 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144552} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &144720 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22406776} - - component: {fileID: 22278604} - - component: {fileID: 11426054} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22406776 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144720} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22468454} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22278604 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144720} - m_CullTransparentMesh: 0 ---- !u!114 &11426054 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144720} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &145110 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22467832} - - component: {fileID: 22207582} - - component: {fileID: 2515846026168893679} - m_Layer: 0 - m_Name: keyboard_Leftabc - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22467832 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145110} - 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_Children: [] - m_Father: {fileID: 22462540} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0011978149, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22207582 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145110} - m_CullTransparentMesh: 0 ---- !u!114 &2515846026168893679 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145110} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ABC - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2515846026168893679} - characterCount: 3 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &145472 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22484182} - - component: {fileID: 22221250} - - component: {fileID: 11423456} - - component: {fileID: 11462718} - - component: {fileID: 11411168} - m_Layer: 0 - m_Name: close_button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22484182 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145472} - 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_Children: - - {fileID: 22468692} - - {fileID: 22439214} - - {fileID: 22466028} - m_Father: {fileID: 22439972} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.000061035156, y: -14.070007} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22221250 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145472} - m_CullTransparentMesh: 0 ---- !u!114 &11423456 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145472} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11462718 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145472} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11434702} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11411168 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 145472} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 6 ---- !u!1 &146036 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22419976} - - component: {fileID: 22264860} - - component: {fileID: 8078796920323447122} - m_Layer: 0 - m_Name: keyboard_Hyphen - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22419976 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146036} - 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_Children: [] - m_Father: {fileID: 22448648} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.002532959, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22264860 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146036} - m_CullTransparentMesh: 0 ---- !u!114 &8078796920323447122 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146036} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '-' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8078796920323447122} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &146086 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22448248} - - component: {fileID: 22266558} - - component: {fileID: 11476182} - - component: {fileID: 11404050} - - component: {fileID: 11456892} - m_Layer: 0 - m_Name: n01_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22448248 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146086} - 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_Children: - - {fileID: 22434470} - - {fileID: 22468980} - m_Father: {fileID: 22441282} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22266558 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146086} - m_CullTransparentMesh: 0 ---- !u!114 &11476182 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146086} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11404050 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146086} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11497576} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11456892 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146086} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 1 - ShiftValue: ---- !u!1 &146120 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22458684} - - component: {fileID: 22335612} - - component: {fileID: 11499414} - - component: {fileID: 11401954} - - component: {fileID: 114593871428788132} - - component: {fileID: 6050639456931552995} - - component: {fileID: 583446739} - - component: {fileID: 6363978764271269843} - m_Layer: 0 - m_Name: NonNativeKeyboard - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22458684 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.0022179002, y: 0.0022179002, z: 0.0022179002} - m_Children: - - {fileID: 22439972} - - {fileID: 22479812} - - {fileID: 22400998} - - {fileID: 22416050} - - {fileID: 22460848} - - {fileID: 22425748} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 1250, y: 480} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!223 &22335612 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 1 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &11499414 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 ---- !u!114 &11401954 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c87b4a5817577d54fa5c9451215f893b, type: 3} - m_Name: - m_EditorClassIdentifier: - InputField: {fileID: 2097082730694957451} - InputFieldSlide: {fileID: 11448462} - SliderEnabled: 1 - SubmitOnEnter: 1 - AlphaKeyboard: {fileID: 11451576} - SymbolKeyboard: {fileID: 11428666} - AlphaSubKeys: {fileID: 11429994} - AlphaWebKeys: {fileID: 11409552} - AlphaMailKeys: {fileID: 11433708} - m_MaxScale: 3 - m_MinScale: 0.5 - m_MaxDistance: 3 - m_MinDistance: 1 - CloseOnInactivity: 1 - CloseOnInactivityTime: 15 ---- !u!114 &114593871428788132 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 0 ---- !u!114 &6050639456931552995 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &583446739 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3} - m_Name: - m_EditorClassIdentifier: - trackedTargetType: 0 - trackedHandness: 3 - trackedHandJoint: 2 - transformOverride: {fileID: 0} - additionalOffset: {x: 0, y: 0, z: 0} - additionalRotation: {x: 0, y: 0, z: 0} - updateSolvers: 1 ---- !u!114 &6363978764271269843 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c72a967253428ca4896d1e2639256334, type: 3} - m_Name: - m_EditorClassIdentifier: - clickSound: {fileID: 0} ---- !u!1 &146124 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22438076} - - component: {fileID: 22252590} - - component: {fileID: 11405568} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22438076 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146124} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22401602} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22252590 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146124} - m_CullTransparentMesh: 0 ---- !u!114 &11405568 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146124} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &146158 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22446000} - - component: {fileID: 22248822} - - component: {fileID: 11407640} - - component: {fileID: 11492466} - - component: {fileID: 11485548} - m_Layer: 0 - m_Name: RightNumbers_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22446000 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146158} - 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_Children: - - {fileID: 22463620} - - {fileID: 22407342} - m_Father: {fileID: 22416050} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1122, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22248822 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146158} - m_CullTransparentMesh: 0 ---- !u!114 &11407640 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146158} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11492466 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146158} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11469414} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11485548 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146158} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 3 ---- !u!1 &146328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22463646} - - component: {fileID: 22282016} - - component: {fileID: 2376963206102849913} - m_Layer: 0 - m_Name: keyboard_RightNumbers - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22463646 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146328} - 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_Children: [] - m_Father: {fileID: 22451892} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0020751953, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22282016 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146328} - m_CullTransparentMesh: 0 ---- !u!114 &2376963206102849913 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146328} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '&123' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2376963206102849913} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &146382 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22494308} - - component: {fileID: 22205618} - - component: {fileID: 114975676486787642} - m_Layer: 0 - m_Name: keyboard_symbol - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22494308 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146382} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22458212} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22205618 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146382} - m_CullTransparentMesh: 0 ---- !u!114 &114975676486787642 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 73830216a21a45e499598b2624ef723e, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &146388 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22480748} - - component: {fileID: 22215540} - - component: {fileID: 11485748} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22480748 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146388} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22471260} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22215540 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146388} - m_CullTransparentMesh: 0 ---- !u!114 &11485748 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &146814 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22491728} - - component: {fileID: 22290992} - - component: {fileID: 11430782} - - component: {fileID: 11411042} - - component: {fileID: 11403124} - m_Layer: 0 - m_Name: Ampersand_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22491728 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146814} - 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_Children: - - {fileID: 22456742} - - {fileID: 22475506} - m_Father: {fileID: 22464878} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22290992 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146814} - m_CullTransparentMesh: 0 ---- !u!114 &11430782 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146814} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11411042 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146814} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11419704} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11403124 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146814} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '&' - ShiftValue: "\xBD" ---- !u!1 &147158 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22453786} - - component: {fileID: 22272786} - - component: {fileID: 5612712200962578344} - m_Layer: 0 - m_Name: keyboard_Rightabc - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22453786 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147158} - 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_Children: [] - m_Father: {fileID: 22477742} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0057373047, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22272786 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147158} - m_CullTransparentMesh: 0 ---- !u!114 &5612712200962578344 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147158} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ABC - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5612712200962578344} - characterCount: 3 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &147338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22474578} - - component: {fileID: 22266288} - - component: {fileID: 11416882} - - component: {fileID: 11406970} - - component: {fileID: 11423342} - m_Layer: 0 - m_Name: Semicolon_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22474578 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147338} - 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_Children: - - {fileID: 22408530} - - {fileID: 22438832} - m_Father: {fileID: 22464878} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22266288 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147338} - m_CullTransparentMesh: 0 ---- !u!114 &11416882 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11406970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11495184} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11423342 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: ; - ShiftValue: "\xA6" ---- !u!1 &147486 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22409590} - - component: {fileID: 22215752} - - component: {fileID: 11471726} - - component: {fileID: 11470116} - - component: {fileID: 11436374} - m_Layer: 0 - m_Name: Tab_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22409590 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147486} - 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_Children: - - {fileID: 22415302} - - {fileID: 22470238} - m_Father: {fileID: 22429566} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22215752 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147486} - m_CullTransparentMesh: 0 ---- !u!114 &11471726 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147486} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11470116 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147486} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11408862} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11436374 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147486} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 1 ---- !u!1 &147524 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22478356} - - component: {fileID: 22244118} - - component: {fileID: 4323897337720256489} - m_Layer: 0 - m_Name: keyboard_symbol - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22478356 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147524} - 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_Children: [] - m_Father: {fileID: 22401602} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0018005371, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22244118 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147524} - m_CullTransparentMesh: 0 ---- !u!114 &4323897337720256489 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147524} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: . - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4323897337720256489} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &147736 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22402854} - - component: {fileID: 22259014} - - component: {fileID: 4734453219647939624} - m_Layer: 0 - m_Name: keyboard_o - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22402854 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147736} - 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_Children: [] - m_Father: {fileID: 22436598} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0034332275, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22259014 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147736} - m_CullTransparentMesh: 0 ---- !u!114 &4734453219647939624 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147736} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: O - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4734453219647939624} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &147780 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22430090} - - component: {fileID: 22250736} - - component: {fileID: 8919227645175020341} - m_Layer: 0 - m_Name: keyboard_i - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22430090 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147780} - 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_Children: [] - m_Father: {fileID: 22452272} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0038909912, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22250736 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147780} - m_CullTransparentMesh: 0 ---- !u!114 &8919227645175020341 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 147780} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: I - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8919227645175020341} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &148026 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22487526} - - component: {fileID: 22224356} - - component: {fileID: 11499122} - - component: {fileID: 11414792} - - component: {fileID: 11413406} - m_Layer: 0 - m_Name: E_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22487526 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148026} - 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_Children: - - {fileID: 22423630} - - {fileID: 22444158} - m_Father: {fileID: 22479812} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22224356 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148026} - m_CullTransparentMesh: 0 ---- !u!114 &11499122 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148026} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11414792 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148026} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11442184} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11413406 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148026} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: e - ShiftValue: E ---- !u!1 &148190 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22410434} - - component: {fileID: 22293912} - - component: {fileID: 11457018} - - component: {fileID: 11487846} - - component: {fileID: 11448462} - m_Layer: 0 - m_Name: search - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22410434 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148190} - 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_Children: - - {fileID: 22413356} - - {fileID: 22404838} - - {fileID: 22479472} - - {fileID: 9046091200945972342} - m_Father: {fileID: 22439972} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: -0.18310545, y: 334.98047} - m_SizeDelta: {x: 610.57, y: 75} - m_Pivot: {x: 0.5, y: 0} ---- !u!222 &22293912 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148190} - m_CullTransparentMesh: 0 ---- !u!114 &11457018 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.11764706, g: 0.12156863, b: 0.13725491, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11487846 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11457018} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 11401954} - m_MethodName: PresentKeyboard - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &11448462 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c191a902c67de0b43a7a96fa8f0c533c, type: 3} - m_Name: - m_EditorClassIdentifier: - Axis: 0 - slideAccel: 5000 - slideFriction: 5 - deadZone: 17.5 - clampDistance: 300 - bounce: 0 - TargetPoint: {x: 0, y: 0, z: 0} ---- !u!1 &149632 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22400958} - - component: {fileID: 22254454} - - component: {fileID: 7787811112066262516} - m_Layer: 0 - m_Name: keyboard_t - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22400958 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149632} - 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_Children: [] - m_Father: {fileID: 22454856} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.00680542, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22254454 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149632} - m_CullTransparentMesh: 0 ---- !u!114 &7787811112066262516 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149632} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: $ - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 7787811112066262516} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &150002 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22452272} - - component: {fileID: 22202542} - - component: {fileID: 11408352} - - component: {fileID: 11405842} - - component: {fileID: 11440670} - m_Layer: 0 - m_Name: I_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22452272 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150002} - 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_Children: - - {fileID: 22430090} - - {fileID: 22498516} - m_Father: {fileID: 22479812} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 714, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22202542 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150002} - m_CullTransparentMesh: 0 ---- !u!114 &11408352 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150002} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11405842 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150002} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11455168} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11440670 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150002} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: i - ShiftValue: I ---- !u!1 &150146 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22465256} - - component: {fileID: 22265330} - - component: {fileID: 11496008} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22465256 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150146} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22409728} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22265330 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150146} - m_CullTransparentMesh: 0 ---- !u!114 &11496008 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150146} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &150524 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22432870} - - component: {fileID: 22231236} - - component: {fileID: 11451964} - - component: {fileID: 11456324} - - component: {fileID: 11449908} - m_Layer: 0 - m_Name: LeftNumbers_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22432870 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150524} - 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_Children: - - {fileID: 22494100} - - {fileID: 22482704} - m_Father: {fileID: 22460848} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22231236 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150524} - m_CullTransparentMesh: 0 ---- !u!114 &11451964 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150524} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11456324 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150524} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11452712} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11449908 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150524} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 3 ---- !u!1 &150910 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22405956} - - component: {fileID: 22238918} - - component: {fileID: 11407102} - - component: {fileID: 11430110} - m_Layer: 0 - m_Name: keyboard_RightSymbols - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22405956 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150910} - 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_Children: - - {fileID: 22474762} - - {fileID: 22417666} - - {fileID: 22471102} - - {fileID: 22477742} - m_Father: {fileID: 22400998} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0.5} - m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -48, y: -0.0000076293945} - m_SizeDelta: {x: 100, y: 306.05} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22238918 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150910} - m_CullTransparentMesh: 0 ---- !u!114 &11407102 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150910} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0, b: 0, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11430110 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 150910} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!1 &151086 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22433320} - - component: {fileID: 22275938} - - component: {fileID: 11441042} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22433320 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151086} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22444694} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22275938 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151086} - m_CullTransparentMesh: 0 ---- !u!114 &11441042 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151086} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &151122 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22471068} - - component: {fileID: 22297980} - - component: {fileID: 11447398} - - component: {fileID: 11422638} - - component: {fileID: 11434252} - m_Layer: 0 - m_Name: G_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22471068 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151122} - 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_Children: - - {fileID: 22435236} - - {fileID: 22490664} - m_Father: {fileID: 22479812} - m_RootOrder: 16 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 408, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22297980 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151122} - m_CullTransparentMesh: 0 ---- !u!114 &11447398 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151122} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11422638 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151122} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11491478} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11434252 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151122} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: g - ShiftValue: G ---- !u!1 &151138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22422604} - - component: {fileID: 22208610} - - component: {fileID: 11478230} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22422604 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151138} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22458212} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22208610 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151138} - m_CullTransparentMesh: 0 ---- !u!114 &11478230 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &151174 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22435236} - - component: {fileID: 22298714} - - component: {fileID: 8387392010619813531} - m_Layer: 0 - m_Name: keyboard_g - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22435236 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151174} - 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_Children: [] - m_Father: {fileID: 22471068} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.005218506, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22298714 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151174} - m_CullTransparentMesh: 0 ---- !u!114 &8387392010619813531 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151174} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: G - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8387392010619813531} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &151642 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22481452} - - component: {fileID: 22287356} - - component: {fileID: 2839775779204643443} - m_Layer: 0 - m_Name: keyboard_n09 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22481452 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151642} - 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_Children: [] - m_Father: {fileID: 22421144} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0018005371, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22287356 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151642} - m_CullTransparentMesh: 0 ---- !u!114 &2839775779204643443 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151642} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 9 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2839775779204643443} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &151644 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22419104} - - component: {fileID: 22284024} - - component: {fileID: 11420248} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22419104 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151644} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22478130} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22284024 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151644} - m_CullTransparentMesh: 0 ---- !u!114 &11420248 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151644} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &151732 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22448102} - - component: {fileID: 22210916} - - component: {fileID: 11408020} - - component: {fileID: 11463252} - - component: {fileID: 11469262} - m_Layer: 0 - m_Name: Right_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22448102 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151732} - 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_Children: - - {fileID: 22439980} - - {fileID: 22417676} - m_Father: {fileID: 22479812} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1122, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22210916 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151732} - m_CullTransparentMesh: 0 ---- !u!114 &11408020 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151732} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11463252 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151732} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11419720} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11469262 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 151732} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 5 ---- !u!1 &152112 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22416218} - - component: {fileID: 22259072} - - component: {fileID: 6893576858541753842} - m_Layer: 0 - m_Name: keyboard_q - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22416218 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152112} - 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_Children: [] - m_Father: {fileID: 22428854} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0067749023, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22259072 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152112} - m_CullTransparentMesh: 0 ---- !u!114 &6893576858541753842 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152112} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Q - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6893576858541753842} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &152910 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22472954} - - component: {fileID: 22273508} - - component: {fileID: 11498526} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22472954 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152910} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22492986} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22273508 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152910} - m_CullTransparentMesh: 0 ---- !u!114 &11498526 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152910} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &152926 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22490664} - - component: {fileID: 22209932} - - component: {fileID: 11491478} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22490664 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152926} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22471068} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209932 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152926} - m_CullTransparentMesh: 0 ---- !u!114 &11491478 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152926} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &153116 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22465210} - - component: {fileID: 22201998} - - component: {fileID: 11448648} - - component: {fileID: 11416936} - - component: {fileID: 11494032} - m_Layer: 0 - m_Name: NumberSign_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22465210 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153116} - 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_Children: - - {fileID: 22462732} - - {fileID: 22444016} - m_Father: {fileID: 22464878} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22201998 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153116} - m_CullTransparentMesh: 0 ---- !u!114 &11448648 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153116} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11416936 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153116} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11420788} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11494032 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153116} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '#' - ShiftValue: "\u20AC" ---- !u!1 &153762 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22402474} - - component: {fileID: 22203972} - - component: {fileID: 11433834} - - component: {fileID: 11457174} - - component: {fileID: 11434368} - m_Layer: 0 - m_Name: Enter_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22402474 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153762} - 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_Children: - - {fileID: 22440338} - - {fileID: 22479624} - m_Father: {fileID: 22479812} - m_RootOrder: 22 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1020, y: -77} - m_SizeDelta: {x: 202, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22203972 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153762} - m_CullTransparentMesh: 0 ---- !u!114 &11433834 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153762} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11457174 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153762} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11428584} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11434368 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153762} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 0 ---- !u!1 &153830 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22479624} - - component: {fileID: 22230384} - - component: {fileID: 11428584} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22479624 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153830} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22402474} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22230384 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153830} - m_CullTransparentMesh: 0 ---- !u!114 &11428584 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153830} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &153908 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22423982} - - component: {fileID: 22289094} - - component: {fileID: 11461332} - - component: {fileID: 11452172} - - component: {fileID: 11421712} - m_Layer: 0 - m_Name: U_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22423982 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153908} - 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_Children: - - {fileID: 22492534} - - {fileID: 22496022} - m_Father: {fileID: 22479812} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 612, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22289094 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153908} - m_CullTransparentMesh: 0 ---- !u!114 &11461332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153908} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11452172 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153908} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11436218} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11421712 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 153908} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: u - ShiftValue: U ---- !u!1 &154526 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22416050} - - component: {fileID: 22204222} - - component: {fileID: 11429994} - - component: {fileID: 11405032} - m_Layer: 0 - m_Name: keyboard_Space_Alpha - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22416050 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 154526} - 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_Children: - - {fileID: 22411316} - - {fileID: 22432408} - - {fileID: 22446000} - m_Father: {fileID: 22458684} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 124} - m_SizeDelta: {x: 1222.5, y: 76.65} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22204222 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 154526} - m_CullTransparentMesh: 0 ---- !u!114 &11429994 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 154526} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.11764706, g: 0.12156863, b: 0.13725491, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11405032 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 154526} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 02a7240a07c6149409b42274987c904a, type: 3} - m_Name: - m_EditorClassIdentifier: - maxWidth: -1 - maxHeight: -1 - horizontalSpacing: 2 - verticalSpacing: 2 ---- !u!1 &155720 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22475582} - - component: {fileID: 22252852} - - component: {fileID: 11419346} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22475582 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155720} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22446928} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22252852 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155720} - m_CullTransparentMesh: 0 ---- !u!114 &11419346 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155720} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &158002 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22455186} - - component: {fileID: 22205990} - - component: {fileID: 11477734} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22455186 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 158002} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22432408} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22205990 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 158002} - m_CullTransparentMesh: 0 ---- !u!114 &11477734 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 158002} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &158244 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22417264} - - component: {fileID: 22288418} - - component: {fileID: 6822204660190288295} - m_Layer: 0 - m_Name: keyboard_a - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22417264 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 158244} - 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_Children: [] - m_Father: {fileID: 22430750} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0067749023, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22288418 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 158244} - m_CullTransparentMesh: 0 ---- !u!114 &6822204660190288295 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 158244} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: A - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6822204660190288295} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &159218 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22407376} - - component: {fileID: 22214784} - - component: {fileID: 11400096} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22407376 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159218} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22496376} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22214784 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159218} - m_CullTransparentMesh: 0 ---- !u!114 &11400096 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159218} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &159570 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22491032} - - component: {fileID: 22203354} - - component: {fileID: 11431780} - - component: {fileID: 11468482} - - component: {fileID: 11403656} - m_Layer: 0 - m_Name: M_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22491032 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159570} - 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_Children: - - {fileID: 22454728} - - {fileID: 22459372} - m_Father: {fileID: 22479812} - m_RootOrder: 30 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 714, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22203354 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159570} - m_CullTransparentMesh: 0 ---- !u!114 &11431780 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159570} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11468482 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159570} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11440826} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11403656 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159570} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: m - ShiftValue: M ---- !u!1 &159892 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22469802} - - component: {fileID: 22296616} - - component: {fileID: 11499290} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22469802 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159892} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22418770} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22296616 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159892} - m_CullTransparentMesh: 0 ---- !u!114 &11499290 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159892} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &160616 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22418584} - - component: {fileID: 22255272} - - component: {fileID: 3867063661863867182} - m_Layer: 0 - m_Name: keyboard_f - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22418584 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 160616} - 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_Children: [] - m_Father: {fileID: 22429856} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0056762695, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22255272 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 160616} - m_CullTransparentMesh: 0 ---- !u!114 &3867063661863867182 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 160616} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: F - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3867063661863867182} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &161222 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22401602} - - component: {fileID: 22273098} - - component: {fileID: 11497730} - - component: {fileID: 11476808} - - component: {fileID: 11414268} - m_Layer: 0 - m_Name: dot_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22401602 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161222} - 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_Children: - - {fileID: 22478356} - - {fileID: 22438076} - m_Father: {fileID: 22441282} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -231} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22273098 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161222} - m_CullTransparentMesh: 0 ---- !u!114 &11497730 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161222} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11476808 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161222} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11405568} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11414268 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161222} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: . - ShiftValue: ---- !u!1 &161448 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22413622} - - component: {fileID: 22212992} - - component: {fileID: 11411454} - - component: {fileID: 11407096} - - component: {fileID: 11438628} - m_Layer: 0 - m_Name: S_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22413622 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161448} - 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_Children: - - {fileID: 22424336} - - {fileID: 22482286} - m_Father: {fileID: 22479812} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22212992 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161448} - m_CullTransparentMesh: 0 ---- !u!114 &11411454 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161448} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11407096 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161448} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11489926} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11438628 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 161448} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: s - ShiftValue: S ---- !u!1 &162524 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22494460} - - component: {fileID: 22207902} - - component: {fileID: 11452114} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22494460 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162524} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22401596} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22207902 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162524} - m_CullTransparentMesh: 0 ---- !u!114 &11452114 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162524} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &162564 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22488246} - - component: {fileID: 22292544} - - component: {fileID: 11493478} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22488246 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162564} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22418362} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22292544 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162564} - m_CullTransparentMesh: 0 ---- !u!114 &11493478 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162564} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &162654 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22428030} - - component: {fileID: 22248828} - - component: {fileID: 11433628} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22428030 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162654} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22475638} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22248828 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162654} - m_CullTransparentMesh: 0 ---- !u!114 &11433628 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162654} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &162826 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22441504} - - component: {fileID: 22292940} - - component: {fileID: 1707747858059002} - m_Layer: 0 - m_Name: keyboard_x - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22441504 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162826} - 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_Children: [] - m_Father: {fileID: 22413830} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0061035156, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22292940 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162826} - m_CullTransparentMesh: 0 ---- !u!114 &1707747858059002 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162826} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: X - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1707747858059002} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &162856 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22408530} - - component: {fileID: 22291470} - - component: {fileID: 8024811669685483715} - m_Layer: 0 - m_Name: keyboard_Semicolon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22408530 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162856} - 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_Children: [] - m_Father: {fileID: 22474578} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0060424805, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22291470 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162856} - m_CullTransparentMesh: 0 ---- !u!114 &8024811669685483715 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 162856} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ; - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8024811669685483715} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &163136 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22438322} - - component: {fileID: 22214398} - - component: {fileID: 11406288} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22438322 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 163136} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22434070} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22214398 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 163136} - m_CullTransparentMesh: 0 ---- !u!114 &11406288 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 163136} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &164132 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22418888} - - component: {fileID: 22265346} - - component: {fileID: 114924356850781548} - m_Layer: 0 - m_Name: keyboard_left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22418888 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164132} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22474762} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22265346 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164132} - m_CullTransparentMesh: 0 ---- !u!114 &114924356850781548 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: ec8b4073237c9724ba8422f71fda3694, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &164204 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22474814} - - component: {fileID: 22206628} - - component: {fileID: 8176949244534637688} - m_Layer: 0 - m_Name: keyboard_n03 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22474814 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164204} - 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_Children: [] - m_Father: {fileID: 22475972} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0018005371, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22206628 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164204} - m_CullTransparentMesh: 0 ---- !u!114 &8176949244534637688 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164204} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 3 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8176949244534637688} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &164416 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22479472} - - component: {fileID: 22263958} - - component: {fileID: 11497584} - - component: {fileID: 11406838} - - component: {fileID: 11490498} - m_Layer: 0 - m_Name: Backspace - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22479472 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164416} - 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_Children: - - {fileID: 22482356} - - {fileID: 22464976} - m_Father: {fileID: 22410434} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -100, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22263958 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164416} - m_CullTransparentMesh: 0 ---- !u!114 &11497584 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164416} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11406838 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164416} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11457408} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11490498 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164416} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 11 ---- !u!1 &164942 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22459598} - - component: {fileID: 22264712} - - component: {fileID: 11414000} - - component: {fileID: 11403358} - m_Layer: 0 - m_Name: CapsLockOn - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22459598 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164942} - 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_Children: [] - m_Father: {fileID: 22444694} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22264712 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164942} - m_CullTransparentMesh: 0 ---- !u!114 &11414000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164942} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.034482475, g: 0, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11403358 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 164942} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a8ed810402899bf49be42934d6a6fcb6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Highlight: {fileID: 11414000} ---- !u!1 &166108 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22427190} - - component: {fileID: 22212418} - - component: {fileID: 5587501417013676687} - m_Layer: 0 - m_Name: keyboard_LeftNumbers - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22427190 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166108} - 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_Children: [] - m_Father: {fileID: 22471260} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0067749023, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22212418 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166108} - m_CullTransparentMesh: 0 ---- !u!114 &5587501417013676687 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166108} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '&123' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5587501417013676687} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &166252 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22477678} - - component: {fileID: 22241222} - - component: {fileID: 11485106} - - component: {fileID: 11403228} - - component: {fileID: 11461158} - m_Layer: 0 - m_Name: V_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22477678 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166252} - 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_Children: - - {fileID: 22487824} - - {fileID: 22438784} - m_Father: {fileID: 22479812} - m_RootOrder: 27 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 408, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22241222 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166252} - m_CullTransparentMesh: 0 ---- !u!114 &11485106 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166252} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11403228 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166252} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11438478} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11461158 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166252} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: v - ShiftValue: V ---- !u!1 &166426 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22444158} - - component: {fileID: 22210648} - - component: {fileID: 11442184} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22444158 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166426} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22487526} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22210648 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166426} - m_CullTransparentMesh: 0 ---- !u!114 &11442184 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166426} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &166852 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22477742} - - component: {fileID: 22252146} - - component: {fileID: 11410128} - - component: {fileID: 11468686} - - component: {fileID: 11443506} - m_Layer: 0 - m_Name: RightABC_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22477742 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166852} - 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_Children: - - {fileID: 22453786} - - {fileID: 22411772} - m_Father: {fileID: 22405956} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -231} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22252146 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166852} - m_CullTransparentMesh: 0 ---- !u!114 &11410128 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166852} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11468686 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166852} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11439514} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11443506 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 166852} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 2 ---- !u!1 &167098 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22491366} - - component: {fileID: 22264994} - - component: {fileID: 11400408} - - component: {fileID: 11492290} - - component: {fileID: 11407740} - m_Layer: 0 - m_Name: n04_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22491366 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167098} - 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_Children: - - {fileID: 22482422} - - {fileID: 22408096} - m_Father: {fileID: 22441282} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22264994 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167098} - m_CullTransparentMesh: 0 ---- !u!114 &11400408 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11492290 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11452612} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11407740 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 4 - ShiftValue: ---- !u!1 &167642 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22456716} - - component: {fileID: 22287418} - - component: {fileID: 11420080} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22456716 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167642} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22421948} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22287418 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167642} - m_CullTransparentMesh: 0 ---- !u!114 &11420080 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167642} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &168120 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22423630} - - component: {fileID: 22249416} - - component: {fileID: 2110119107305546731} - m_Layer: 0 - m_Name: keyboard_e - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22423630 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168120} - 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_Children: [] - m_Father: {fileID: 22487526} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0061035156, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22249416 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168120} - m_CullTransparentMesh: 0 ---- !u!114 &2110119107305546731 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: E - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2110119107305546731} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &168154 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22421144} - - component: {fileID: 22257282} - - component: {fileID: 11458168} - - component: {fileID: 11462646} - - component: {fileID: 11405832} - m_Layer: 0 - m_Name: n09_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22421144 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168154} - 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_Children: - - {fileID: 22481452} - - {fileID: 22488306} - m_Father: {fileID: 22441282} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22257282 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168154} - m_CullTransparentMesh: 0 ---- !u!114 &11458168 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168154} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11462646 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168154} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11419764} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11405832 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168154} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 9 - ShiftValue: ---- !u!1 &168188 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22488768} - - component: {fileID: 22275480} - - component: {fileID: 11450652} - - component: {fileID: 11488374} - - component: {fileID: 11483182} - m_Layer: 0 - m_Name: K_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22488768 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168188} - 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_Children: - - {fileID: 22473732} - - {fileID: 22452782} - m_Father: {fileID: 22479812} - m_RootOrder: 19 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 714, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22275480 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168188} - m_CullTransparentMesh: 0 ---- !u!114 &11450652 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11488374 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11493640} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11483182 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: k - ShiftValue: K ---- !u!1 &168292 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22413830} - - component: {fileID: 22233338} - - component: {fileID: 11485700} - - component: {fileID: 11422532} - - component: {fileID: 11412880} - m_Layer: 0 - m_Name: X_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22413830 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168292} - 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_Children: - - {fileID: 22441504} - - {fileID: 22456290} - m_Father: {fileID: 22479812} - m_RootOrder: 25 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22233338 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168292} - m_CullTransparentMesh: 0 ---- !u!114 &11485700 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168292} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11422532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168292} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11405490} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11412880 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168292} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: x - ShiftValue: X ---- !u!1 &168302 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22429358} - - component: {fileID: 22260182} - - component: {fileID: 11442212} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22429358 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168302} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22484368} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22260182 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168302} - m_CullTransparentMesh: 0 ---- !u!114 &11442212 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168302} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &168338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22424178} - - component: {fileID: 22291672} - - component: {fileID: 11404204} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22424178 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168338} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22490040} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22291672 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168338} - m_CullTransparentMesh: 0 ---- !u!114 &11404204 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168338} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &168406 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22410810} - - component: {fileID: 22245314} - - component: {fileID: 11483670} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22410810 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168406} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22417666} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22245314 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168406} - m_CullTransparentMesh: 0 ---- !u!114 &11483670 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168406} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &168500 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22444694} - - component: {fileID: 22240122} - - component: {fileID: 11447832} - - component: {fileID: 11474356} - - component: {fileID: 11407860} - m_Layer: 0 - m_Name: UpRightShift_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22444694 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168500} - 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_Children: - - {fileID: 22459598} - - {fileID: 22434178} - - {fileID: 22433320} - m_Father: {fileID: 22479812} - m_RootOrder: 34 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1122, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22240122 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168500} - m_CullTransparentMesh: 0 ---- !u!114 &11447832 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168500} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11474356 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168500} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11441042} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11407860 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168500} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 8 ---- !u!1 &168922 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22404266} - - component: {fileID: 22219560} - - component: {fileID: 11480426} - - component: {fileID: 11482016} - - component: {fileID: 11401532} - m_Layer: 0 - m_Name: Solidus_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22404266 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168922} - 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_Children: - - {fileID: 22454146} - - {fileID: 22438734} - m_Father: {fileID: 22464878} - m_RootOrder: 17 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22219560 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168922} - m_CullTransparentMesh: 0 ---- !u!114 &11480426 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168922} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11482016 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168922} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11434834} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11401532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168922} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: / - ShiftValue: ^ ---- !u!1 &168930 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22465560} - - component: {fileID: 22272128} - - component: {fileID: 11441692} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22465560 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168930} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22455304} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22272128 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168930} - m_CullTransparentMesh: 0 ---- !u!114 &11441692 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168930} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &169484 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22481614} - - component: {fileID: 22211412} - - component: {fileID: 11423340} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22481614 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169484} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22442914} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22211412 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169484} - m_CullTransparentMesh: 0 ---- !u!114 &11423340 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169484} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &169978 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22457066} - - component: {fileID: 22234254} - - component: {fileID: 11426554} - - component: {fileID: 11405144} - - component: {fileID: 11409066} - m_Layer: 0 - m_Name: n05_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22457066 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169978} - 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_Children: - - {fileID: 22429652} - - {fileID: 22437868} - m_Father: {fileID: 22441282} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22234254 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169978} - m_CullTransparentMesh: 0 ---- !u!114 &11426554 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169978} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11405144 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169978} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11499450} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11409066 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 169978} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 5 - ShiftValue: ---- !u!1 &170366 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22464976} - - component: {fileID: 22251896} - - component: {fileID: 11457408} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22464976 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170366} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22479472} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22251896 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170366} - m_CullTransparentMesh: 0 ---- !u!114 &11457408 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170366} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &170892 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22462662} - - component: {fileID: 22244032} - - component: {fileID: 11462294} - - component: {fileID: 11489800} - - component: {fileID: 11414754} - m_Layer: 0 - m_Name: Hyphen_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22462662 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170892} - 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_Children: - - {fileID: 22420378} - - {fileID: 22499626} - m_Father: {fileID: 22460848} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1020, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22244032 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170892} - m_CullTransparentMesh: 0 ---- !u!114 &11462294 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170892} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11489800 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170892} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11453516} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11414754 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170892} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '-' - ShiftValue: ---- !u!1 &170898 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22427104} - - component: {fileID: 22230930} - - component: {fileID: 2349374909811551858} - m_Layer: 0 - m_Name: keyboard_slash - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22427104 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170898} - 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_Children: [] - m_Father: {fileID: 22441896} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0061035156, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22230930 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170898} - m_CullTransparentMesh: 0 ---- !u!114 &2349374909811551858 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 170898} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: / - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2349374909811551858} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &171048 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22461666} - - component: {fileID: 22274024} - - component: {fileID: 3368076205398227958} - m_Layer: 0 - m_Name: keyboard_LowLine - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22461666 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171048} - 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_Children: [] - m_Father: {fileID: 22421948} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.00680542, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22274024 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171048} - m_CullTransparentMesh: 0 ---- !u!114 &3368076205398227958 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171048} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: _ - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3368076205398227958} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &171104 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22481370} - - component: {fileID: 22210954} - - component: {fileID: 11453780} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22481370 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171104} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22454856} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22210954 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171104} - m_CullTransparentMesh: 0 ---- !u!114 &11453780 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171104} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &171300 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22446786} - - component: {fileID: 22280066} - - component: {fileID: 11467634} - - component: {fileID: 11441512} - - component: {fileID: 11462632} - m_Layer: 0 - m_Name: ReverseSolidus_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22446786 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171300} - 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_Children: - - {fileID: 22485260} - - {fileID: 22407146} - m_Father: {fileID: 22464878} - m_RootOrder: 12 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22280066 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171300} - m_CullTransparentMesh: 0 ---- !u!114 &11467634 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171300} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11441512 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171300} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11425092} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11462632 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171300} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: \ - ShiftValue: '|' ---- !u!1 &171538 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22499186} - - component: {fileID: 22284022} - - component: {fileID: 114642362316599476} - m_Layer: 0 - m_Name: keyboard_Left - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22499186 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171538} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22418362} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22284022 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171538} - m_CullTransparentMesh: 0 ---- !u!114 &114642362316599476 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171538} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: ec8b4073237c9724ba8422f71fda3694, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &171546 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22478120} - - component: {fileID: 22279220} - - component: {fileID: 2185944509036339457} - m_Layer: 0 - m_Name: keyboard_c - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22478120 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171546} - 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_Children: [] - m_Father: {fileID: 22423580} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0056762695, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22279220 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171546} - m_CullTransparentMesh: 0 ---- !u!114 &2185944509036339457 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171546} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: C - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2185944509036339457} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &171718 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22496022} - - component: {fileID: 22262100} - - component: {fileID: 11436218} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22496022 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171718} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22423982} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22262100 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171718} - m_CullTransparentMesh: 0 ---- !u!114 &11436218 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171718} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &171794 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22462732} - - component: {fileID: 22242748} - - component: {fileID: 8371387103602521714} - m_Layer: 0 - m_Name: keyboard_NumberSign - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22462732 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171794} - 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_Children: [] - m_Father: {fileID: 22465210} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.006500244, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22242748 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171794} - m_CullTransparentMesh: 0 ---- !u!114 &8371387103602521714 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171794} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '#' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8371387103602521714} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &171932 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22432408} - - component: {fileID: 22217138} - - component: {fileID: 11425864} - - component: {fileID: 11417022} - - component: {fileID: 11496672} - m_Layer: 0 - m_Name: Space_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22432408 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171932} - 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_Children: - - {fileID: 22409068} - - {fileID: 22455186} - m_Father: {fileID: 22416050} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -0} - m_SizeDelta: {x: 1018, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22217138 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171932} - m_CullTransparentMesh: 0 ---- !u!114 &11425864 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171932} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11417022 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171932} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11477734} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11496672 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171932} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 10 ---- !u!1 &171990 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22444016} - - component: {fileID: 22244314} - - component: {fileID: 11420788} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22444016 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171990} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22465210} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22244314 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171990} - m_CullTransparentMesh: 0 ---- !u!114 &11420788 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171990} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &172090 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22468692} - - component: {fileID: 22212380} - - component: {fileID: 114591710190685490} - m_Layer: 0 - m_Name: keyboard_closeIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22468692 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172090} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 1} - m_Children: [] - m_Father: {fileID: 22484182} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 9.4} - m_SizeDelta: {x: 0, y: -18.8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22212380 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172090} - m_CullTransparentMesh: 0 ---- !u!114 &114591710190685490 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172090} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7029cbbbce5f0ac4dbc4e93267bfddf4, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &172346 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22483672} - - component: {fileID: 22209216} - - component: {fileID: 5632752561479095151} - m_Layer: 0 - m_Name: keyboard_y - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22483672 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172346} - 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_Children: [] - m_Father: {fileID: 22492986} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.004776001, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209216 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172346} - m_CullTransparentMesh: 0 ---- !u!114 &5632752561479095151 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172346} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Y - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5632752561479095151} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &172482 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22462540} - - component: {fileID: 22246434} - - component: {fileID: 11405678} - - component: {fileID: 11409836} - - component: {fileID: 11431046} - m_Layer: 0 - m_Name: LeftABC_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22462540 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172482} - 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_Children: - - {fileID: 22467832} - - {fileID: 22411494} - m_Father: {fileID: 22429566} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -231} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22246434 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172482} - m_CullTransparentMesh: 0 ---- !u!114 &11405678 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11409836 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11428556} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11431046 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172482} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 2 ---- !u!1 &172484 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22470238} - - component: {fileID: 22205536} - - component: {fileID: 11408862} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22470238 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172484} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22409590} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22205536 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172484} - m_CullTransparentMesh: 0 ---- !u!114 &11408862 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172484} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &173008 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22423580} - - component: {fileID: 22274462} - - component: {fileID: 11486848} - - component: {fileID: 11423954} - - component: {fileID: 11419342} - m_Layer: 0 - m_Name: C_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22423580 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173008} - 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_Children: - - {fileID: 22478120} - - {fileID: 22438964} - m_Father: {fileID: 22479812} - m_RootOrder: 26 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22274462 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173008} - m_CullTransparentMesh: 0 ---- !u!114 &11486848 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173008} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11423954 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173008} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11466010} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11419342 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173008} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: c - ShiftValue: C ---- !u!1 &173150 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22401506} - - component: {fileID: 22278772} - - component: {fileID: 11469928} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22401506 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173150} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22454786} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22278772 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173150} - m_CullTransparentMesh: 0 ---- !u!114 &11469928 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173150} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &173904 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22400998} - - component: {fileID: 22217730} - - component: {fileID: 11428666} - m_Layer: 0 - m_Name: keyboard_Symbols - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &22400998 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173904} - 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_Children: - - {fileID: 22429566} - - {fileID: 22464878} - - {fileID: 22441282} - - {fileID: 22405956} - m_Father: {fileID: 22458684} - 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: 0, y: 0} - m_SizeDelta: {x: 1217.7, y: 331.1} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22217730 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173904} - m_CullTransparentMesh: 0 ---- !u!114 &11428666 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.11764706, g: 0.12156863, b: 0.13725491, a: 0} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &174070 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22418362} - - component: {fileID: 22298616} - - component: {fileID: 11419050} - - component: {fileID: 11496052} - - component: {fileID: 11453814} - m_Layer: 0 - m_Name: Left_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22418362 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174070} - 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_Children: - - {fileID: 22499186} - - {fileID: 22488246} - m_Father: {fileID: 22479812} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1020, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22298616 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174070} - m_CullTransparentMesh: 0 ---- !u!114 &11419050 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174070} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11496052 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174070} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11493478} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11453814 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174070} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 4 ---- !u!1 &174232 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22482704} - - component: {fileID: 22263202} - - component: {fileID: 11452712} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22482704 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174232} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22432870} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22263202 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174232} - m_CullTransparentMesh: 0 ---- !u!114 &11452712 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174232} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &174876 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22463126} - - component: {fileID: 22294746} - - component: {fileID: 11472876} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22463126 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174876} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22406720} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22294746 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174876} - m_CullTransparentMesh: 0 ---- !u!114 &11472876 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174876} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &175092 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22475972} - - component: {fileID: 22276316} - - component: {fileID: 11410166} - - component: {fileID: 11423722} - - component: {fileID: 11416668} - m_Layer: 0 - m_Name: n03_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22475972 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175092} - 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_Children: - - {fileID: 22474814} - - {fileID: 22490568} - m_Father: {fileID: 22441282} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22276316 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175092} - m_CullTransparentMesh: 0 ---- !u!114 &11410166 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175092} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11423722 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175092} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11491774} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11416668 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175092} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 3 - ShiftValue: ---- !u!1 &175324 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22459372} - - component: {fileID: 22296978} - - component: {fileID: 11440826} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22459372 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175324} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22491032} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22296978 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175324} - m_CullTransparentMesh: 0 ---- !u!114 &11440826 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175324} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &175790 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22427742} - - component: {fileID: 22227436} - - component: {fileID: 6105179557636941197} - m_Layer: 0 - m_Name: keyboard_ExclamationMark - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22427742 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175790} - 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_Children: [] - m_Father: {fileID: 22408352} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0056152344, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22227436 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175790} - m_CullTransparentMesh: 0 ---- !u!114 &6105179557636941197 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175790} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '!' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6105179557636941197} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &175812 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22454146} - - component: {fileID: 22215326} - - component: {fileID: 3486794685960945369} - m_Layer: 0 - m_Name: keyboard_Solidus - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22454146 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175812} - 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_Children: [] - m_Father: {fileID: 22404266} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.00592041, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22215326 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175812} - m_CullTransparentMesh: 0 ---- !u!114 &3486794685960945369 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175812} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: / - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3486794685960945369} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &175950 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22442914} - - component: {fileID: 22230026} - - component: {fileID: 11454284} - - component: {fileID: 11499218} - - component: {fileID: 11479678} - m_Layer: 0 - m_Name: Com_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22442914 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175950} - 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_Children: - - {fileID: 22413816} - - {fileID: 22481614} - m_Father: {fileID: 22425748} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 918, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22230026 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175950} - m_CullTransparentMesh: 0 ---- !u!114 &11454284 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175950} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11499218 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175950} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11423340} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11479678 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 175950} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: .com - ShiftValue: .COM ---- !u!1 &176114 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22443268} - - component: {fileID: 22272664} - - component: {fileID: 3085334005946027600} - m_Layer: 0 - m_Name: keyboard_enter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22443268 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176114} - 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_Children: [] - m_Father: {fileID: 22471102} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0057373047, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22272664 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176114} - m_CullTransparentMesh: 0 ---- !u!114 &3085334005946027600 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176114} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Enter - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3085334005946027600} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &176374 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22459416} - - component: {fileID: 22275984} - - component: {fileID: 31658843412290239} - m_Layer: 0 - m_Name: keyboard_j - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22459416 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176374} - 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_Children: [] - m_Father: {fileID: 22490040} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0043296814, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22275984 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176374} - m_CullTransparentMesh: 0 ---- !u!114 &31658843412290239 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176374} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: J - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 31658843412290239} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &176516 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22468454} - - component: {fileID: 22227480} - - component: {fileID: 11499950} - - component: {fileID: 11487054} - - component: {fileID: 11404882} - m_Layer: 0 - m_Name: Space_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22468454 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176516} - 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_Children: - - {fileID: 22420350} - - {fileID: 22406776} - m_Father: {fileID: 22460848} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -0} - m_SizeDelta: {x: 610, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22227480 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176516} - m_CullTransparentMesh: 0 ---- !u!114 &11499950 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176516} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11487054 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176516} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11426054} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11404882 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176516} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 10 ---- !u!1 &176658 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22406332} - - component: {fileID: 22281196} - - component: {fileID: 7953864114501168690} - m_Layer: 0 - m_Name: keyboard_Comma - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22406332 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176658} - 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_Children: [] - m_Father: {fileID: 22486042} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0034332275, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22281196 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176658} - m_CullTransparentMesh: 0 ---- !u!114 &7953864114501168690 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ',' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 7953864114501168690} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &176982 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22425116} - - component: {fileID: 22275238} - - component: {fileID: 11421568} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22425116 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176982} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22471102} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22275238 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176982} - m_CullTransparentMesh: 0 ---- !u!114 &11421568 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176982} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &177284 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22435952} - - component: {fileID: 22288774} - - component: {fileID: 11498258} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22435952 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177284} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22497832} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22288774 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177284} - m_CullTransparentMesh: 0 ---- !u!114 &11498258 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177284} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &177762 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22480030} - - component: {fileID: 22294366} - - component: {fileID: 11426324} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22480030 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177762} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22410804} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22294366 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177762} - m_CullTransparentMesh: 0 ---- !u!114 &11426324 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177762} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &177772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22456780} - - component: {fileID: 22242156} - - component: {fileID: 11492308} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22456780 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177772} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22429856} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22242156 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177772} - m_CullTransparentMesh: 0 ---- !u!114 &11492308 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177772} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &177782 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22446988} - - component: {fileID: 22283336} - - component: {fileID: 4928771861731684150} - m_Layer: 0 - m_Name: keyboard_UpLeftNumbers - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22446988 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177782} - 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_Children: [] - m_Father: {fileID: 22411316} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0067749023, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22283336 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177782} - m_CullTransparentMesh: 0 ---- !u!114 &4928771861731684150 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 177782} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '&123' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4928771861731684150} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &178738 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22429130} - - component: {fileID: 22298388} - - component: {fileID: 11446172} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22429130 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 178738} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22406000} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22298388 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 178738} - m_CullTransparentMesh: 0 ---- !u!114 &11446172 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 178738} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &179150 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22458212} - - component: {fileID: 22264220} - - component: {fileID: 11492664} - - component: {fileID: 11415040} - - component: {fileID: 11468964} - m_Layer: 0 - m_Name: LeftShift_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22458212 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179150} - 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_Children: - - {fileID: 22413324} - - {fileID: 22494308} - - {fileID: 22422604} - m_Father: {fileID: 22479812} - m_RootOrder: 23 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22264220 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179150} - m_CullTransparentMesh: 0 ---- !u!114 &11492664 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179150} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11415040 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179150} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11478230} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11468964 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179150} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 8 ---- !u!1 &179654 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22439972} - - component: {fileID: 22220532} - - component: {fileID: 11400182} - m_Layer: 0 - m_Name: keyboard_Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22439972 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179654} - 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_Children: - - {fileID: 22484182} - - {fileID: 22410434} - m_Father: {fileID: 22458684} - m_RootOrder: 0 - 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: 0, y: 0} - m_SizeDelta: {x: 1250, y: 335} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22220532 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179654} - m_CullTransparentMesh: 0 ---- !u!114 &11400182 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 179654} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.11764706, g: 0.12156863, b: 0.13725491, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &180646 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22407342} - - component: {fileID: 22244202} - - component: {fileID: 11469414} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22407342 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180646} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22446000} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22244202 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180646} - m_CullTransparentMesh: 0 ---- !u!114 &11469414 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180646} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &180848 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22490040} - - component: {fileID: 22224712} - - component: {fileID: 11487628} - - component: {fileID: 11422218} - - component: {fileID: 11498862} - m_Layer: 0 - m_Name: J_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22490040 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180848} - 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_Children: - - {fileID: 22459416} - - {fileID: 22424178} - m_Father: {fileID: 22479812} - m_RootOrder: 18 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 612, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22224712 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180848} - m_CullTransparentMesh: 0 ---- !u!114 &11487628 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180848} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11422218 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180848} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11404204} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11498862 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180848} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: j - ShiftValue: J ---- !u!1 &180904 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22485696} - - component: {fileID: 22209674} - - component: {fileID: 1486987399358525534} - m_Layer: 0 - m_Name: keyboard_Quotation - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22485696 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180904} - 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_Children: [] - m_Father: {fileID: 22427586} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.00680542, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22209674 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180904} - m_CullTransparentMesh: 0 ---- !u!114 &1486987399358525534 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '"' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1486987399358525534} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &181290 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22477418} - - component: {fileID: 22244160} - - component: {fileID: 11447882} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22477418 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181290} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22473450} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22244160 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181290} - m_CullTransparentMesh: 0 ---- !u!114 &11447882 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181290} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &181296 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22497832} - - component: {fileID: 22223534} - - component: {fileID: 11462514} - - component: {fileID: 11435552} - - component: {fileID: 11490410} - m_Layer: 0 - m_Name: RightNumbers_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22497832 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181296} - 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_Children: - - {fileID: 22434546} - - {fileID: 22435952} - m_Father: {fileID: 22425748} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1122, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22223534 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181296} - m_CullTransparentMesh: 0 ---- !u!114 &11462514 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181296} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11435552 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181296} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11498258} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11490410 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181296} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 3 ---- !u!1 &181608 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22485260} - - component: {fileID: 22231852} - - component: {fileID: 1904435917582218786} - m_Layer: 0 - m_Name: keyboard_ReverseSolidus - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22485260 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181608} - 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_Children: [] - m_Father: {fileID: 22446786} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0056152344, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22231852 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181608} - m_CullTransparentMesh: 0 ---- !u!114 &1904435917582218786 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181608} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: \ - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1904435917582218786} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &181806 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22447026} - - component: {fileID: 22223342} - - component: {fileID: 11457836} - - component: {fileID: 11467532} - - component: {fileID: 11432926} - m_Layer: 0 - m_Name: SoftHyphen_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22447026 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181806} - 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_Children: - - {fileID: 22436468} - - {fileID: 22406124} - m_Father: {fileID: 22464878} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22223342 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181806} - m_CullTransparentMesh: 0 ---- !u!114 &11457836 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181806} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11467532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181806} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11464286} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11432926 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181806} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '-' - ShiftValue: '[' ---- !u!1 &181808 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22468698} - - component: {fileID: 22214638} - - component: {fileID: 11411140} - - component: {fileID: 11474394} - - component: {fileID: 11454714} - m_Layer: 0 - m_Name: UnShift_Symbols_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22468698 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181808} - 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_Children: - - {fileID: 22404666} - - {fileID: 22457140} - m_Father: {fileID: 22429566} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22214638 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181808} - m_CullTransparentMesh: 0 ---- !u!114 &11411140 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181808} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11474394 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181808} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11427392} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11454714 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 181808} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 8 ---- !u!1 &182082 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22438964} - - component: {fileID: 22223186} - - component: {fileID: 11466010} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22438964 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182082} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22423580} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22223186 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182082} - m_CullTransparentMesh: 0 ---- !u!114 &11466010 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182082} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &182758 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22483284} - - component: {fileID: 22277904} - - component: {fileID: 11422268} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22483284 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182758} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22477008} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22277904 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182758} - m_CullTransparentMesh: 0 ---- !u!114 &11422268 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182758} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &182778 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22437868} - - component: {fileID: 22291348} - - component: {fileID: 11499450} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22437868 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182778} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22457066} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22291348 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182778} - m_CullTransparentMesh: 0 ---- !u!114 &11499450 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 182778} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &183752 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22422222} - - component: {fileID: 22226614} - - component: {fileID: 11439880} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22422222 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 183752} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22428854} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22226614 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 183752} - m_CullTransparentMesh: 0 ---- !u!114 &11439880 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 183752} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &184030 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22409068} - - component: {fileID: 22232062} - - component: {fileID: 1341642601512005754} - m_Layer: 0 - m_Name: keyboard_UpSpace - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22409068 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184030} - 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_Children: [] - m_Father: {fileID: 22432408} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.002319336, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22232062 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184030} - m_CullTransparentMesh: 0 ---- !u!114 &1341642601512005754 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184030} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Space - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 1341642601512005754} - characterCount: 5 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &184454 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22426486} - - component: {fileID: 22297130} - - component: {fileID: 4207663896258510319} - m_Layer: 0 - m_Name: keyboard_p - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22426486 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184454} - 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_Children: [] - m_Father: {fileID: 22485892} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0029907227, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22297130 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184454} - m_CullTransparentMesh: 0 ---- !u!114 &4207663896258510319 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184454} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: P - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4207663896258510319} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &184626 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22482286} - - component: {fileID: 22297144} - - component: {fileID: 11489926} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22482286 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184626} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22413622} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22297144 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184626} - m_CullTransparentMesh: 0 ---- !u!114 &11489926 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184626} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &184778 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22473450} - - component: {fileID: 22224808} - - component: {fileID: 11472202} - - component: {fileID: 11427040} - - component: {fileID: 11490426} - m_Layer: 0 - m_Name: at_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22473450 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184778} - 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_Children: - - {fileID: 22465312} - - {fileID: 22477418} - m_Father: {fileID: 22464878} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22224808 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184778} - m_CullTransparentMesh: 0 ---- !u!114 &11472202 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184778} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11427040 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184778} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11447882} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11490426 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184778} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '@' - ShiftValue: "\xA9" ---- !u!1 &184788 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22413324} - - component: {fileID: 22285628} - - component: {fileID: 11485356} - - component: {fileID: 11415240} - m_Layer: 0 - m_Name: CapsLockOn - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22413324 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184788} - 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_Children: [] - m_Father: {fileID: 22458212} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22285628 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184788} - m_CullTransparentMesh: 0 ---- !u!114 &11485356 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184788} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.034482475, g: 0, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11415240 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184788} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a8ed810402899bf49be42934d6a6fcb6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Highlight: {fileID: 11485356} ---- !u!1 &184808 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22439758} - - component: {fileID: 22297646} - - component: {fileID: 11436888} - - component: {fileID: 11418474} - - component: {fileID: 11483486} - m_Layer: 0 - m_Name: at_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22439758 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184808} - 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_Children: - - {fileID: 22430760} - - {fileID: 22451410} - m_Father: {fileID: 22425748} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22297646 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184808} - m_CullTransparentMesh: 0 ---- !u!114 &11436888 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184808} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11418474 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184808} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11454324} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11483486 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184808} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '@' - ShiftValue: ---- !u!1 &185646 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22413816} - - component: {fileID: 22248176} - - component: {fileID: 4564244099913205390} - m_Layer: 0 - m_Name: keyboard_com - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22413816 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185646} - 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_Children: [] - m_Father: {fileID: 22442914} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0029907227, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22248176 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185646} - m_CullTransparentMesh: 0 ---- !u!114 &4564244099913205390 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185646} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: .com - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4564244099913205390} - characterCount: 4 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &185804 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411772} - - component: {fileID: 22220914} - - component: {fileID: 11439514} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411772 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185804} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22477742} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22220914 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185804} - m_CullTransparentMesh: 0 ---- !u!114 &11439514 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 185804} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &187612 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22473732} - - component: {fileID: 22205940} - - component: {fileID: 5114868028181667581} - m_Layer: 0 - m_Name: keyboard_k - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22473732 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 187612} - 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_Children: [] - m_Father: {fileID: 22488768} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0038909912, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22205940 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 187612} - m_CullTransparentMesh: 0 ---- !u!114 &5114868028181667581 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 187612} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: K - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5114868028181667581} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &188148 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22465028} - - component: {fileID: 22223560} - - component: {fileID: 6626297671168331649} - m_Layer: 0 - m_Name: keyboard_Period - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22465028 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188148} - 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_Children: [] - m_Father: {fileID: 22401596} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0029907227, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22223560 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188148} - m_CullTransparentMesh: 0 ---- !u!114 &6626297671168331649 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188148} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: . - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6626297671168331649} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &188444 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22442172} - - component: {fileID: 22266698} - - component: {fileID: 663594528805409630} - m_Layer: 0 - m_Name: keyboard_h - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22442172 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188444} - 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_Children: [] - m_Father: {fileID: 22492868} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.004776001, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22266698 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188444} - m_CullTransparentMesh: 0 ---- !u!114 &663594528805409630 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188444} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: H - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 663594528805409630} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &188604 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22460070} - - component: {fileID: 22211364} - - component: {fileID: 6879218284607861142} - m_Layer: 0 - m_Name: keyboard_RightParenthesis - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22460070 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188604} - 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_Children: [] - m_Father: {fileID: 22461886} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0060424805, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22211364 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188604} - m_CullTransparentMesh: 0 ---- !u!114 &6879218284607861142 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188604} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: ) - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6879218284607861142} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &188812 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411626} - - component: {fileID: 22233764} - - component: {fileID: 11406610} - - component: {fileID: 11487364} - - component: {fileID: 11498850} - m_Layer: 0 - m_Name: W_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411626 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188812} - 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_Children: - - {fileID: 22425852} - - {fileID: 22404324} - m_Father: {fileID: 22479812} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22233764 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188812} - m_CullTransparentMesh: 0 ---- !u!114 &11406610 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188812} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11487364 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188812} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11439478} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11498850 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 188812} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: w - ShiftValue: W ---- !u!1 &190422 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22418770} - - component: {fileID: 22288490} - - component: {fileID: 11478446} - - component: {fileID: 11490130} - - component: {fileID: 11410984} - m_Layer: 0 - m_Name: Space_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22418770 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190422} - 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_Children: - - {fileID: 22424590} - - {fileID: 22469802} - m_Father: {fileID: 22425748} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -0} - m_SizeDelta: {x: 610, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22288490 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190422} - m_CullTransparentMesh: 0 ---- !u!114 &11478446 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11490130 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11499290} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11410984 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 10 ---- !u!1 &190436 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22467450} - - component: {fileID: 22254816} - - component: {fileID: 11430296} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22467450 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190436} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22499340} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22254816 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190436} - m_CullTransparentMesh: 0 ---- !u!114 &11430296 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190436} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &190488 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22454856} - - component: {fileID: 22215104} - - component: {fileID: 11473598} - - component: {fileID: 11419376} - - component: {fileID: 11406850} - m_Layer: 0 - m_Name: DollarSign_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22454856 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190488} - 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_Children: - - {fileID: 22400958} - - {fileID: 22481370} - m_Father: {fileID: 22464878} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22215104 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190488} - m_CullTransparentMesh: 0 ---- !u!114 &11473598 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190488} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11419376 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190488} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11453780} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11406850 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190488} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: $ - ShiftValue: "\xA3" ---- !u!1 &190904 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22492986} - - component: {fileID: 22235252} - - component: {fileID: 11495782} - - component: {fileID: 11484980} - - component: {fileID: 11421648} - m_Layer: 0 - m_Name: Y_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22492986 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190904} - 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_Children: - - {fileID: 22483672} - - {fileID: 22472954} - m_Father: {fileID: 22479812} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22235252 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190904} - m_CullTransparentMesh: 0 ---- !u!114 &11495782 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11484980 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11498526} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11421648 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 190904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: y - ShiftValue: Y ---- !u!1 &191776 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22436294} - - component: {fileID: 22254146} - - component: {fileID: 5407441994798644740} - m_Layer: 0 - m_Name: keyboard_PlusSign - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22436294 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 191776} - 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_Children: [] - m_Father: {fileID: 22406000} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.00592041, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22254146 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 191776} - m_CullTransparentMesh: 0 ---- !u!114 &5407441994798644740 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 191776} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: + - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 5407441994798644740} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &192562 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22408352} - - component: {fileID: 22253306} - - component: {fileID: 11416116} - - component: {fileID: 11430198} - - component: {fileID: 11444654} - m_Layer: 0 - m_Name: ExclamationMark_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22408352 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 192562} - 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_Children: - - {fileID: 22427742} - - {fileID: 22488698} - m_Father: {fileID: 22464878} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22253306 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 192562} - m_CullTransparentMesh: 0 ---- !u!114 &11416116 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 192562} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11430198 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 192562} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11468888} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11444654 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 192562} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: '!' - ShiftValue: "\xB7" ---- !u!1 &193428 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22454786} - - component: {fileID: 22246790} - - component: {fileID: 11483210} - - component: {fileID: 11417868} - - component: {fileID: 11468148} - m_Layer: 0 - m_Name: n08_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22454786 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193428} - 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_Children: - - {fileID: 22425072} - - {fileID: 22401506} - m_Father: {fileID: 22441282} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22246790 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193428} - m_CullTransparentMesh: 0 ---- !u!114 &11483210 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193428} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11417868 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193428} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11469928} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11468148 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193428} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 8 - ShiftValue: ---- !u!1 &193476 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22425852} - - component: {fileID: 22228060} - - component: {fileID: 3962271160298097857} - m_Layer: 0 - m_Name: keyboard_w - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22425852 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193476} - 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_Children: [] - m_Father: {fileID: 22411626} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0065612793, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22228060 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193476} - m_CullTransparentMesh: 0 ---- !u!114 &3962271160298097857 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193476} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: W - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 3962271160298097857} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &193818 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22496376} - - component: {fileID: 22276380} - - component: {fileID: 11454660} - - component: {fileID: 11433018} - - component: {fileID: 11492706} - m_Layer: 0 - m_Name: N_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22496376 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193818} - 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_Children: - - {fileID: 22461686} - - {fileID: 22407376} - m_Father: {fileID: 22479812} - m_RootOrder: 29 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 612, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22276380 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193818} - m_CullTransparentMesh: 0 ---- !u!114 &11454660 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193818} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11433018 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193818} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11400096} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11492706 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193818} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: n - ShiftValue: N ---- !u!1 &193958 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22405132} - - component: {fileID: 22201818} - - component: {fileID: 11407848} - - component: {fileID: 11453000} - - component: {fileID: 11425894} - m_Layer: 0 - m_Name: n07_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22405132 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193958} - 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_Children: - - {fileID: 22466816} - - {fileID: 22490744} - m_Father: {fileID: 22441282} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -154} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22201818 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193958} - m_CullTransparentMesh: 0 ---- !u!114 &11407848 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11453000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11495480} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11425894 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: 7 - ShiftValue: ---- !u!1 &194344 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22495432} - - component: {fileID: 22207950} - - component: {fileID: 6027104106870234020} - m_Layer: 0 - m_Name: keyboard_t - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22495432 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194344} - 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_Children: [] - m_Father: {fileID: 22455304} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.005218506, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22207950 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194344} - m_CullTransparentMesh: 0 ---- !u!114 &6027104106870234020 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194344} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: T - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 6027104106870234020} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &194474 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22488698} - - component: {fileID: 22242876} - - component: {fileID: 11468888} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22488698 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194474} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22408352} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22242876 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194474} - m_CullTransparentMesh: 0 ---- !u!114 &11468888 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194474} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &194626 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22416294} - - component: {fileID: 22269058} - - component: {fileID: 11452304} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22416294 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194626} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22411316} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22269058 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194626} - m_CullTransparentMesh: 0 ---- !u!114 &11452304 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194626} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &194826 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22456742} - - component: {fileID: 22294792} - - component: {fileID: 697371200804563117} - m_Layer: 0 - m_Name: keyboard_Ampersand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22456742 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194826} - 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_Children: [] - m_Father: {fileID: 22491728} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.00592041, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22294792 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194826} - m_CullTransparentMesh: 0 ---- !u!114 &697371200804563117 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 194826} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '&' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 697371200804563117} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &195246 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22408688} - - component: {fileID: 22248928} - - component: {fileID: 11486192} - - component: {fileID: 114547353326955208} - m_Layer: 0 - m_Name: keyboard_p - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22408688 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195246} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} - m_Children: [] - m_Father: {fileID: 22499340} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22248928 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195246} - m_CullTransparentMesh: 0 ---- !u!114 &11486192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195246} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ac0bab4de91677f49914700249bbfd65, type: 3} - m_Name: - m_EditorClassIdentifier: - m_TextField: {fileID: 0} - m_ImageField: {fileID: 114547353326955208} - m_DisabledColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} ---- !u!114 &114547353326955208 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195246} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 1dde69ccd9583fa4f8dfab2b590119ee, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &195528 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22421948} - - component: {fileID: 22272550} - - component: {fileID: 11472712} - - component: {fileID: 11454938} - - component: {fileID: 11470582} - m_Layer: 0 - m_Name: LowLine_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22421948 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195528} - 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_Children: - - {fileID: 22461666} - - {fileID: 22456716} - m_Father: {fileID: 22464878} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 306, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22272550 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195528} - m_CullTransparentMesh: 0 ---- !u!114 &11472712 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195528} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11454938 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195528} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11420080} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11470582 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 195528} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: _ - ShiftValue: ']' ---- !u!1 &196296 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22461886} - - component: {fileID: 22242724} - - component: {fileID: 11496342} - - component: {fileID: 11466568} - - component: {fileID: 11438984} - m_Layer: 0 - m_Name: RightParenthesis_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22461886 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196296} - 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_Children: - - {fileID: 22460070} - - {fileID: 22494920} - m_Father: {fileID: 22464878} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 102, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22242724 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196296} - m_CullTransparentMesh: 0 ---- !u!114 &11496342 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196296} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11466568 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196296} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11452630} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11438984 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196296} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: ) - ShiftValue: '>' ---- !u!1 &196424 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22474762} - - component: {fileID: 22263748} - - component: {fileID: 11436076} - - component: {fileID: 11473630} - - component: {fileID: 11453480} - m_Layer: 0 - m_Name: Left_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22474762 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196424} - 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_Children: - - {fileID: 22418888} - - {fileID: 22433482} - m_Father: {fileID: 22405956} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22263748 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196424} - m_CullTransparentMesh: 0 ---- !u!114 &11436076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196424} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11473630 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196424} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11439402} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11453480 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 196424} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b48fdfeddeb58db43a7b165be1dedff0, type: 3} - m_Name: - m_EditorClassIdentifier: - buttonFunction: 4 ---- !u!1 &197312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22411502} - - component: {fileID: 22270490} - - component: {fileID: 11459702} - - component: {fileID: 11475276} - - component: {fileID: 11410780} - m_Layer: 0 - m_Name: D_Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22411502 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197312} - 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_Children: - - {fileID: 22480580} - - {fileID: 22457776} - m_Father: {fileID: 22479812} - m_RootOrder: 14 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 204, y: -77} - m_SizeDelta: {x: 100, y: 75} - m_Pivot: {x: 0, y: 1} ---- !u!222 &22270490 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197312} - m_CullTransparentMesh: 0 ---- !u!114 &11459702 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.15294118, g: 0.15686275, b: 0.17254902, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &11475276 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 0} - m_HighlightedColor: {r: 0.9443205, g: 0.9338235, b: 1, a: 0.703} - m_PressedColor: {r: 0.4852941, g: 0.4852941, b: 0.4852941, a: 0.866} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 11435390} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &11410780 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f0beb5d32f071ec44ba87e09adb8920c, type: 3} - m_Name: - m_EditorClassIdentifier: - Value: d - ShiftValue: D ---- !u!1 &197340 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22406246} - - component: {fileID: 22289738} - - component: {fileID: 4033815627304831634} - m_Layer: 0 - m_Name: keyboard_l - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22406246 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197340} - 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_Children: [] - m_Father: {fileID: 22484368} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -0.0034332275, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22289738 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197340} - m_CullTransparentMesh: 0 ---- !u!114 &4033815627304831634 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197340} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: L - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: afc8299d5d5bbd440a0616c8ecbc7217, type: 2} - m_sharedMaterial: {fileID: 21340371490990018, guid: afc8299d5d5bbd440a0616c8ecbc7217, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 514 - 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_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 4033815627304831634} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &197612 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22456290} - - component: {fileID: 22216048} - - component: {fileID: 11405490} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22456290 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197612} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22413830} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22216048 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197612} - m_CullTransparentMesh: 0 ---- !u!114 &11405490 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 197612} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &199940 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 22417676} - - component: {fileID: 22263316} - - component: {fileID: 11419720} - m_Layer: 0 - m_Name: Highlight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &22417676 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 199940} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.01} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 22448102} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &22263316 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 199940} - m_CullTransparentMesh: 0 ---- !u!114 &11419720 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 199940} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 2775a1cee10328748889e019ab01d248, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!1 &275186248912405585 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9046091200945972342} - - component: {fileID: 5816325304576603847} - - component: {fileID: 8187996451069544821} - - component: {fileID: 2097082730694957451} - m_Layer: 0 - m_Name: InputField (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &9046091200945972342 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 275186248912405585} - 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_Children: - - {fileID: 9189525963328925398} - m_Father: {fileID: 22410434} - m_RootOrder: 3 - 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.1999512, y: -2.6} - m_SizeDelta: {x: 389.1, y: 44.9} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5816325304576603847 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 275186248912405585} - m_CullTransparentMesh: 0 ---- !u!114 &8187996451069544821 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 275186248912405585} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!114 &2097082730694957451 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 275186248912405585} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 8187996451069544821} - m_TextViewport: {fileID: 9189525963328925398} - m_TextComponent: {fileID: 8696474692589808570} - m_Placeholder: {fileID: 2148444753226197421} - m_VerticalScrollbar: {fileID: 0} - m_VerticalScrollbarEventHandler: {fileID: 0} - m_ScrollSensitivity: 1 - m_ContentType: 0 - m_InputType: 0 - m_AsteriskChar: 42 - m_KeyboardType: 0 - m_LineType: 0 - m_HideMobileInput: 0 - m_HideSoftKeyboard: 0 - m_CharacterValidation: 0 - m_RegexValue: - m_GlobalPointSize: 14 - m_CharacterLimit: 0 - m_OnEndEdit: - m_PersistentCalls: - m_Calls: [] - m_OnSubmit: - m_PersistentCalls: - m_Calls: [] - m_OnSelect: - m_PersistentCalls: - m_Calls: [] - m_OnDeselect: - m_PersistentCalls: - m_Calls: [] - m_OnTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnEndTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_OnTouchScreenKeyboardStatusChanged: - m_PersistentCalls: - m_Calls: [] - m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_CustomCaretColor: 0 - m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: - m_CaretBlinkRate: 0.85 - m_CaretWidth: 1 - m_ReadOnly: 0 - m_RichText: 1 - m_GlobalFontAsset: {fileID: 0} - m_OnFocusSelectAll: 1 - m_ResetOnDeActivation: 1 - m_RestoreOriginalTextOnEscape: 1 - m_isRichTextEditingAllowed: 0 - m_LineLimit: 0 - m_InputValidator: {fileID: 0} ---- !u!1 &480265709163589087 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9189525963328925398} - - component: {fileID: 4464947713236954621} - m_Layer: 0 - m_Name: Text Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &9189525963328925398 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 480265709163589087} - 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_Children: - - {fileID: 5664309508791166679} - - {fileID: 7082794441100750305} - m_Father: {fileID: 9046091200945972342} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.5} - m_SizeDelta: {x: -20, y: -13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &4464947713236954621 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 480265709163589087} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -146154839, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &3882486564438659329 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5664309508791166679} - - component: {fileID: 8567128509175252473} - - component: {fileID: 2148444753226197421} - m_Layer: 0 - m_Name: Placeholder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5664309508791166679 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3882486564438659329} - 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_Children: [] - m_Father: {fileID: 9189525963328925398} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.001373291, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8567128509175252473 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3882486564438659329} - m_CullTransparentMesh: 0 ---- !u!114 &2148444753226197421 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3882486564438659329} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Enter text... - 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: 2133996082 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} - 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 2 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 1 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 2148444753226197421} - characterCount: 13 - spriteCount: 0 - spaceCount: 1 - wordCount: 2 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &7872451332915375130 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7082794441100750305} - - component: {fileID: 9206652151208637124} - - component: {fileID: 8696474692589808570} - m_Layer: 0 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7082794441100750305 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7872451332915375130} - 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_Children: [] - m_Father: {fileID: 9189525963328925398} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.001373291, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &9206652151208637124 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7872451332915375130} - m_CullTransparentMesh: 0 ---- !u!114 &8696474692589808570 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7872451332915375130} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: "\u200B" - 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: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_outlineColor: - serializedVersion: 2 - rgba: 4278190080 - m_fontSize: 25 - m_fontSizeBase: 25 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 1 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_firstOverflowCharacterIndex: -1 - m_linkedTextComponent: {fileID: 0} - m_isLinkedTextComponent: 0 - m_isTextTruncated: 0 - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_ignoreRectMaskCulling: 0 - m_ignoreCulling: 1 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_VertexBufferAutoSizeReduction: 1 - m_firstVisibleCharacter: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_textInfo: - textComponent: {fileID: 8696474692589808570} - characterCount: 1 - spriteCount: 0 - spaceCount: 0 - wordCount: 1 - linkCount: 0 - lineCount: 1 - pageCount: 1 - materialCount: 1 - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_spriteAnimator: {fileID: 0} - m_hasFontAssetChanged: 0 - m_subTextObjects: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab.meta deleted file mode 100644 index 45b9b0f2f..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Prefabs/NonNativeKeyboard.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c4e389e44d96da64ea974ab237ce1a9a -timeCreated: 1490298227 -licenseType: Pro -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts.meta deleted file mode 100644 index 5d7b1d6a7..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f3186477830971448b4358424d104352 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs deleted file mode 100644 index 1a1597e94..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - ///

- /// Axis slider is a script to lock a bar across a specific axis. - /// - public class AxisSlider : MonoBehaviour - { - - public enum EAxis - { - X, - Y, - Z - } - - [Experimental] - public EAxis Axis = EAxis.X; - - private float currentPos; - private float slideVel; - - public float slideAccel = 5.25f; - public float slideFriction = 6f; - public float deadZone = 0.55f; - public float clampDistance = 300.0f; - public float bounce = 0.5f; - - [HideInInspector] - public Vector3 TargetPoint; - - private float GetAxis(Vector3 v) - { - switch (Axis) - { - case EAxis.X: return v.x; - case EAxis.Y: return v.y; - case EAxis.Z: return v.z; - } - return 0; - } - - private Vector3 SetAxis(Vector3 v, float f) - { - switch (Axis) - { - case EAxis.X: v.x = f; break; - case EAxis.Y: v.y = f; break; - case EAxis.Z: v.z = f; break; - } - return v; - } - - /// - /// Use late update to track the input slider - /// - private void LateUpdate() - { - float targetP = GetAxis(TargetPoint); - - float dt = Time.deltaTime; - float delta = targetP - currentPos; - - // Accelerate left or right if outside of deadzone - if (Mathf.Abs(delta) > deadZone * deadZone) - { - slideVel += slideAccel * Mathf.Sign(delta) * dt; - } - - // Apply friction - slideVel -= slideVel * slideFriction * dt; - - // Apply velocity to position - currentPos += slideVel * dt; - - // Clamp to sides (bounce) - if (Mathf.Abs(currentPos) >= clampDistance) - { - slideVel *= -bounce; - currentPos = clampDistance * Mathf.Sign(currentPos); - } - - // Set position - transform.localPosition = SetAxis(transform.localPosition, currentPos); - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs.meta deleted file mode 100644 index 85298c3d0..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/AxisSlider.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: c191a902c67de0b43a7a96fa8f0c533c -timeCreated: 1445388867 -licenseType: Pro -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs deleted file mode 100644 index b46eb59f4..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.UI; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// This class toggles the Caps Lock image based on the NonNativeKeyboard's IsCapsLocked state - /// - public class CapsLockHighlight : MonoBehaviour - { - /// - /// The highlight image to turn on and off. - /// - [Experimental] - [SerializeField] - private Image m_Highlight = null; - - /// - /// The keyboard to check for caps locks - /// - private NonNativeKeyboard m_Keyboard; - - /// - /// Unity Start method. - /// - private void Start() - { - m_Keyboard = GetComponentInParent(); - UpdateState(); - } - - /// - /// Unity update method. - /// - private void Update() - { - UpdateState(); - } - - /// - /// Updates the visual state of the shift highlight. - /// - private void UpdateState() - { - bool isCapsLock = false; - if (m_Keyboard != null) - { - isCapsLock = m_Keyboard.IsCapsLocked; - } - - if (m_Highlight != null) - { - m_Highlight.enabled = isCapsLock; - } - } - } -} diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs.meta b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs.meta deleted file mode 100644 index 4e7dcb908..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/CapsLockHighlight.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: a8ed810402899bf49be42934d6a6fcb6 -timeCreated: 1452879656 -licenseType: Pro -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/KeyboardKeyFunc.cs b/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/KeyboardKeyFunc.cs deleted file mode 100644 index c8593fd15..000000000 --- a/AR-ROS/Assets/MRTK/SDK/Experimental/NonNativeKeyboard/Scripts/KeyboardKeyFunc.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using UnityEngine; -using UnityEngine.Serialization; -using UnityEngine.UI; - -namespace Microsoft.MixedReality.Toolkit.Experimental.UI -{ - /// - /// Represents a key on the keyboard that has a function. - /// - [RequireComponent(typeof(Button))] - public class KeyboardKeyFunc : MonoBehaviour - { - /// - /// Possible functionality for a button. - /// - public enum Function - { - // Commands - Enter, - Tab, - ABC, - Symbol, - Previous, - Next, - Close, - Dictate, - - // Editing - Shift, - CapsLock, - Space, - Backspace, - - UNDEFINED, - } - - /// - /// Designer specified functionality of a keyboard button. - /// - [Experimental] - [SerializeField, FormerlySerializedAs("m_ButtonFunction")] private Function buttonFunction = Function.UNDEFINED; - - public Function ButtonFunction => buttonFunction; - - /// - /// Subscribe to the onClick event. - /// - private void Start() - { - Button m_Button = GetComponent