コード例 #1
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(ISheet sheet, XBlock block, ImmutableRect rect, XBlock selected, bool findOnlyOne, bool findInsideBlock)
        {
            if (HitTest(block.Points, rect, sheet.GetParent(), selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Texts, rect, sheet.GetParent(), selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Images, rect, sheet.GetParent(), selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Lines, rect, selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Rectangles, rect, sheet.GetParent(), selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Ellipses, rect, sheet.GetParent(), selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Blocks, rect, sheet.GetParent(), selected, findOnlyOne, findInsideBlock))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #2
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(XBlock block, ImmutableRect rect, object relativeTo, XBlock selected, bool findOnlyOne, bool findInsideBlock)
        {
            if (HitTest(block.Points, rect, relativeTo, selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Texts, rect, relativeTo, selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Images, rect, relativeTo, selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Lines, rect, selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Rectangles, rect, relativeTo, selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Ellipses, rect, relativeTo, selected, findOnlyOne))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            if (HitTest(block.Blocks, rect, relativeTo, selected, findOnlyOne, findInsideBlock))
            {
                if (findOnlyOne)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #3
0
ファイル: Wpf.cs プロジェクト: 15831944/Sheet
        public bool HitTest(IElement element, ImmutableRect rect, object relativeTo)
        {
            var r      = new Rect(rect.X, rect.Y, rect.Width, rect.Height);
            var bounds = WpfVisualHelper.GetContentBounds(element, relativeTo);

            if (r.IntersectsWith(bounds))
            {
                return(true);
            }
            return(false);
        }
コード例 #4
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(IEnumerable <XBlock> blocks, ImmutableRect rect, object relativeTo, XBlock selected, bool findOnlyOne, bool findInsideBlock)
        {
            foreach (var block in blocks)
            {
                if (HitTest(block, rect, relativeTo, findInsideBlock ? selected : null, true, false))
                {
                    if (selected != null)
                    {
                        selected.Blocks.Add(block);
                    }

                    if (findOnlyOne)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #5
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(IEnumerable <XImage> images, ImmutableRect rect, object relativeTo, XBlock selected, bool findOnlyOne)
        {
            foreach (var image in images)
            {
                if (_blockHelper.HitTest(image, rect, relativeTo))
                {
                    if (selected != null)
                    {
                        selected.Images.Add(image);
                    }

                    if (findOnlyOne)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #6
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(IEnumerable <XText> texts, ImmutableRect rect, object relativeTo, XBlock selected, bool findOnlyOne)
        {
            foreach (var text in texts)
            {
                if (_blockHelper.HitTest(text, rect, relativeTo))
                {
                    if (selected != null)
                    {
                        selected.Texts.Add(text);
                    }

                    if (findOnlyOne)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #7
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(IEnumerable <XEllipse> ellipses, ImmutableRect rect, object relativeTo, XBlock selected, bool findOnlyOne)
        {
            foreach (var ellipse in ellipses)
            {
                if (_blockHelper.HitTest(ellipse, rect, relativeTo))
                {
                    if (selected != null)
                    {
                        selected.Ellipses.Add(ellipse);
                    }

                    if (findOnlyOne)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #8
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(IEnumerable <XRectangle> rectangles, ImmutableRect rect, object relativeTo, XBlock selected, bool findOnlyOne)
        {
            foreach (var rectangle in rectangles)
            {
                if (_blockHelper.HitTest(rectangle, rect, relativeTo))
                {
                    if (selected != null)
                    {
                        selected.Rectangles.Add(rectangle);
                    }

                    if (findOnlyOne)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #9
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public bool HitTest(IEnumerable <XLine> lines, ImmutableRect rect, XBlock selected, bool findOnlyOne)
        {
            foreach (var line in lines)
            {
                if (_blockHelper.HitTest(line, rect))
                {
                    if (selected != null)
                    {
                        selected.Lines.Add(line);
                    }

                    if (findOnlyOne)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }