using PaintDotNet.Annotation.Enum;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PaintDotNet.Annotation.PhysicalPhaseAction
{
///
/// 物相提取->定义物体->轮廓->椭圆
///
public class DrawPPhaseOval : DrawObject
{
private Pen pen = new Pen(Color.Blue, 2);
public DrawPPhaseOval(ISurfaceBox surfaceBox, int x, int y, int width, int height) : base()
{
this.objectType = DrawClass.PhaseExtraction;
this.drawToolType = DrawToolType.PPhaseOval;
this.rectangle.X = x;
this.rectangle.Y = y;
this.rectangle.Width = width;
this.rectangle.Height = height;
}
public override void Draw(Graphics g)
{
g.DrawEllipse(pen, GetNormalizedRectangle(Rectangle));
}
///
/// Move handle to new pointscroll (resizing)
///
///
///
public override void MoveHandleTo(Point point, int handleNumber)
{
float left = Rectangle.Left;
float top = Rectangle.Top;
float right = Rectangle.Right;
float bottom = Rectangle.Bottom;
switch (handleNumber)
{
case 1:
left = point.X;
top = point.Y;
break;
case 2:
top = point.Y;
break;
case 3:
right = point.X;
top = point.Y;
break;
case 4:
right = point.X;
break;
case 5:
right = point.X;
bottom = point.Y;
break;
case 6:
bottom = point.Y;
break;
case 7:
left = point.X;
bottom = point.Y;
break;
case 8:
left = point.X;
break;
}
SetRectangle(left, top, right - left, bottom - top);
}
protected void SetRectangle(float x, float y, float width, float height)
{
this.rectangle.X = x;
this.rectangle.Y = y;
this.rectangle.Width = width;
this.rectangle.Height = height;
}
public override DrawObject Clone()
{
return null;
}
public override RectangleF GetBoundingBox()
{
return rectangle;
}
}
}