private Polygon GetPolygon(Contoso.NoteTaker.JSON.Format.Rectangle obj, Color color) { var inchToMillimeterFactor = 25.4f; List <Point> points = new List <Point>(); var scalingX = DpiX / inchToMillimeterFactor; var scalingY = DpiY / inchToMillimeterFactor; points.Add(new Point(obj.TopX * scalingX, obj.TopY * scalingY)); points.Add(new Point((obj.TopX + obj.Width) * scalingX, obj.TopY * scalingY)); points.Add(new Point((obj.TopX + obj.Width) * scalingX, (obj.TopY + obj.Height) * scalingY)); points.Add(new Point(obj.TopX * scalingX, (obj.TopY + obj.Height) * scalingY)); Polygon polygon = new Polygon(); foreach (Point point in points) { polygon.Points.Add(point); } var brush = new SolidColorBrush(color); polygon.Stroke = brush; polygon.StrokeThickness = 1; return(polygon); }
private Contoso.NoteTaker.JSON.Format.Rectangle GetRectangle(Windows.UI.Input.Inking.InkPoint p, float size = 2.0f) { var res = new Contoso.NoteTaker.JSON.Format.Rectangle(); res.TopX = (float)(p.Position.X - size / 2); res.TopY = (float)(p.Position.Y - size / 2); res.Width = size; res.Height = size; return(res); }
private ComposerStep GetRelatedStep(float x, float y, float size = 10) { var rect = new Contoso.NoteTaker.JSON.Format.Rectangle(); rect.TopX = x - size / 2; rect.TopY = y - size / 2; rect.Width = size; rect.Height = size; if (botInstance != null) { return(FindStepInBotInstance(botInstance.Steps, rect)); } return(null); }
private ComposerStep FindStepInBotInstance(List <ComposerStep> steps, Contoso.NoteTaker.JSON.Format.Rectangle rect) { foreach (var step in steps) { if (step.RelatedShape.RecogUnit.BoundingRect.OverlapSize(rect) > 10) { return(step); } else if (step is IfCondition) { return(FindStepInBotInstance((step as IfCondition).Steps, rect) ?? FindStepInBotInstance((step as IfCondition).ElseSteps, rect)); } } return(null); }