protected override Roi CreateRoiFromGraphic(IOverlayGraphicsProvider overlayGraphics, RectangleF shapeData) { EllipsePrimitive graphic = new EllipsePrimitive(); overlayGraphics.OverlayGraphics.Add(graphic); graphic.CoordinateSystem = CoordinateSystem.Source; graphic.TopLeft = shapeData.Location; graphic.BottomRight = shapeData.Location + shapeData.Size; graphic.ResetCoordinateSystem(); return(graphic.GetRoi()); }
public void TestEllipseGetRoi() { // test null ellipse { var ellipse = new EllipsePrimitive(); ellipse.TopLeft = new PointF(5, 5); ellipse.BottomRight = new PointF(5, 5); var roi = ellipse.GetRoi(); Assert.IsNotNull(roi, "EllipsePrimitive.GetRoi() should never return null (rect = {0})", ellipse.Rectangle); AssertAreEqual(new RectangleF(5, 5, 0, 0), roi.BoundingBox, _dimensionTolerance, "EllipsePrimitive.GetRoi() returned wrong ROI (ellipse = {0})", ellipse.Rectangle); } // test positive ellipse { var ellipse = new EllipsePrimitive(); ellipse.TopLeft = new PointF(0, 0); ellipse.BottomRight = new PointF(1, 1); var roi = ellipse.GetRoi(); Assert.IsNotNull(roi, "EllipsePrimitive.GetRoi() should never return null (rect = {0})", ellipse.Rectangle); AssertAreEqual(new RectangleF(0, 0, 1, 1), roi.BoundingBox, _dimensionTolerance, "EllipsePrimitive.GetRoi() returned wrong ROI (ellipse = {0})", ellipse.Rectangle); } // test inverted ellipse { var ellipse = new EllipsePrimitive(); ellipse.TopLeft = new PointF(5, 5); ellipse.BottomRight = new PointF(-1, -1); var roi = ellipse.GetRoi(); Assert.IsNotNull(roi, "EllipsePrimitive.GetRoi() should never return null (rect = {0})", ellipse.Rectangle); AssertAreEqual(new RectangleF(-1, -1, 6, 6), roi.BoundingBox, _dimensionTolerance, "EllipsePrimitive.GetRoi() returned wrong ROI (ellipse = {0})", ellipse.Rectangle); } // test negative width ellipse { var ellipse = new EllipsePrimitive(); ellipse.TopLeft = new PointF(5, 5); ellipse.BottomRight = new PointF(-1, 6); var roi = ellipse.GetRoi(); Assert.IsNotNull(roi, "EllipsePrimitive.GetRoi() should never return null (rect = {0})", ellipse.Rectangle); AssertAreEqual(new RectangleF(-1, 5, 6, 1), roi.BoundingBox, _dimensionTolerance, "EllipsePrimitive.GetRoi() returned wrong ROI (ellipse = {0})", ellipse.Rectangle); } // test negative height ellipse { var ellipse = new EllipsePrimitive(); ellipse.TopLeft = new PointF(5, 5); ellipse.BottomRight = new PointF(6, -1); var roi = ellipse.GetRoi(); Assert.IsNotNull(roi, "EllipsePrimitive.GetRoi() should never return null (rect = {0})", ellipse.Rectangle); AssertAreEqual(new RectangleF(5, -1, 1, 6), roi.BoundingBox, _dimensionTolerance, "EllipsePrimitive.GetRoi() returned wrong ROI (ellipse = {0})", ellipse.Rectangle); } }