public static FluentValue Not(FluentValue a)
        {
            if (a == FluentValue.True)
            {
                return(FluentValue.False);
            }

            return(a == FluentValue.False ? FluentValue.True : a);
        }
Beispiel #2
0
        public static List <FluentValue[]> GetAllFluentEvaluationsSatisfyingExpression(Expression <int> expression)
        {
            var fluentsInExpression = new List <int>();

            FindAllFluentsInExpression(expression, fluentsInExpression);
            FluentValue[] fluents       = new FluentValue[ModelsBuilder.FluentsCount];
            var           fluentNumber  = 0;
            var           correctValues = new List <FluentValue[]>();

            FindEvaluations(expression, fluentsInExpression, fluents, fluentNumber, correctValues);

            return(correctValues);
        }
        public static FluentValue Or(FluentValue a, FluentValue b)
        {
            if (a == FluentValue.True || b == FluentValue.True)
            {
                return(FluentValue.True);
            }

            if (a == FluentValue.False && b == FluentValue.False)
            {
                return(FluentValue.False);
            }

            if (a == FluentValue.UnderOcclusion || b == FluentValue.UnderOcclusion)
            {
                return(FluentValue.UnderOcclusion);
            }

            return(FluentValue.Unknown);
        }