/// <summary>
        /// Performs initialization tasks for the spatial awareness system.
        /// </summary>
        private void InitializeInternal()
        {
            MixedRealitySpatialAwarenessSystemProfile profile = ConfigurationProfile as MixedRealitySpatialAwarenessSystemProfile;

            if (profile != null && GetDataProviders <IMixedRealitySpatialAwarenessObserver>().Count == 0)
            {
                // Register the spatial observers.
                for (int i = 0; i < profile.ObserverConfigurations.Length; i++)
                {
                    MixedRealitySpatialObserverConfiguration configuration = profile.ObserverConfigurations[i];
                    object[] args = { this, configuration.ComponentName, configuration.Priority, configuration.ObserverProfile };

                    RegisterDataProvider <IMixedRealitySpatialAwarenessObserver>(
                        configuration.ComponentType.Type,
                        configuration.RuntimePlatform,
                        args);
                }
            }
        }
        /// <inheritdoc/>
        public override void Enable()
        {
            MixedRealitySpatialAwarenessSystemProfile profile = ConfigurationProfile as MixedRealitySpatialAwarenessSystemProfile;

            if ((GetDataProviders <IMixedRealitySpatialAwarenessObserver>().Count == 0) && (profile != null))
            {
                // Register the spatial observers.
                for (int i = 0; i < profile.ObserverConfigurations.Length; i++)
                {
                    MixedRealitySpatialObserverConfiguration configuration = profile.ObserverConfigurations[i];
                    object[] args = { Registrar, this, configuration.ComponentName, configuration.Priority, configuration.ObserverProfile };

                    RegisterDataProvider <IMixedRealitySpatialAwarenessObserver>(
                        configuration.ComponentType.Type,
                        configuration.RuntimePlatform,
                        args);
                }
            }

            // Ensure data providers are enabled (performed by the base class)
            base.Enable();
        }
示例#3
0
        /// <inheritdoc/>
        public override void Enable()
        {
            base.Enable();

            MixedRealitySpatialAwarenessSystemProfile profile = ConfigurationProfile as MixedRealitySpatialAwarenessSystemProfile;

            if ((observers.Count == 0) && (profile != null))
            {
                // Register the spatial observers.
                for (int i = 0; i < profile.ObserverConfigurations.Length; i++)
                {
                    MixedRealitySpatialObserverConfiguration configuration = profile.ObserverConfigurations[i];
                    object[] args = { Registrar, this, configuration.ComponentName, configuration.Priority, configuration.ObserverProfile };

                    if (Registrar.RegisterDataProvider <IMixedRealitySpatialAwarenessObserver>(
                            configuration.ComponentType.Type,
                            configuration.RuntimePlatform,
                            args))
                    {
                        observers.Add(Registrar.GetDataProvider <IMixedRealitySpatialAwarenessObserver>(configuration.ComponentName));
                    }
                }
            }
        }