コード例 #1
0
        public List <Figure> GetBestFigures(Geo.Rectangle searchBox, List <Type> blacklist, List <Type> whitelist)
        {
            var hits        = QuadTree.Query(searchBox).ToList(); //Figures.Where(f => searchBox.Contains(f.BoundingBox)).ToList();
            var toFilterOut = new List <Figure>();

            foreach (var type in blacklist)
            {
                foreach (var figure in hits)
                {
                    if (figure.GetType().GetInterfaces().Contains(type))
                    {
                        toFilterOut.Add(figure);
                    }
                    else if (figure.GetType() == type)
                    {
                        toFilterOut.Add(figure);
                    }
                }
            }

            foreach (var filtered in toFilterOut)
            {
                hits.Remove(filtered);
            }

            return(hits);
        }
コード例 #2
0
ファイル: Figure.cs プロジェクト: lcfcosta/Draw2DDemoTest
        protected Figure()
        {
            BoundingBox  = new Geo.Rectangle(X, Y, Width, Height);
            IsDragable   = true;
            IsSelectable = true;
            IsVisible    = true;
            ZOrder       = 0;

            SetSnapTargets(SnapTargets.Center | SnapTargets.MidPoints | SnapTargets.Vertices);
        }
コード例 #3
0
ファイル: Figure.cs プロジェクト: lcfcosta/Draw2DDemoTest
        public void ForceSetDimensions(Geo.Rectangle rectangle)
        {
            X      = rectangle.X;
            Y      = rectangle.Y;
            Width  = rectangle.Width;
            Height = rectangle.Height;


            Canvas?.NeedsRepaint(this);
        }