Archived
Initial commit
This commit is contained in:
commit
1cdcca7267
143 files changed
+18199
No files matched your search
@@ -0,0 +1,124 @@
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
|
||||
namespace RyzStudio.Drawing
|
||||
{
|
||||
public struct Rectangoid
|
||||
{
|
||||
private int X;
|
||||
private int Y;
|
||||
private int Width;
|
||||
private int Height;
|
||||
private int Radius;
|
||||
|
||||
public Rectangoid(Rectangle rect, int radius)
|
||||
{
|
||||
X = rect.X;
|
||||
Y = rect.Y;
|
||||
Width = rect.Width;
|
||||
Height = rect.Height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(Rectangle rect, int radius, int borderWidth)
|
||||
{
|
||||
rect.Inflate((-1 * borderWidth), (-1 * borderWidth));
|
||||
|
||||
X = rect.X;
|
||||
Y = rect.Y;
|
||||
Width = rect.Width;
|
||||
Height = rect.Height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(int x, int y, int width, int height, int radius)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(int x, int y, int width, int height)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = 0;
|
||||
}
|
||||
|
||||
public Rectangoid(int width, int height, int radius)
|
||||
{
|
||||
X = 0;
|
||||
Y = 0;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(int width, int height)
|
||||
{
|
||||
X = 0;
|
||||
Y = 0;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = 0;
|
||||
}
|
||||
|
||||
public Rectangoid(int width)
|
||||
{
|
||||
X = 0;
|
||||
Y = 0;
|
||||
Width = width;
|
||||
Height = width;
|
||||
Radius = 0;
|
||||
}
|
||||
|
||||
public GraphicsPath ToGraphicsPath()
|
||||
{
|
||||
GraphicsPath rv = new GraphicsPath();
|
||||
rv.AddLine(X + this.Radius, Y, X + Width - (this.Radius * 2), Y);
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X + Width - (this.Radius * 2), Y, this.Radius * 2, this.Radius * 2, 270, 90);
|
||||
}
|
||||
|
||||
rv.AddLine(X + Width, Y + this.Radius, X + Width, Y + Height - (this.Radius * 2));
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X + Width - (this.Radius * 2), Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 0, 90);
|
||||
}
|
||||
|
||||
rv.AddLine(X + Width - (this.Radius * 2), Y + Height, X + this.Radius, Y + Height);
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X, Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 90, 90);
|
||||
}
|
||||
|
||||
rv.AddLine(X, Y + Height - (this.Radius * 2), X, Y + this.Radius);
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X, Y, this.Radius * 2, this.Radius * 2, 180, 90);
|
||||
}
|
||||
|
||||
rv.CloseFigure();
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public PointF GetOrigin()
|
||||
{
|
||||
PointF rv = new PointF();
|
||||
rv.X = ((float)Width / 2) + X;
|
||||
rv.Y = ((float)Height / 2) + Y;
|
||||
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user