Example #1
0
        public IEnumerable <ObjectInstance> ObjectsInRegion(Rectangle region, ObjectRegionTest test)
        {
            Func <Rectangle, ObjectInstance, bool> testFunc = null;

            switch (test)
            {
            case ObjectRegionTest.Image:
                testFunc = TestImageBounds;
                break;

            case ObjectRegionTest.PartialImage:
                testFunc = TestImageBoundsPartial;
                break;

            case ObjectRegionTest.Mask:
                testFunc = TestMaskBounds;
                break;

            case ObjectRegionTest.PartialMask:
                testFunc = TestMaskBoundsPartial;
                break;

            case ObjectRegionTest.Origin:
                testFunc = TestOrigin;
                break;
            }

            foreach (ObjectInstance inst in _objects)
            {
                if (testFunc(region, inst))
                {
                    yield return(inst);
                }
            }
        }
        public Rectangle SelectionBounds(ObjectRegionTest test)
        {
            int minX = int.MaxValue;
            int minY = int.MaxValue;
            int maxX = int.MinValue;
            int maxY = int.MinValue;

            foreach (SelectedObjectRecord record in _selectedObjects)
            {
                Rectangle reference = Rectangle.Empty;

                switch (test)
                {
                case ObjectRegionTest.Image:
                    reference = record.Instance.ImageBounds;
                    break;

                case ObjectRegionTest.Mask:
                    reference = record.Instance.MaskBounds;
                    break;

                case ObjectRegionTest.Origin:
                    reference = new Rectangle(record.Instance.X, record.Instance.Y, 0, 0);
                    break;

                case ObjectRegionTest.PartialImage:
                    reference = record.Instance.ImageBounds;
                    break;

                case ObjectRegionTest.PartialMask:
                    reference = record.Instance.MaskBounds;
                    break;
                }

                minX = Math.Min(minX, reference.Left);
                minY = Math.Min(minY, reference.Top);
                maxX = Math.Max(maxX, reference.Right);
                maxY = Math.Max(maxY, reference.Bottom);
            }

            return(new Rectangle(minX, minY, maxX - minX, maxY - minY));
        }
Example #3
0
        public IEnumerable<ObjectInstance> ObjectsInRegion(Rectangle region, ObjectRegionTest test)
        {
            Func<Rectangle, ObjectInstance, bool> testFunc = null;
            switch (test) {
                case ObjectRegionTest.Image:
                    testFunc = TestImageBounds;
                    break;
                case ObjectRegionTest.PartialImage:
                    testFunc = TestImageBoundsPartial;
                    break;
                case ObjectRegionTest.Mask:
                    testFunc = TestMaskBounds;
                    break;
                case ObjectRegionTest.PartialMask:
                    testFunc = TestMaskBoundsPartial;
                    break;
                case ObjectRegionTest.Origin:
                    testFunc = TestOrigin;
                    break;
            }

            foreach (ObjectInstance inst in _objects) {
                if (testFunc(region, inst))
                    yield return inst;
            }
        }
Example #4
0
        public Rectangle SelectionBounds(ObjectRegionTest test)
        {
            int minX = int.MaxValue;
            int minY = int.MaxValue;
            int maxX = int.MinValue;
            int maxY = int.MinValue;

            foreach (SelectedObjectRecord record in _selectedObjects) {
                Rectangle reference = Rectangle.Empty;

                switch (test) {
                    case ObjectRegionTest.Image:
                        reference = record.Instance.ImageBounds;
                        break;
                    case ObjectRegionTest.Mask:
                        reference = record.Instance.MaskBounds;
                        break;
                    case ObjectRegionTest.Origin:
                        reference = new Rectangle(record.Instance.X, record.Instance.Y, 0, 0);
                        break;
                    case ObjectRegionTest.PartialImage:
                        reference = record.Instance.ImageBounds;
                        break;
                    case ObjectRegionTest.PartialMask:
                        reference = record.Instance.MaskBounds;
                        break;
                }

                minX = Math.Min(minX, reference.Left);
                minY = Math.Min(minY, reference.Top);
                maxX = Math.Max(maxX, reference.Right);
                maxY = Math.Max(maxY, reference.Bottom);
            }

            return new Rectangle(minX, minY, maxX - minX, maxY - minY);
        }