示例#1
0
        public override void RetrieveRenderKnowledge()
        {
            if (_query.CachedEntities.Count == 0)
            {
                return;
            }
            var lst = new ObservableCollection <IKnowledge>();

            foreach (var cacheObj in _query.CachedEntities)
            {
                var cacheShapeSymbol = cacheObj as ShapeSymbol;
                var cacheGoal        = cacheObj as EqGoal;
                var cacheEq          = cacheObj as Equation;
                if (cacheShapeSymbol != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheShapeSymbol);
                    var agShape = new AGShapeExpr(expr, cacheShapeSymbol);
                    lst.Add(agShape);
                }
                else if (cacheGoal != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheGoal);
                    var agGoal = new AGPropertyExpr(expr, cacheGoal);
                    lst.Add(agGoal);
                }
                else if (cacheEq != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheEq);
                    var agEq = new AGEquationExpr(expr, cacheEq);
                    lst.Add(agEq);
                }
            }
            RenderKnowledge = lst;
        }
示例#2
0
        public override void RetrieveRenderKnowledge()
        {
            var symbols = _shapeSymbol.RetrieveConcreteShapes();
            var shapes  = new ObservableCollection <IKnowledge>();

            RenderKnowledge = null;
            if (symbols != null)
            {
                var shapeSymbol = symbols as ShapeSymbol;
                var ssLst       = symbols as IEnumerable <ShapeSymbol>;

                if (shapeSymbol != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(shapeSymbol);
                    var agShape = new AGShapeExpr(expr, shapeSymbol);
                    shapes.Add(agShape);
                }

                if (ssLst != null)
                {
                    foreach (ShapeSymbol ss in ssLst.ToList())
                    {
                        var expr   = ExprG.Generate(ss);
                        var agExpr = new AGShapeExpr(expr, ss);
                        shapes.Add(agExpr);
                    }
                }
                RenderKnowledge = shapes;
                RenderKnowledge.CollectionChanged += RenderKnowledge_CollectionChanged;
            }
        }
示例#3
0
        public void Test1()
        {
            //x=
            //x+1=
            const string txt1 = "x=";

            starPadSDK.MathExpr.Expr expr = Text.Convert(txt1);

            object obj;
            bool   result = expr.IsQuery(out obj);

            Assert.True(result);
            var query = obj as Query;

            Assert.NotNull(query);
            Assert.True(query.Constraint1.ToString().Equals("x"));

            const string txt2 = "x+1=";

            expr   = Text.Convert(txt2);
            result = expr.IsQuery(out obj);
            Assert.True(result);

            var variable = new Var('x');
            var term     = new Term(Expression.Add, new List <object>()
            {
                variable, 1
            });

            query = obj as Query;
            Assert.NotNull(query);
            Assert.True(query.Constraint1.Equals(term));
        }
示例#4
0
        public override void RetrieveRenderKnowledge()
        {
            if (_equation == null)
            {
                return;
            }
            if (_equation.CachedEntities.Count == 0)
            {
                return;
            }
            var lst = new ObservableCollection <IKnowledge>();

            foreach (var cacheObj in _equation.CachedEntities)
            {
                var cacheShapeSymbol = cacheObj as ShapeSymbol;
                var cacheGoal        = cacheObj as EqGoal;
                var cacheEq          = cacheObj as Equation;
                if (cacheShapeSymbol != null)
                {
                    throw new Exception("TODO");

                    /*                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheShapeSymbol);
                     *                  var agShape = new AGShapeExpr(expr, cacheShapeSymbol);
                     *                  lst.Add(agShape);*/
                }
                else if (cacheGoal != null)
                {
                    throw new Exception("TODO");

                    /*                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheGoal);
                     *                  var agGoal = new AGPropertyExpr(expr, cacheGoal);
                     *                  lst.Add(agGoal);*/
                }
                else if (cacheEq != null)
                {
                    starPadSDK.MathExpr.Expr expr = ExprG.Generate(cacheEq);
                    var agEq = new AGEquationExpr(expr, cacheEq);
                    lst.Add(agEq);
                }
                else
                {
                    var boolValue = cacheObj as bool?;
                    if (boolValue != null)
                    {
                        starPadSDK.MathExpr.Expr expr = ExprG.Generate(boolValue);
                        var agEq = new IKnowledge(expr);
                        lst.Add(agEq);
                    }
                }
            }
            RenderKnowledge = lst;
        }
示例#5
0
 public AGShapeExpr(starPadSDK.MathExpr.Expr expr, ShapeSymbol ss)
     : base(expr)
 {
     _shapeSymbol = ss;
 }
示例#6
0
 public AGPropertyExpr(starPadSDK.MathExpr.Expr expr, EqGoal goal)
     : base(expr)
 {
     _goal = goal;
 }
示例#7
0
        }                                                          // outer and inner loop scaffolding

        public IKnowledge(starPadSDK.MathExpr.Expr exp)
        {
            _inputExpr = exp;
        }
示例#8
0
 public AGEquationExpr(starPadSDK.MathExpr.Expr expr, Equation eq)
     : base(expr)
 {
     _equation = eq;
 }
示例#9
0
 protected AGEquationExpr(starPadSDK.MathExpr.Expr expr)
     : base(expr)
 {
 }
示例#10
0
 public AGQueryExpr(starPadSDK.MathExpr.Expr expr, Query queryTag)
     : base(expr)
 {
     QueryTag = queryTag;
 }
示例#11
0
 public IKnowledge(starPadSDK.MathExpr.Expr exp)
 {
     _inputExpr = exp;
 }