// 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);
        }