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