// Token: 0x06006DC4 RID: 28100 RVA: 0x001F8BD8 File Offset: 0x001F6DD8 private void UpdatePointDistances(LassoSelectionBehavior.ElementCornerPoints elementPoints) { double num = elementPoints.UpperLeft.X - elementPoints.UpperRight.X; if (num < 0.0) { num = -num; } double num2 = elementPoints.UpperLeft.Y - elementPoints.LowerLeft.Y; if (num2 < 0.0) { num2 = -num2; } this._xDiff = num * 0.25; if (this._xDiff > 50.0) { this._xDiff = 50.0; } else if (this._xDiff < 15.0) { this._xDiff = 15.0; } this._yDiff = num2 * 0.25; if (this._yDiff > 50.0) { this._yDiff = 50.0; return; } if (this._yDiff < 15.0) { this._yDiff = 15.0; } }
// Token: 0x06006DBD RID: 28093 RVA: 0x001F8814 File Offset: 0x001F6A14 private void HitTestElement(InkCanvasInnerCanvas parent, UIElement uiElement, List <UIElement> elementsToSelect) { LassoSelectionBehavior.ElementCornerPoints transformedElementCornerPoints = LassoSelectionBehavior.GetTransformedElementCornerPoints(parent, uiElement); if (transformedElementCornerPoints.Set) { Point[] points = this.GeneratePointGrid(transformedElementCornerPoints); if (this._lassoHelper.ArePointsInLasso(points, 60)) { elementsToSelect.Add(uiElement); } } }
// Token: 0x06006DBE RID: 28094 RVA: 0x001F8850 File Offset: 0x001F6A50 private static LassoSelectionBehavior.ElementCornerPoints GetTransformedElementCornerPoints(InkCanvasInnerCanvas canvas, UIElement childElement) { LassoSelectionBehavior.ElementCornerPoints result = default(LassoSelectionBehavior.ElementCornerPoints); result.Set = false; if (childElement.Visibility != Visibility.Visible) { return(result); } GeneralTransform generalTransform = childElement.TransformToAncestor(canvas); generalTransform.TryTransform(new Point(0.0, 0.0), out result.UpperLeft); generalTransform.TryTransform(new Point(childElement.RenderSize.Width, 0.0), out result.UpperRight); generalTransform.TryTransform(new Point(0.0, childElement.RenderSize.Height), out result.LowerLeft); generalTransform.TryTransform(new Point(childElement.RenderSize.Width, childElement.RenderSize.Height), out result.LowerRight); result.Set = true; return(result); }
// Token: 0x06006DBF RID: 28095 RVA: 0x001F8930 File Offset: 0x001F6B30 private Point[] GeneratePointGrid(LassoSelectionBehavior.ElementCornerPoints elementPoints) { if (!elementPoints.Set) { return(new Point[0]); } ArrayList arrayList = new ArrayList(); this.UpdatePointDistances(elementPoints); arrayList.Add(elementPoints.UpperLeft); arrayList.Add(elementPoints.UpperRight); this.FillInPoints(arrayList, elementPoints.UpperLeft, elementPoints.UpperRight); arrayList.Add(elementPoints.LowerLeft); arrayList.Add(elementPoints.LowerRight); this.FillInPoints(arrayList, elementPoints.LowerLeft, elementPoints.LowerRight); this.FillInGrid(arrayList, elementPoints.UpperLeft, elementPoints.UpperRight, elementPoints.LowerRight, elementPoints.LowerLeft); Point[] array = new Point[arrayList.Count]; arrayList.CopyTo(array); return(array); }