示例#1
0
        public static IStateValue <Vector2> ConvertFromEyeXSize2(IStateValue <Size2> state)
        {
            if (!state.IsValid)
            {
                return(StateValue <Vector2> .Invalid);
            }

            return(new StateValue <Vector2>(new Vector2((float)state.Value.Width, (float)state.Value.Height)));
        }
示例#2
0
 private void SetFieldValue(object existing, FieldInfo fieldInfo, IHttpSessionState sessionState)
 {
     if (IsStateField(fieldInfo))
     {
         IStateValue value = (IStateValue)Activator.CreateInstance(fieldInfo.FieldType);
         value.KeyName      = GetKeyName(fieldInfo);
         value.SessionState = sessionState;
         fieldInfo.SetValue(existing, value);
     }
 }
示例#3
0
        /// <summary>
        /// Gets the current value of the engine state.
        /// </summary>
        /// <param name="context">The interaction context.</param>
        /// <returns>The state value.</returns>
        public IStateValue <T> GetCurrentValue(Context context)
        {
            if (_currentValue == null)
            {
                // This is the first time someone asks for the current value.
                // We don't have a value yet, but we'll make sure we get one.
                _currentValue = StateValue <T> .Invalid;

                // Register the state changed handler.
                RegisterStateChangedHandler(context);
            }

            return(_currentValue);
        }
示例#4
0
        public static IStateValue <UnityEngine.Rect> ConvertFromEyeXRect(IStateValue <Tobii.EyeX.Client.Rect> state)
        {
            if (!state.IsValid)
            {
                return(StateValue <UnityEngine.Rect> .Invalid);
            }

            return(new StateValue <UnityEngine.Rect>(new UnityEngine.Rect()
            {
                x = (float)state.Value.X,
                y = (float)state.Value.Y,
                width = (float)state.Value.Width,
                height = (float)state.Value.Height
            }));
        }
示例#5
0
            public object GetValue(IBuilderContext context)
            {
                ISessionStateLocatorService sessionLocator =
                    context.Locator.Get <ISessionStateLocatorService>(
                        new DependencyResolutionLocatorKey(typeof(ISessionStateLocatorService), null));

                if (sessionLocator != null)
                {
                    IStateValue value = (IStateValue)Activator.CreateInstance(_memberType);
                    value.SessionState = sessionLocator.GetSessionState();
                    value.KeyName      = _keyName;
                    return(value);
                }
                return(null);
            }
示例#6
0
        public static GazeTrackingStatus ConvertFromEyeXGazeTracking(IEyeTrackingHost host, IStateValue <Tobii.EyeX.Framework.GazeTracking> state)
        {
            if (host.EngineVersion == null || (host.EngineVersion != null && host.EngineVersion.Major >= 1 && host.EngineVersion.Minor >= 4))
            {
                if (state == null || !state.IsValid || state.Value == 0)
                {
                    return(GazeTrackingStatus.Unknown);
                }

                switch (state.Value)
                {
                // Gaze tracked?
                case Tobii.EyeX.Framework.GazeTracking.GazeTracked:
                    return(GazeTrackingStatus.GazeTracked);

                // Gaze not tracked?
                case Tobii.EyeX.Framework.GazeTracking.GazeNotTracked:
                    return(GazeTrackingStatus.GazeNotTracked);

                default:
                    throw new InvalidOperationException("Unknown gaze tracking value.");
                }
            }
            return(GazeTrackingStatus.NotSupported);
        }