internal void Setup(Transform transform, ILookAtEyeDirectionProvider eyeDirectionProvider, ILookAtEyeDirectionApplicable eyeDirectionApplicable)
        {
            if (ExpressionAvatar == null)
            {
#if VRM_DEVELOP
                if (m_debugCount++ == 0)
                {
                    Debug.LogWarning($"{nameof(VRM10ControllerExpression)}.{nameof(ExpressionAvatar)} is null.");
                }
#endif
                return;
            }

            Restore();

            _merger = new ExpressionMerger(ExpressionAvatar.Clips, transform);
            _keys   = ExpressionAvatar.Clips.Select(ExpressionKey.CreateFromClip).ToList();
            var oldInputWeights = _inputWeights;
            _inputWeights = _keys.ToDictionary(x => x, x => 0f);
            foreach (var key in _keys)
            {
                // remain user input weights.
                if (oldInputWeights.ContainsKey(key))
                {
                    _inputWeights[key] = oldInputWeights[key];
                }
            }
            _actualWeights          = _keys.ToDictionary(x => x, x => 0f);
            _validator              = ExpressionValidatorFactory.Create(ExpressionAvatar);
            _eyeDirectionProvider   = eyeDirectionProvider;
            _eyeDirectionApplicable = eyeDirectionApplicable;
        }
Exemplo n.º 2
0
 public Application(IFileValidator fileValidator, IExpressionValidator expressionValidator,
                    IConsoleMessenger consoleMessenger, IInputCatcher userInputCatcher,
                    IUnitOfWork unitOfWork)
 {
     _fileValidator       = fileValidator;
     _expressionValidator = expressionValidator;
     _consoleMessenger    = consoleMessenger;
     _userInputCatcher    = userInputCatcher;
     _unitOfWork          = unitOfWork;
 }
Exemplo n.º 3
0
        public string Calculate()
        {
            IExpressionValidator expressionValidator = Factory.CreateExpressionValidator();

            expressionValidator.Expression = string.Join("", InfixNotationValue);

            if (expressionValidator.Validate())
            {
                PostfixNotationValue = NotationConverter.ConvertToPostfix(string.Join("", InfixNotationValue), _operators);

                foreach (var item in PostfixNotationValue)
                {
                    if (_operators.Contains(item))
                    {
                        B = double.Parse(Stack.Pop());
                        A = double.Parse(Stack.Pop());

                        if (item == "/")
                        {
                            State = ExpressionSubjectState.Division;
                            this.Notify();
                        }
                        else if (item == "*")
                        {
                            State = ExpressionSubjectState.Multiplication;
                            this.Notify();
                        }
                        else if (item == "+")
                        {
                            State = ExpressionSubjectState.Addition;
                            this.Notify();
                        }
                        else if (item == "-")
                        {
                            State = ExpressionSubjectState.Subtraction;
                            this.Notify();
                        }
                    }
                    else
                    {
                        Stack.Push(item);
                    }
                }

                return(Result = Stack.Pop());
            }
            else
            {
                return(Result);
            }
        }
Exemplo n.º 4
0
        internal Vrm10RuntimeExpression(Vrm10Instance target, ILookAtEyeDirectionProvider eyeDirectionProvider, ILookAtEyeDirectionApplicable eyeDirectionApplicable)
        {
            Restore();

            _merger = new ExpressionMerger(target.Vrm.Expression, target.transform);
            _keys   = target.Vrm.Expression.Clips.Select(x => target.Vrm.Expression.CreateKey(x.Clip)).ToList();
            var oldInputWeights = _inputWeights;

            _inputWeights = _keys.ToDictionary(x => x, x => 0f);
            foreach (var key in _keys)
            {
                // remain user input weights.
                if (oldInputWeights.ContainsKey(key))
                {
                    _inputWeights[key] = oldInputWeights[key];
                }
            }
            _actualWeights          = _keys.ToDictionary(x => x, x => 0f);
            _validator              = ExpressionValidatorFactory.Create(target.Vrm.Expression);
            _eyeDirectionProvider   = eyeDirectionProvider;
            _eyeDirectionApplicable = eyeDirectionApplicable;
        }
Exemplo n.º 5
0
        internal void Setup(VRM10Controller target, ILookAtEyeDirectionProvider eyeDirectionProvider, ILookAtEyeDirectionApplicable eyeDirectionApplicable)
        {
            Restore();

            _merger = new ExpressionMerger(Clips, target.transform);
            _keys   = Clips.Select(ExpressionKey.CreateFromClip).ToList();
            var oldInputWeights = _inputWeights;

            _inputWeights = _keys.ToDictionary(x => x, x => 0f);
            foreach (var key in _keys)
            {
                // remain user input weights.
                if (oldInputWeights.ContainsKey(key))
                {
                    _inputWeights[key] = oldInputWeights[key];
                }
            }
            _actualWeights          = _keys.ToDictionary(x => x, x => 0f);
            _validator              = ExpressionValidatorFactory.Create(this);
            _eyeDirectionProvider   = eyeDirectionProvider;
            _eyeDirectionApplicable = eyeDirectionApplicable;
        }
 public CalculatorService(IExpressionValidator validator,
                          IExpressionCalculator calculator)
 {
     _validator  = validator;
     _calculator = calculator;
 }
Exemplo n.º 7
0
 public ExpressionFileReader(IExpressionValidator expressionValidator)
 {
     _expressionValidator = expressionValidator;
 }
Exemplo n.º 8
0
 public ExpressionFileReader()
 {
     _expressionValidator = new ExpressionValidator();
 }
Exemplo n.º 9
0
 public RegularExpressionRecognizer(IExpressionValidator expressionValidator)
 {
     _expressionValidator = expressionValidator;
 }
 public ExpressionProcessor(IExpressionConfig expressionConfig)
 {
     _expressionConfig = expressionConfig;
     _expressionValidator = new ExpressionValidator(expressionConfig);
 }
Exemplo n.º 11
0
 public virtual void SetupStringCalculator(IExpressionCleaner cleaner, IExpressionValidator validator)
 {
     Cleaner = cleaner;
     Validator = validator;
 }
Exemplo n.º 12
0
        private readonly Stack <char> _stack       = new Stack <char>();  // Стэк для ОПЗ

        public SimpleCalculationEngine(IExpressionValidator expressionValidator)
        {
            _expressionValidator = expressionValidator;
        }