Cosmos/Users/Orvid/Orvid.Graphics/Shapes/Square.cs

81 lines
2 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace Orvid.Graphics.Shapes
{
public class Square : Shape
{
private Image i;
private Pixel fillColor = new Pixel(255, 255, 255, 255); // Initialize white.
public Pixel FillColor
{
get
{
return fillColor;
}
set
{
if (fillColor != value)
{
Modified = true;
fillColor = value;
}
}
}
private Pixel borderColor = new Pixel(0, 0, 0, 255); // Initialize black.
public Pixel BorderColor
{
get
{
return borderColor;
}
set
{
if (borderColor != value)
{
Modified = true;
borderColor = value;
}
}
}
private int size;
public Int32 Size
{
get
{
return size;
}
set
{
if (size != value)
{
Modified = true;
size = value;
i = new Image(this.Size, this.Size);
}
}
}
public Square(int x, int y, ShapedImage parent, int size)
{
this.X = x;
this.Y = y;
this.Parent = parent;
this.Parent.Shapes.Add(this);
this.Size = size;
this.i = new Image(this.Size, this.Size);
}
public override void Draw()
{
if (Modified)
{
i.Clear(this.FillColor);
i.DrawLines(new Vec2[] { new Vec2(0, 0), new Vec2(Size, 0), new Vec2(Size, Size), new Vec2(0, Size), new Vec2(0, 0) }, BorderColor);
Modified = false;
}
Parent.DrawImage(new Vec2(X, Y), i);
}
}
}