public static IKnowledge Generate(object obj) { var shape = obj as ShapeSymbol; var goal = obj as EqGoal; var equation = obj as Equation; if (shape != null) { return(new AGShapeExpr(ExprG.Generate(shape), shape)); } if (goal != null) { return(new AGPropertyExpr(ExprG.Generate(goal), goal)); } if (equation != null) { return(new AGEquationExpr(ExprG.Generate(equation), equation)); } var knowledge = new IKnowledge(ExprG.Generate(obj)); knowledge.Tag = obj; return(knowledge); }
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; } }
public object RelationValidate(object obj, out object objOutput) { var expr = obj as Expr; var str = obj as string; // text input var shapeSymbol = obj as ShapeSymbol; if (shapeSymbol != null) { expr = ExprG.Generate(shapeSymbol); } if (str != null) { expr = Text.Convert(str); } Debug.Assert(expr != null); var rTemp = ExprVisitor.Instance.UserMatch(expr); //input patter match Debug.Assert(rTemp != null); rTemp = ExprVisitor.Instance.Transform(rTemp); object output; if (shapeSymbol != null) { rTemp = shapeSymbol; } InternalValidate(expr, rTemp, out output); objOutput = rTemp; return(output); }
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; }
public TraceStepExpr(TraceStep ts) { MetaRule = ts.Rule as string; AppliedRule = ts.AppliedRule as string; Source = ExprG.Generate(ts.Source); Target = ExprG.Generate(ts.Target); //StepExpr = ExprG.Derive(Source, Target); StepExpr = Target; TraceStep = ts; }
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; }
//Geometry Side Input Variation private object Load(ShapeSymbol rTemp, bool tutorMode = false) { Expr expr = ExprG.Generate(rTemp); object output; EvalExprPatterns(expr, rTemp, null, out output, tutorMode); var iKnowledge = output as IKnowledge; if (iKnowledge != null && !tutorMode) { _cache.Add(new KeyValuePair <object, object>(rTemp, iKnowledge)); } return(output); }